ミクラシュ・パトチカ、 LVMの開発者のXNUMX人であり、RedHatでのいくつかのストレージ最適化発明の発明者。 Linuxカーネルメーリングリストに新しいNVFSファイルシステムを導入しました。
この新しいシステム 高速でコンパクトなファイルシステムの作成を目指しています RAMのパフォーマンスとコンテンツを永続的に保存する機能を組み合わせた不揮発性メモリチップ(NVM、NVDIMMなど)用。
NVFSを開発する場合 FSNOVAの経験が考慮されました、2017年にNVMメモリ用に特別に作成されましたが、Linuxカーネルには含まれず、4.13から5.1までのLinuxカーネルのサポートが制限されています。
提案されたFSNVFS NOVAよりもはるかに簡単です (4972行のコードと21459)、 fsckユーティリティを提供し、パフォーマンスが向上します、拡張属性(xattrs)、セキュリティラベル、ACL、およびクォータをサポートしますが、スナップショットはサポートしません。
NVFSアーキテクチャはFSExt4に近い また、VFSサブシステムに基づくファイルシステムのモデルにうまく適合し、中間層の数を最小限に抑え、カーネルパッチを必要としないモジュールで対応できるようにします。
NVFS DAXカーネルインターフェイスを使用してデバイスに直接アクセスします ページキャッシュをバイパスする永続ストレージ。 バイトアドレス指定を使用するNVMメモリでの作業を最適化するために、ドライブの内容は、従来のブロックデバイスレイヤーと中間キャッシュを使用せずに、カーネルの線形アドレス空間にマップされます。 ルートツリー(ルートツリー)のディレクトリの内容を格納するために使用され、各proheshirovanoファイル名とハッシュ値がツリーの検索に使用されます。
データの整合性は、ジャーナルを使用せずに(FreeBSDUFSおよびOpenBSDFFSのように)「更新」メカニズムによって保証されます。
ファイルの破損を回避するには NVFSでは、lデータ交換操作はグループ化されています クラッシュによってブロックやiノードが失われることはなく、構造の整合性はfsckユーティリティによって復元されます。
fsckユーティリティはマルチスレッドであり、毎秒1,6万iノードのブルートフォースパフォーマンスを提供します。
- ベンチマークでは、NVFSはNVMメモリ内のLinuxカーネルソースを使用してツリーコピー操作を実行し、NOVAよりも約10%、ext30よりも4%、XFSよりも37%高速でした。
- データ検索テストでは、NVFSはNOVAより3%速く、ext4とXFSは15%速くなりました(ただし、アクティブなディスクキャッシュを使用すると、NOVAは15%遅くなります)。
- Million Directory Operationsテストでは、NVFSがNOVAを40%、ext4を22%、XFSを46%上回っています。 DBMSアクティビティをシミュレートすると、NVFSファイルシステムはNOVAを20%、ext4を18倍、XFSを5倍上回りました。 fs_markテストでは、NVFSとNOVAはほぼ同じでしたが、ext4とXFSは約3倍遅れていました。
NVMメモリでの従来のFSの遅れは、通常のRAMに似た不揮発性メモリで使用されるバイトアドレス指定用に設計されていないためです。
通常のドライブを読み取ると、セクターの読み取り/書き込みレベルで操作の原子性が提供され、NVMメモリは個々のマシンワードのレベルでアクセスを提供します。
さらに、従来のファイルシステムは、明らかにRAMよりも遅いと考えられているメディアアクセスの強度を軽減しようとします。また、ハードドライブを使用する場合は、操作をバンドルしてシーケンシャルリードを確保し、リクエストキューを処理し、断片化に対処し、優先順位を分けてさまざまな操作を実行しようとします。 。
NVMメモリの場合、データアクセス速度はRAMに匹敵するため、このような複雑さは不要です。
出典 https://lkml.org/lkml/2020/9/15/517