作成者の言葉によれば、bcachefs はすでに Linux のメイン ブランチに含められるほど成熟している 

bcachefs

Bcachefs は、Linux ベースのオペレーティング システム用のコピーオンライト ファイル システムです。

最近エイズ ケント オーバーストリート、bcachefs の作者、 LSFMM 2023カンファレンスでのスピーチで に作業結果をまとめました。 Bcachefs ファイル システムのプロモーション Linux カーネルのメイン ブランチについて議論し、カーネルのさらなる開発計画について話し合いました。

Bcachefs はすでに実証済みのテクノロジーを使用して開発されています Bcache ブロック デバイスの開発では、高速 SSD ドライブ上の低速ハード ドライブへのアクセスをキャッシュするように設計されています (バージョン 3.10 以降カーネルに含まれています)。 Bcachefs はコピーオンライト メカニズムを使用します (COW)、変更によってデータが上書きされることはありません。新しい状態が新しい場所に書き込まれ、その後、現在の状態インジケーターが変化します。

Bcachefs の特徴は、 マルチレイヤードライブの接続のサポートこの場合、ストレージは複数の層で構成されます。最下層には高速ドライブ (SSD) が接続され、頻繁に使用されるデータをキャッシュするために使用され、最上層は、より大容量のドライブと、需要の少ないデータを保存する安価なドライブを形成します。 ライトバック キャッシュはレイヤー間で使用できます。 ファイル システムの使用を中断することなく、ドライブをパーティションに動的に追加したりパーティションから切り離したりできます (データは自動的に移行されます)。

このプロジェクトに関しては、次のように述べられています。 Bcachefs の開発目標は、パフォーマンスの点で XFS のレベルに達することです。 信頼性と拡張性。

Btrfs および ZFS に固有の追加機能 (1 つのパーティション内の複数のデバイス、多層ストレージ レイアウト、レプリケーション (RAID 10/4)、キャッシュ、LZXNUMX、gzip および ZSTD モード、状態セグメント、チェックサム整合性検証、リードソロモン誤り訂正符号を保存し、暗号化された情報を保存します。

パフォーマンスの点では、Bcachefs は Btrfs やコピーオンライト メカニズムに基づく他のファイル システムよりも優れており、Ext4 や XFS に近いパフォーマンスを示します。

Bcachefs の開発における最新の成果の中で、書き込みに使用できるスナップショットの実装の安定化は際立っています。 Btrfs と比較して、Bcachefs のスナップショットは拡張性が大幅に向上し、Btrfs に固有の問題がなくなりました。

実際には、MySQL バックアップを整理するときにスナップショットの動作がテストされました。 Bcachefs はスケーラビリティを向上させるために多くの作業も行っています。ファイル システムは 100 TB ストレージでのテストで良好なパフォーマンスを示しており、Bcachefs は近い将来 1PB ストレージに展開される予定です。

これに加えて、次のことも強調されています 「コピーオンライト」メカニズムを無効にする新しい nocow モードを追加しました。 夏には、RAIDZ とエラー修正コードの実装を安定した状態にするとともに、fsck ユーティリティを使用してファイル システムを復元および検証する際のメモリ消費量が多い問題を解決する予定です。

将来の計画について dが言及されていますBcachefs の開発で Rust 言語を使用したい。 Bcachefs の作者は次のように述べています。

彼はコードをデバッグするのではなくコードを書くのが好きで、今ではもっと良い選択肢があるのに C でコードを書くことに夢中になっています。 Rust は、一部のユーザー空間ユーティリティの実装で Bcachefs にすでに関与しています。 また、この言語を使用するとデバッグ時間が大幅に節約されるため、Rust で Bcachefs を完全に書き直すというアイデアが徐々に生まれてきています。

Bcachefsのメインカーネルブランチへの移動について Linuxから、 変更の規模が大きいため、採用プロセスが遅れる可能性があります (2500 のパッチと約 90 行のコード)、レビューが困難です。 レビューを迅速化するために、一部の開発者は パッチシリーズをより小さく、より論理的に分離された部分に分割することを提案しました.

ディスカッション中、一部の参加者は、開発者によるプロジェクトの開発と、開発者に何かが起こった場合にコードがメンテナンスされなくなる危険性についても注意を促しました(XNUMX 人の Red Hat 従業員がプロジェクトに興味を持っていますが、あなたの作業はまだ保留中です) )。 限定的なバグ修正)。

2020月には、これを改訂してLinuxカーネルの主要部分に組み込むことが提案された。 Bcachefs をカーネルに組み込む前に実装をレビューする準備ができていることは XNUMX 年末に発表されており、パッチの現在のバージョンでは、前回のレビューで特定されたフィードバックと欠陥が考慮されています。

出典 https://lwn.net/