Bcachef を Linux カーネルに昇格する

Linux カーネルの一部である BCache SSD ブロック デバイス キャッシング システムの作者である Kent Overstreet 氏は、LSFMM 2023 カンファレンス (Linux ストレージ、ファイルシステム、メモリ管理) での講演で、Bcachefs ファイル システムの推進に関する取り組みの結果を要約しました。 & BPF Summit). Linux カーネルの主な構成について説明し、この FS のさらなる開発計画について話しました。 10 月には、Bcachefs FS を実装した更新されたパッチ セットがレビューされ、Linux カーネルの主要な構成に組み込まれることが提案されました。 FS Bcachefs は約 2020 年間開発されてきました。 コアに含める前に Bcachefs の実装をレビューする準備ができていることは XNUMX 年末に発表され、パッチの現在のバージョンでは、前回のレビューで特定されたコメントと欠点が考慮されています。

Bcachefs の開発目標は、パフォーマンス、信頼性、スケーラビリティにおいて XFS レベルに達すると同時に、パーティション内の複数のデバイスの組み込み、多層ストレージ レイアウト、レプリケーション (RAID 1/10)、キャッシュ、透過的なデータ圧縮 (LZ4、gzip、ZSTD モード)、状態スライス (スナップショット)、チェックサムによる整合性検証、リードソロモン誤り訂正コードを保存する機能 (RAID 5/6)、情報の暗号化ストレージ (ChaCha20 および Poly1305)使用されています)。 パフォーマンスの点では、Bcachefs は Btrfs やコピーオンライト メカニズムに基づく他のファイル システムよりも優れており、Ext4 や XFS に近いパフォーマンスを示します。

Bcachefs の開発における最新の成果の中で、書き込みに使用できるスナップショットの実装の安定化が注目されています。 Btrfs と比較して、Bcachefs のスナップショットはスケーラビリティが大幅に向上し、Btrfs に固有の問題がなくなりました。 実際には、MySQL バックアップを整理するときにスナップショットの動作がテストされました。 Bcachefs はスケーラビリティを向上させるために多くの作業も行っています。ファイル システムは 100 TB ストレージでのテストで良好なパフォーマンスを示しており、Bcachefs は近い将来 1 PB ストレージに実装される予定です。 「コピーオンライト」(nocow) メカニズムを無効にする新しい nocow モードが追加されました。 夏には、エラー修正コードと RAIDZ の実装を安定した状態にするとともに、fsck ユーティリティを使用してファイル システムを復元およびチェックする際のメモリ消費量が多い問題を解決する予定です。

将来の計画では、Bcachefs の開発に Rust 言語を使用したいという希望が述べられています。 Bcachefs の作者によると、彼はコードをデバッグするのではなくコードを書くのが好きで、今ではより良い選択肢があるのに C でコードを書くのはおかしいとのことです。 Rust は、一部のユーザー空間ユーティリティの実装で Bcachefs にすでに関与しています。 さらに、この言語を使用するとデバッグ時間が大幅に節約されるため、Rust で Bcachef を徐々に完全に書き直すというアイデアが生まれています。

Bcachef を Linux カーネルのメインストリームに移行することに関しては、変更の規模が大きいため (2500 のパッチと約 90 万行のコード)、レビューが難しいため、採用プロセスが遅れる可能性があります。 レビューを迅速化するために、一部の開発者は、パッチ シリーズをより小さく論理的に分離された部分に分割することを提案しています。 ディスカッション中、一部の参加者は、XNUMX 人の開発者によるプロジェクトの開発と、その開発者に何かが起こった場合にコードがメンテナンスされないままになる危険性にも注意を払いました (XNUMX 人の Red Hat 従業員がプロジェクトに興味を持っていますが、彼らの仕事はまだ残っています)限定的なバグ修正)。

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

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

出所: オープンネット.ru

コメントを追加します