Bcachefs
From Wikipedia, the free encyclopedia
| Bcachefs | |
|---|---|
| 開発者 | ケント・オーバーストリート |
| 導入 | 2015年8月21日 () |
| 構造 | |
| ディレクトリ | ハイブリッドB+木 |
| 領域管理 | エクステント |
| 不良ブロック | なし |
| 限度 | |
| 特徴 | |
| タイムスタンプ |
|
| 属性 | 拡張ファイル属性 |
| パーミッション | |
| 透過的圧縮 | あり |
| 透過的暗号化 | あり |
| 対応OS | Linux |
Bcachefsは、Linuxベースのオペレーティングシステム向けのコピーオンライト(COW)のファイルシステムである。Bcachefsは主要開発者のケント・オーバーストリート(英語: Kent Overstreet)によって2015年に初めて発表され、Linuxカーネルのバージョン6.7から追加される予定であった[1]。BcachefsはZFSやBtrfsの現代的な機能と、ext4やXFSの速度とパフォーマンスの両方に匹敵することを目的としている。2022年12月の時点で、Bcachefsは「安定している」と自称している[2]。
Bcachefsは、Linuxベースのオペレーティングシステム向けのコピーオンライト(COW)のファイルシステムである[3]。特徴としては、キャッシュ[4]、ChaCha20とPoly1305アルゴリズムを使用した完全なファイルシステム暗号化[5]、LZ4とgzip[6]とZstandard[7]による透過的圧縮[4]、スナップショット[4]、CRC-32Cと64ビットチェックサムが含まれている[3]。Bcachefsは、RAID構成を含めて、ブロックデバイスに跨ることができる[5]。
Bcachefsの初期のバージョンでは、そのコードのうち約80%がLinux向けのブロック層キャッシュシステムのBcacheのコードと共通であり、Bcacheの全ての機能を提供していた[8]。2021年12月以降、ブロック層キャッシュ機能は削除された[7]。
データ構造レベルでは、Bcachefsは他の多くの現代的なファイルシステムと同様にB木を使用するが、既定値が256 KiBという非常に大きなノードを使用する。これらのノードは内部でログ構造化され、ハイブリッドデータ構造を形成し、更新時にノードを書き換える必要性を減らしている[9]。スナップショットはコピーオンライト木を複製することによって実装されるのではなく、ファイルシステムオブジェクトにバージョン番号を追加することによって実装されている[10]。コピーオンライト機能とバケット・アロケータによりライトホールや入出力断片化のないRAID実装が可能になっている[7]。