Fusion-io NVMFS

SanDisk/Fusion-ioのNVMFSファイルシステム(以前はDFS: Direct File System として知られていた)は伝統的なブロック層APIを利用する代わりに仮想フラッシュストレージ層経由でフラッシュメモリにアクセスする。このファイルシステムには主に2つの新奇な特徴がある。第1は、ファイルを非常に大きい仮想ストレージアドレス空間内に直接レイアウトすること。第2は、ブロック割り当てとアトミック更新を実行するために仮想フラッシュストレージ層を活用する。その結果、NVMFSは似たような機能性を持つ伝統的なUNIXファイルシステムよりも更にシンプルでかつ、より高い性能を発揮する。加えて、このアプローチはログ構造化ファイルシステムによって引き起こされるログ上ログ(log-on-log)性能問題を回避する。マイクロベンチマークの結果はNVMFSが第1世代Fusion-io ioDrive上に築かれた仮想化フラッシュストレージ層を用いて直接読込みで94,000IOPS、直接書込みで71,000IOPSを達成できることを示している。直接アクセス性能については、NVMFSは一貫して同一プラットフォーム上のext3よりも優れており、場合によっては20%良くなる。バッファされたアクセス性能については、NVMFSは同様に一貫してext3よりも優れており、場合によっては149%以上良くなる。アプリケーションベンチマークはNVMFSが7%～250%、ext3より性能がすぐれている一方で要求されるCPUパワーはより少ないことを示している。加えて、I/Oレイテンシはext3と比較してNVMFSの方が低くなる。

フラッシュメモリAPI 
フラッシュメモリにアクセスするためにNVMFSによって使用されるAPIは以下から成る:

 フラッシュメモリの記憶容量よりも数桁大きいアドレス空間。
 プリミティブの読込み、追加およびTRIM/割り当て解除/破棄。
 アトミック書込み。

このAPIを提供するレイヤーは、DFSペーパーでは仮想化フラッシュストレージ層 と呼ばれている。この層は、ブロック割り当て、ウェアレベリング、ガベージコレクション、クラッシュリカバリを実行し、またデータ構造を永続化するためアドレス変換をする役割を果たす。

リファレンス 

圧縮ファイルシステム
フラッシュファイルシステム
Linuxカーネルでサポートされているファイルシステム