米庫拉斯·帕託卡, LVM 的開發者之一,也是 Red Hat 多項存儲優化發明的發明者, 已將新的 NVFS 文件系統引入 Linux 內核郵件列表。
這個新系統 旨在創建一個快速且緊湊的文件系統 用於非易失性存儲芯片(NVM,例如 NVDIMM),它將 RAM 的性能與永久存儲內容的能力結合在一起。
開發 NVFS 時 考慮了FS NOVA的經驗,於 2017 年專門為 NVM 內存構建,但未包含在 Linux 內核中,並且對 Linux 內核 4.13 至 5.1 的支持有限。
擬議的 NVFS FS 比 NOVA 簡單多了 (4972 行代碼與 21459 行代碼), 提供了fsck實用程序,它具有更好的性能,支持擴展屬性 (xattrs)、安全標記、ACL 和配額,但不支持快照。
NVFS架構接近FS Ext4 它非常適合基於 VFS 子系統的文件系統模型,從而可以最大限度地減少中間層的數量,並使用不需要內核補丁的模塊。
NVFS 使用DAX內核接口直接訪問設備 持久存儲,繞過頁面緩存。 為了優化使用字節尋址的 NVM 內存的工作,驅動器內容被映射到內核的線性地址空間,而不使用傳統的塊設備層和中間緩存。 它用於存儲根樹目錄(root tree)的內容,其中每個proheshirovano文件名和哈希值用於搜索樹。
數據完整性是通過“更新”機制(如 FreeBSD 的 UFS 和 OpenBSD 的 FFS)來確保的,而不使用日誌。
避免文件損壞 在 NVFS 中,l數據更改操作分組 這樣崩潰不會導致塊或索引節點丟失,並且結構的完整性由 fsck 實用程序恢復。
fsck 實用程序是多線程的,並提供每秒 1,6 萬個索引節點的強力性能。
- 在基準測試中,NVFS 在 NVM 內存中對 Linux 內核源執行樹複製操作,比 NOVA 快約 10%,比 ext30 快 4%,比 XFS 快 37%。
- 在數據查找測試中,NVFS 比 NOVA 快 3%,ext4 和 XFS 快 15%(但使用活動磁盤緩存時,NOVA 慢 15%)。
- 在百萬目錄操作測試中,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