Fusion-io NVMFS
SanDisk/Fusion-ioのNVMFSファイルシステム(以前はDFS: Direct File System として知られていた[1][2])は伝統的なブロック層APIを利用する代わりに仮想フラッシュストレージ層経由でフラッシュメモリにアクセスする。このファイルシステムには主に2つの新奇な特徴がある。第1は、ファイルを非常に大きい仮想ストレージアドレス空間内に直接レイアウトすること。第2は、ブロック割り当てとアトミック更新を実行するために仮想フラッシュストレージ層を活用する。その結果、NVMFSは似たような機能性を持つ伝統的なUNIXファイルシステムよりも更にシンプルでかつ、より高い性能を発揮する。加えて、このアプローチはログ構造化ファイルシステムによって引き起こされるログ上ログ(log-on-log)性能問題を回避する[3]。マイクロベンチマークの結果はNVMFSが第1世代Fusion-io ioDrive上に築かれた仮想化フラッシュストレージ層を用いて直接読込みで94,000IOPS、直接書込みで71,000IOPSを達成できることを示している。直接アクセス性能については、NVMFSは一貫して同一プラットフォーム上のext3よりも優れており、場合によっては20%良くなる。バッファされたアクセス性能については、NVMFSは同様に一貫してext3よりも優れており、場合によっては149%以上良くなる。アプリケーションベンチマークはNVMFSが7%~250%、ext3より性能がすぐれている一方で要求されるCPUパワーはより少ないことを示している[1]。加えて、I/Oレイテンシはext3と比較してNVMFSの方が低くなる[4]。
フラッシュメモリAPI
フラッシュメモリにアクセスするためにNVMFSによって使用されるAPIは以下から成る:[5]
このAPIを提供するレイヤーは、DFSペーパーでは仮想化フラッシュストレージ層 と呼ばれている[1]。この層は、ブロック割り当て、ウェアレベリング、ガベージコレクション、クラッシュリカバリを実行し、またデータ構造を永続化するためアドレス変換をする役割を果たす。
リファレンス
- ^ a b c Josephson, William K.; Bongo, Lars A.; Flynn, David; Li, Kai (September 2010). “Dfs: A file system for virtualized flash storage.”. ACM Transactions on Storage 6 (3). doi:10.1145/1837915.1837922. https://www.usenix.org/legacy/events/fast10/tech/full_papers/josephson.pdf.
- ^ Talagala, Nisha (24 August 2012). “Native Flash Support For Applications”. Flash Memory Summit. http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2012/20120823_S304B_Talagala.pdf.
- ^ Yang, Jingpei; Plasson, Ned; Gillis, Greg; Talagala, Nisha; Sundararaman, Swaminathan (5 October 2014). “Don't stack your Log on my Log”. 2nd Workshop on Interactions of NVM/Flash with Operating Systems and Workloads (INFLOW 14). https://www.usenix.org/system/files/conference/inflow14/inflow14-yang.pdf.
- ^ Rochner, Thomas (19 September 2013). “Running NoSQL natively on flash”. NoSQL Search Roadshow Zurich. http://nosqlroadshow.com/dl/basho-roadshow-zurich-2013/slides/ThomasRochner_RunningNoSQLNativelyOnFlash.pdf.
- ^ Das, Dhananjoy (14 November 2014). “In a Battle of Hardware, Software Innovation Comes Out On Top”. SanDisk. 2014年11月29日時点のオリジナルよりアーカイブ。2023年8月20日閲覧。
- ^ Ouyang, Xiangyong; Nellans, David; Wipfel, Robert; Flynn, David; Panda, Dhabaleswar K. (February 2011). “Beyond block I/O: Rethinking traditional storage primitives”. 2011 IEEE 17th International Symposium on High Performance Computer Architecture: 301–311. doi:10.1109/HPCA.2011.5749738. ISBN 978-1-4244-9432-3.
| |||||||||
---|---|---|---|---|---|---|---|---|---|
ディスク |
| ||||||||
ネットワーク型 |
| ||||||||
特殊用途 |
| ||||||||
その他 |
| ||||||||
![]() |