世界を動かす技術を、日本語で。

Bcachefsがメインラインカーネルから削除されました

概要

  • bcachefs はLinux 6.18で 完全削除
  • DKMSモジュール として外部管理へ移行
  • バージョン混乱回避 のための決定
  • Linus Torvalds による削除判断
  • 議論と賛否両論 が存在

bcachefsのLinuxカーネルからの削除

  • Linux 6.17bcachefs は「外部管理」扱いに指定
  • Linux 6.18 でLinus Torvaldsが bcachefsを完全削除
  • 理由は DKMSモジュール として外部提供され、 カーネル内コードが陳腐化 するため
  • バージョンの混乱回避 とコード保守性向上を目的とした判断
  • bcachefsは今後、 カーネル外での独立管理 体制へ移行

削除決定のプロセス

  • Linus Torvalds には カーネルからの削除権限 が存在
  • 決定は Linus単独 ではなく、 長期的な公開・非公開議論 を経て実施
  • 公開ディスカッション関係者間の調整 を重視
  • 他のカーネルへのセキュリティ修正のバックポート問題 も指摘
    • サードパーティ製カーネルでは 修正漏れや脆弱性残存 リスク

コミュニティの反応と評価

  • 多くのユーザーや開発者が 「正しい判断」 と評価
  • バージョン管理の明確化保守負担軽減 を歓迎
  • 一方で、 Phoronix のような場では 議論の難しさ も指摘
  • セキュリティや品質の観点 からも、 外部管理のメリット が強調

bcachefsの今後

  • DKMSモジュール としての提供継続
  • カーネル本体との独立性 が高まり、 開発の柔軟性 向上
  • ユーザーは 外部リポジトリ経由で最新バージョンを利用 可能
  • カーネル本体との連携・互換性 に注意が必要

Hackerたちの意見

最終的にはポジティブな結果になってるよ。メインラインに提出する前は、Bcachefsは他のサブシステムの変更に依存してたからDKMSできなかったんだ。単なる追加じゃなくてね。だから、自分でカーネルをコンパイルしなきゃいけなかった。今は、最近のサードパーティ製カーネル用にモジュールとしてコンパイルできるようになったんだ。

…今のところね。Linuxの方針は、外部モジュールやドライバーには全く関心がないから、もしbcachefsが必要とするものを削除し始めたら、また痛い目に戻ることになるよ。(例外を作ることがあれば別だけど、ZFSにはそんな例外はないし。)

でも、DKMSの使用を妨げる変更が合理的だったら、bcachefsとは無関係にマージされてたんじゃないかな?もっとドラマや混乱も少なかったかもね?雲の中に銀の裏地がないとは言わないけど、結果が関わってる誰にとっても中立(ましてやポジティブ)とは思えないよ。

これがメインラインから削除された理由なの?

もっと安定したら、また戻ってきてほしいな。ZFSの代わりにカーネル内で使える選択肢があれば最高だよ。

不安定だから削除されたわけじゃなくて、メンテナが他人が定めたガイドラインを尊重できなかったからだよ。これが問題になったのは初めてじゃないし、そのメンテナは以前から行動を変える意志を見せてないし。

何と比べてもっと安定してるの?俺は古いHDDとちょっと怪しいPCI-SATA拡張カードで構成されたマルチデバイスファイルシステムを使ってるんだ。これ、2019年に組み立てたもので、書き込み不可の時期もあったけど、今も動いてるしデータも失ってないよ。5年以上経って、いろんなFSのバージョンアップやデバイスの交換もあったけど、データの避難や再複製もしたんだ。[1] 技術的には、壊れかけのデバイスがゴミを書き込むようになって、我慢できずに破壊的なfsck(fix_errors付き)を実行した時にいくつか失ったけどね。ほかのソリューションと比べるつもりはないけど、これだけでもすごいと思うよ。

