Bcachefsとは
Bcachefsは、
Linuxベースの
オペレーティングシステム向けに開発された、高度な
コピーオンライト(COW)方式の
ファイルシステムです。2015年に開発者のケント・オーバーストリートによって初めて発表され、
Linuxカーネルのバージョン6.7に統合される予定です。この
ファイルシステムは、
ZFSや
Btrfsといった現代的な機能と、ext4や
XFSのようなスピードとパフォーマンスを兼ね備えていることを目指しています。2022年12月時点では、その安定性が自称されています。
Bcachefsの特徴
Bcachefsは、以下のような優れた特徴を持っています。
- - キャッシュ機能:データアクセス効率を高めるためのキャッシュシステムが組み込まれています。
- - 暗号化機能:ChaCha20とPoly1305アルゴリズムを用いた完全なファイルシステム暗号化が実現されています。
- - 透過的圧縮:LZ4、gzip、Zstandardを使用した透過的なデータ圧縮機能があります。
- - スナップショット機能:過去の状態に簡単に戻すためのスナップショットを取得できます。
- - 堅牢なチェックサム:CRC-32Cと64ビットチェックサムによるデータ整合性の確保がなされています。
- - RAIDサポート:複数のブロックデバイスをまとめて使用でき、特にRAID構成において強力です。
Bcachefsの初期バージョンでは、約80%のコードがBcacheから流用されており、Bcacheの全機能を提供していましたが、2021年12月以降はブロック層キャッシュ機能が削除されました。データ構造においては、従来の
ファイルシステムと同様にB木を採用していますが、特に256KiBという大きなノードを使用し、内部でログ構造化することで更新作業の効率を向上させています。
開発の歴史
Bcachefsは、オーバーストリートがBcacheの開発を進める中で、そのコードを基に「汎用
POSIXファイルシステム」へと発展させるために開発されてきました。彼は、BcacheをBcachefsに置き換える意図を持ってこのプロジェクトを進めました。2013年にはBcacheがメインライン
Linuxカーネルに組み込まれ、その後オーバーストリートは
Googleを退職し、Bcachefsの開発を専念しました。
2015年にはBcachefsが正式に発表され、機能のテストと貢献者の募集が行われました。彼はこの
ファイルシステムを、
ZFSや
Btrfsの機能を持ちながらも、ext4や
XFSに匹敵する速度とパフォーマンスを誇るものに育てようとしていました。
開発は順調に進み、2019年には必要な機能が実装され、関連するパッチがレビューのために
Linuxカーネル開発メーリングリスト(LKML)に投稿されました。2023年9月、Bcachefsは
Linuxカーネルの新機能をテストする開発ツリーであるlinux-nextに統合され、10月には正式に
Linuxカーネルのバージョン6.7に組み込まれることとなりました。
ところが、2025年8月にLinus氏がオーバーストリートの態度問題を理由にBcachefsの更新を拒否し、その後「外部メンテナンス」というステータスに変更されました。これを受けて、主要な
Linuxディストリビューターは外部のコードベースを使用する形に移行しました。これにより、古いコードは
Linuxカーネルから削除され、一つの時代が終わりを告げました。
まとめ
Bcachefsは、機能の充実度と高いパフォーマンスを両立させる革新的な
ファイルシステムとして注目されています。その特徴的な設計と開発の経緯が相まって、多くのユーザーから期待されています。
Linuxカーネルの未来において、Bcachefsがどのように進化するのか、今後の動向が注目です。