Windows的全新文件系統:ReFS
大約 20 年前,微軟公布了 New Technology File System(NTFS)文件系統,作為 Windows NT 的一部分出現。從那時起,NTFS 就沉淀下很多特性,這些特性可能當時看起來不錯,但實際上是不怎么樣的想法。同時,尖端技術不斷發展,與 NTFS 架構也就不再兼容了。經過幾次失敗的嘗試之后,微軟現在承諾提供一個全新的文件系統。
該文件系統被稱為 ReFS 或“彈性文件系統”,其設計目的是要提升可靠性,特別是發生電源斷電或是媒介故障的時候(比如磁盤的老化)。可靠性部分來自底層的變化,比如文件元數據的存儲和更新。現在元數據的更新使用寫時分配(allocate-on-write)方式,而不是以前的結合日志即時更新方式。
ReFS 兼容 Storage Spaces 跨區卷技術。Storage Spaces 自身有多種提升性能和可靠性的方式,特別是出現災難性的磁盤失敗情況時。然而,可能發生某種很微妙形式的數據毀壞情況。ReFS 使用校驗和系統,可以檢測到這些錯誤的發生。出現錯誤時,ReFS 會查詢所有的 Storage Spaces 驅動器,判斷誰有文件的正確拷貝。
為了主動確保驅動器和文件的完整性,ReFS 會運行后臺進程,不時抽測文件。該進程會對比與元數據和文件每份拷貝的內容,正如上例,該進程會使用正確拷貝修復其他錯誤拷貝。這對于很少訪問的文件很重要,因為除非其他拷貝也出錯,否則一份拷貝中的錯誤可能很難發現。
另一種可靠保障機制被稱為“完整性流(integrity streams)”。與元數據類似,完整性流會使用寫時分配方式來降低錯誤發生幾率,這種錯誤發生在向磁盤寫入時,有可能導致文件內容唯一一份正確拷貝出錯。完整性流不適用所有文件類型,需要控制物理文件結構的應用(比如數據庫)應該禁止該功能。
為了提升兼容性,在實現 ReFS 時,保證它可以在 NTFS API 下運行,只是替換了一些最底層的 API。不過還是有一些 NTFS 的功能 ReFS 無法支持:
- 命名流
- 對象 ID
- 短名稱
- 壓縮
- 文件級加密(EFS)
- 用戶數據事務
- 分散文件
- 硬鏈接
- 擴展屬性
- 磁盤份額
“BitLocker 加密、安全訪問控制列表、USN 日志、變更通知、符號鏈接、接點、掛載點、重解析點、卷快照、文件 ID、oplocks”等其他特性仍得到支持。
ReFS 的早期版本將定位于文件服務器。也就是說只能在 Windows 8 Server 版中才能使用,而且不支持可啟動驅動器。將來,ReFS 將可以提供給客戶機版本的 Windows,最終將可用作啟動驅動器。考慮到文件系統缺陷的危險程度,微軟認為這種緩慢的方式更加審慎。
不過 NTFS 格式文件系統還是不能直接轉換為 ReFS,必須創建新的驅動器,然后把數據拷貝過去。
查看英文原文:Introducing Windows New File System: ReFS