もっと安定したら、また戻ってきてほしいな。うん、俺もそう思う。 > ZFSの代わりにカーネル内で使える選択肢があれば最高だね。そうだね。 > パリティRAID用に。いや、それは違うよ。パレートの法則を考えてみて。80%の人は機能の20%しか使わないんだ。でも、みんなが同じ20%を使うわけじゃないから、全体としては80%の機能が必要なんだよ…それ以上もね。ZFSはその競合の一つだし、Btrfsもそう。Stratisも、HAMMER2も、MDRAIDも、LVMもそう。みんなその20%の一部または全部を提供していて、長所と短所がある。要するに、ZFSはRAIDに優れていて、MDRAIDや他のものよりずっと簡単なんだ。Btrfsもそれができるけど、ZFSとBtrfsはCOWスナップショットもできる。それも重要なんだ。OpenSUSEやGaruda Linux、siductionなどはBtrfsのCOWに依存してる。まあ、いいけど、君の使い方はRAIDなんだね。俺もそれを使うよ。いいね。でもCOWも同じくらい重要なんだ。整合性も同じくらい重要で、Btrfsはそれに失敗してる。それがBcachefsのスローガン「データを食べないCOWファイルシステム」なんだ。Btrfsは4年間で年に2〜3回、俺のデータを食べた。称賛する人がどれだけいても、重要なのは失敗した被害者たちなんだ。彼らがそれが失敗することを証明してる。ポイントは「mdraidでext4を使える」とか「LVM2でできる」とか「Btrfsは俺には問題ない」じゃなくて、_これらすべて_をできて、_より良く_できるものなんだ。ここでの「より良く」は「より簡単に」という意味も含む。ここでの簡単さは「設定が簡単」だけでなく、「実装が簡単」という意味もあるんだ(例えば、LVM2上のBtrfsやmdraid上のBtrfs、mdraid上のLVM、RAID上のLVMのext4などと比べて)。全体のスタックの層を取り除いて同じ機能を残せるものは価値がある。設定ステップの90%を取り除いて同じ機能を残せるものは重要なんだ…だって、いろんな人がそのステップを違う順番でやったり、いくつかをスキップしたりするから、それを文書化する必要があるんだけど、誰も十分に文書化してないからね。RAID上のLVMのリカバリステップは、LVM上のRAIDとは全然違う。mdraid上のBtrfsのリカバリは、ただのBtrfs RAIDとは全然違う。だから、これを排除するツールが重要なんだ。1 - 2 - 3 - 4 - 5と1 - 2 - 4 - 3 - 5のどちらが重要かが問題になるから。ここでのゴルディウスの結び目を切る剣は、1-5を一度のステップで実行できるツールなんだ。たとえ1と5、または2と3だけを使っても、4だけをやっても、それはまだ重要なんだ。

俺も戻ってくることを願ってるけど、ケントがリードデベロッパーじゃないことを願ってる。

bcachefsには期待してるんだけど、今のところベンチマークはちょっと残念な結果だね。色んなことをやるからオーバーヘッドがあるのは分かるけど、btrfsやzfsに近いパフォーマンスを期待してたんだ。なのに、ずっとひどい結果が続いてる(zfsも時々そうなるけど)。

あのベンチマークはおかしかったね。bcachefsだけが512bのブロックサイズを使ってるのに気づいた?それがオーバーヘッドを大きくしちゃうんだよ。

あのベンチマークを真剣に受け止めるのは難しいね。ZFSやbtrfs、そして多分bcachefs(使ったことないから意見はないけど)は、XFSやEXT4ができないことをやってるんだ。ZFSについては他より詳しいけど、ここではZFSがashift=9か12かは指定されてなかった。自動検出を試みるけど、それがうまくいかないこともある。ashift=9だと、ZFSは512バイトで物理I/Oを行っていることになるから、nvmeのエミュレーションモードになる。もしかしたらashift=12かもしれないけど、分からない。次に、ZFSはデフォルトで128kのレコードサイズを持ってる。大きなファイルを書いたら、128kサイズの「チャンク」で書かれるんだ。それから4kのブロックサイズでランダムな読み書きI/Oベンチマークを実行すると、ZFSは毎回4kのI/Oに対して128kを読み書きすることになる。これは大きな増幅係数だよ。もしZFSをランダムブロックI/Oに似た負荷で使うなら、アプリのI/Oに合わせてrecordsizeを調整した方がいい。ZFSはこれを簡単にしてくれるし、子ファイルシステムの作成は非常に安価で、ファイルシステムごとにrecordsizeを調整できるんだ。それに、ZFSがやることはXFSやEXT4ができないこともある。例えば、5分ごとにスナップショットを取ること(ほぼ無料)、ストリーミング増分スナップショットバックアップ、スナップショットのクローン作成など、RAIDの柔軟性に入る前に。

https://www.phoronix.com/review/bcachefs-617-dkms/2 にはdkmsモジュールのベンチマークが載ってるよ。

