Red Hat は、NVM メモリに効率的な新しい NVFS ファイル システムを開発中です

ikuláš Patočka 氏、LVM の開発者の XNUMX 人であり、多数の著作物の著者 発明ストレージ システムの最適化に関連し、Red Hat で働いています。 紹介された Linux カーネル開発者メーリング リストの新しいファイル システム NVFSは、RAM のパフォーマンスとコンテンツを永続的に保存する機能を組み合わせた、不揮発性メモリ チップ (NVM、NVDIMM などの不揮発性メモリ) 用のコンパクトで高速な FS を作成することを目的としています。

NVFS の開発には FS の経験が考慮されました NEW、2017 年に NVM メモリ専用に作成されましたが、Linux カーネルには受け入れられず、 限定的 4.13 から 5.1 までの Linux カーネルのサポート。
提案された FS NVFS は NOVA よりもはるかに単純で (コード行数は 4972 行に対して 21459 行)、fsck ユーティリティを提供し、パフォーマンスが高く、拡張属性 (xattrs)、セキュリティ ラベル、ACL、およびクォータをサポートしていますが、スナップショットはサポートしていません。 建築 NVFSは次のようなものに近づいています
Ext4 ファイル システムは、VFS サブシステムに基づくファイル システムのモデルによく適合します。これにより、レイヤーの数を最小限に抑え、カーネルへのパッチを必要としないモジュールで対応できます。

NVFS はカーネル インターフェイスを使用します DAX ページ キャッシュをバイパスして、永続メモリ デバイスに直接アクセスします。 バイトアドレス指定された NVM メモリの動作を最適化するために、ドライブの内容は、従来のブロック デバイス層や中間キャッシュを使用せずに、カーネルのリニア アドレス空間にマッピングされます。 ディレクトリの内容を保存するために使用されます ベースツリー (基数ツリー) 各ファイル名をハッシュ化し、ツリーを検索するときにそのハッシュ値を使用します。

データの整合性は、「ソフトアップデート(FreeBSD の UFS や OpenBSD の FFS のように) ジャーナリングを使用しません。 NVFS でのファイル破損を回避するために、クラッシュによってブロックや i ノードが失われることがないようにデータ変更操作がグループ化され、fsck ユーティリティを使用して構造の整合性が復元されます。 fsck ユーティリティはマルチスレッド モードで動作し、1.6 秒あたり XNUMX 万 i ノードのブルート フォース パフォーマンスを提供します。

В パフォーマンステスト NVFS は、NVM メモリ上で Linux カーネル ソース ツリーのコピー操作を、NOVA より約 10%、ext30 より 4%、XFS より 37% 高速に実行しました。 データ取得テストでは、NVFS は NOVA より 3% 高速で、ext4 および XFS は 15% 高速でした (ただし、アクティブ ディスク キャッシュを使用すると、NOVA は 15% 低速になりました)。
40 万件のディレクトリ操作テストでは、NVFS が NOVA を 4%、ext22 を 46%、XFS を 20% 上回りました。 DBMS アクティビティをシミュレートすると、NVFS ファイル システムは NOVA を 4%、ext18 を 5 倍、XFS を 4 倍上回りました。 fs_mark テストでは、NVFS と NOVA のパフォーマンスはほぼ同等であることが判明しましたが、ext3 と XFS は約 XNUMX 倍遅れています。

NVM メモリ上の従来のファイル システムの遅れは、通常の RAM のように見える不揮発性メモリで使用されるバイト アドレス指定用に設計されていないためです。 従来のドライブからの読み取りでは、セクター読み取り/書き込みレベルでの操作のアトミック性が確保され、NVM メモリは個々のマシン ワード レベルでのアクセスを提供します。 さらに、従来のファイル システムは、RAM よりも明らかに遅いと考えられているメディアへのアクセスの強度を軽減しようとします。また、ハード ドライブ使用時の連続読み取りを保証するために操作をグループ化し、リクエスト キューを処理し、断片化と闘い、ファイルを分離しようとします。さまざまな操作の優先順位。 NVM メモリの場合、データ アクセスの速度は RAM と同等であり、アクセス順序は重要ではないため、このような複雑な作業は不要です。

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

コメントを追加します