新しいクラスターをセットアップする直前の1週間だったんだけど、bcachefsに全力投球してたんだ、ドラマなんて気にせずに… でも、これを見てから考えが変わったよ。[1] bcachefsは見た目はワクワクするけど、ちょっと触ってみただけでも耐えられない点がいくつかあると思う。プロジェクトの安定性は、その背後にいるチームや文化の安定性から来るって時間が証明してる。だから、数字は嘘をつかないし、既存のファイルシステムと同等にならない限り、心配事を許す気にはなれないな。bcachefsが成熟する日を楽しみにしてる… いつになるか分からないけど、ワクワクするからね。もしこの1年で何か変わったことがあれば、ぜひ教えてほしい!今のところ、リスクを冒してまで試すほど魅力的なものは見つけてないんだ。[1] https://youtube.com/watch?v=_RKSaY4glSc&pp=ygUZTGludXMgZmlsZ...

最近のOSSのドラマは、純粋にコードに関するものが多いね… 開発者はカーネル開発において少し行き過ぎた行動をしたけど(リカバリーツールの件みたいに)、それでもカーネルにとって悪い前例を作るようなことだったから、リーナスの判断は良かったと思う。bcachefsの未来が良い方向に進むことを願ってるよ。

lwn.netの一行の記事には、このメールへのリンクがあるよ: From: Kent Overstreet @ 2025-09-11 23:19 UTC 「多くの人が知っていると思うけど、bcachefsはDKMSモジュールとして出荷する方向に切り替えています。DKMSパッケージが整ったら、エンドユーザーにとってはほとんど変わらないはずですが、スムーズに進むように配布側でやるべきことがいくつかあります。良いニュース:...」 https://lore.kernel.org/linux-bcachefs/yokpt2d2g2lluyomtqrdv...

DKMSパッケージが整ったら、エンドユーザーにとってはほとんど変わらないはずだ それって、セキュアブートを使ってる全ての作業用ワークステーションでMOKキーを登録しなきゃいけないってこと?そうなると、200台以上のマシンで大変なことになるよ。NVIDIAドライバーの時と同じで、自動化できないし。

KentのPatreonの長年のスポンサーとして、2018年から月10ドル、合計790ドル支援してきたけど、このbcachefsの騒動は本当に落ち込むね。自分はbcachefsのユーザーじゃないけど、ZFSをかなり使ってて、Linuxには古い企業のしがらみから解放された、ネイティブでモダンなCOWファイルシステムが欲しかったんだ。HNのbcachefsに関するコメント欄では、いつも同じような主張を繰り返すアカウントがいくつかいて、まるで被害者みたいに聞こえるのがKentがよく使うやつだよね。Kent、もしこれを読んでいるなら、長年の(今は元)スポンサーとしてお願いがある。もしこれらの投稿が本当に君からのものであれば、やめてほしい。それに、自己反省の時間だと思うし、どうすればこの状況をもっと良く対処できたか考えてほしい。何年も君を経済的に支援してきた人たちを失望させないためにね。確かにカーネルを維持している人たちには難しいところや欠点があるけど、特にリーナス自身もそうだけど、君はそれを始めた時に知っていたはずだ。bcachefsが明るい未来を持つことを願っているけど、これは明らかに君の問題だから、解決してほしい。(ダニエル・ウィルソン、サブスクリプション開始日:2018年8月9日、最後の支払い日:2025年2月1日)

btrfsはどう?君が探している条件をすべて満たしているように見えるし、主要なLinuxディストリビューションではデフォルトのファイルシステムとして使われているくらい成熟してるよ。

自分もPatreonのサポーターだけど、bcachefsがカーネルに統合されるまで意図的に切り替えなかったよ。結局、リーナスがユーザースペースを壊すことはないよね?この騒動には自分もイライラしてるけど、資金提供はやめないつもり。bcachefsはbtrfsのしっかりした代替手段だからね。何が本当に起こったのか、ドラマの原因が全然わからない。機能的なものが含まれたPRがあって、それが原因でモジュールがカーネルから排除されたの?でも、DKMSがそんなにひどい解決策でないことを願ってる。これがあると、ブートが壊れるから。Linuxカーネルには安定したモジュールAPIが必要だと思う。bcachefsのような外部モジュールが信頼性を持ってブートできないのは困るよね。

「本当にLinuxにはネイティブでモダンなCOWファイルシステムが欲しかった」 btrfsはその説明に合わない?問題がいくつかあるのは知ってるけど、確かにネイティブなCOWファイルシステムだし、私の知る限りでは「モダン」だよ。

「本当にLinuxにはネイティブでモダンなCOWファイルシステムが欲しかった」 btrfsはダメなの?(正直な質問。)

これがついてきたのは悲しいけど、結局リーナスとケントは修正の配布方法について考え方が違ったから、ケントがファイルシステムの配布頻度をコントロールする状況になったのは理解できるね。