彈性檔案系統(英語:Resilient File System,簡稱ReFS[2],代號「Protogon」[3]。這是一個微軟Windows Server 2012中引入的專有檔案系統,目的是成為NTFS之後的「下一代」檔案系統。

ReFS
開發者Microsoft
全稱Resilient File System
發佈2012年8月1日,​12年前​(2012-08-01[1] (Windows Server 2012)
限制
最大檔案尺寸16 exabyte
最大卷容量1 yottabyte
功能
內容
透明壓縮
寫入時複製
作業系統支援Microsoft Windows

ReFS旨在克服NTFS被構想以來出現的重要問題,面向已改變的數據儲存需求。ReFS的關鍵設計優勢包括自動完整性檢查英語File_integrity_monitoring數據清理、避免需要執行chkdsk、防止數據衰落英語Data_degradation、內建硬碟機故障英語Hard_disk_drive_failure冗餘的處理、整合RAID功能、數據和元數據更新切換到寫時複製/分配超長路徑和檔名的處理,以及儲存虛擬化和儲存池、包括幾乎任意大小的邏輯卷(與所用驅動器的物理大小無關)。

儲存系統和使用情況的需求已發生改變——儲存裝置的大小(大容量或TB級儲存陣列正日益常見)和持續可靠性需求。因此,該檔案系統需要根據物理磁碟和邏輯卷之間的抽象層或虛擬化完成自我修復,避免介入緩慢或必須中斷的磁碟檢查)。

ReFS最初只被添加到Windows Server 2012,目標是逐步遷移到未來版本的消費者系統中(很快就有愛好者以修改英語Modding方式解鎖這點)。最初的版本中移除了一些NTFS功能,例如磁碟配額英語Disk_quota備用數據流擴充內容,因此引發了一定關注。有部份功能已在更高版本的ReFS中重新實現。

在ReFS的早期版本(2012年-2013年)中,它在測試中類似或略高於NTFS的水平[4],但在完整性檢查時遠慢於NTFS,這是因為ReFS新採用了奇偶效驗。[5][6]也有使用者在預發佈版本中提到了到儲存空間,該儲存系統旨在支撐ReFS,但據稱它可能會導致ReFS自動恢復失敗。[7][8][9]

從Windows Server 2022和Windows 11 v21H2開始,其UEFI引導環境原生支援ReFS啟動,並允許將系統以特殊方式安裝在用ReFS v3格式化的卷中執行,如果是採用ReFS v1格式化的卷則不能使用ReFS啟動。[10]

相較NTFS的功能變化

重要新功能

改進磁碟結構可靠性
ReFS對所有儲存在磁碟上的結構使用B+ 樹,包括所有元數據和檔案數據。[11][12]元數據和檔案數據被組成一個類似關聯式資料庫的數據表。檔案大小、資料夾內的檔案數和卷總大小及卷中資料夾數量都採用64位元數字;因此,ReFS支援最多16 EB的檔案大小,最多18.4 × 1018個目錄和最大1 YB(64 KB的卷),這允許較大的可延伸性,對檔案和目錄大小沒有實際限制(硬件限制仍適用)。空閒空間是由一個分層分配器計算,其中包括三個單獨的表,分別儲存大、中、小塊。
內建復原
ReFS對元數據採用allocation-on-write更新策略[11],每次更新時分配新塊並採用批次IO。所有ReFS元數據都採用獨立儲存的64位元校驗和。檔案數據可以單獨擁有可選的「完整性流」校驗和,那種情況下檔案更新策略也實現寫時複製;新的「完整性」內容可套用到檔案和目錄。如果檔案數據或元數據損壞,檔案可以直接刪除而無需離線維護整個卷,並且檔案可以從備份恢復。因為內建彈性設計,管理員不需要對ReFS定期執行錯誤檢查工具,例如CHKDSK
與現有API和技術相容
ReFS支援NTFS特性的一個子集,並且僅「廣泛使用」的Win32 API支援它;但它不需要新的系統API,並且大多數檔案系統篩選器可在ReFS卷工作。[11]ReFS支援許多現有的Windows和NTFS特性,例如BitLocker 加密、訪問控制列表USN紀錄檔、變更通知[13]符號連結junction點英語NTFS_junction_point掛載點重解析點卷快照檔案ID操作釘選。ReFS與儲存空間無縫整合[11]儲存虛擬化層允許數據被鏡像或條帶化,以及作為機器之間的共用儲存池。[14]ReFS的可恢復功能增強了儲存空間提供的鏡像功能,可以使用數據清理流程檢測是否有任何檔案的鏡像副本已經損壞(可選啟用) [12],它會定期讀取所有副本並驗證它們的校驗和,然後使用良好副本替換損壞副本。

已移除功能

某些NTFS功能在ReFS的初始版本中已移除或不支援。這包括備用數據流對象ID8.3檔名NTFS壓縮加密檔案系統(EFS)、事務性NTFS英語Transactional_NTFS硬連結擴充內容磁碟配額英語Disk_quota[11][3][15]ReFS最初不提供重複數據刪除[11]在隨後的v3.2版本中實現。此外,Windows目前不能從ReFS卷引導啟動。[11]鏡像或條帶化卷的動態磁碟已被「儲存空間」提供的鏡像或條帶化儲存池取代;自動糾錯僅在鏡像空間支援。

在後續實現的Windows 8.1 64位元和Server 2012 R2的ReFS中,檔案系統開始支援備用數據流,最大長度128K,以及完整性流在奇偶效驗空間上自動糾正損壞數據。[16]ReFS在缺乏備用數據流的支援時不適合Microsoft SQL Server實例分配。[17]

穩定性和已知問題

一些ReFS與「儲存空間」共同執行時的出現問題已被提出或建議[9],包括:

  • 在「儲存空間」上添加自動精簡組態的ReFS可能以非正常的方式失敗,卷會沒有警告地變為無法訪問或無法管理。[7]發生此情況的可能原因是,如果物理磁碟的基本儲存空間太慢。Smallnetbuilder英語Smallnetbuilder評論說,這種情況下,修復可能會「望而卻步」,因為理論上進展需要需要辨識儲存空間的佈局和恢復它們,而這在開始前需要恢復任何ReFS檔案系統內容;因此推薦同時採用備份手段。[7]
  • 即使「儲存空間」非自動精簡組態,ReFS在某些情況下仍可能無法有把握的糾正所有檔案錯誤。因為儲存空間以塊而非檔案操作,如果儲存空間的某些部份工作異常,某些檔案可能會缺乏必要的塊或恢復數據。因此,磁碟和數據的添加和刪除可能會受損,以及冗餘轉換變得困難或不可能。[8]
  • 因為ReFS不是為應對故障設計,如果它發生故障,目前沒有工具來修復它。第三方工具只能逆向工程該系統,截至2014年只有寥寥幾個工具。[9]

與競爭對手的效能比較

2014年,一篇對ReFS的評論與準備在生產中使用的評估顯示,ReFS在與它的兩個主要競爭對手(檔案系統)的比較中具有關鍵優勢。ZFS(在SolarisFreeBSD中使用)被廣泛批評為使用數GB的主記憶體用於連線重複數據消除,這影響了它在大量中小型系統上的使用。但是,在關閉ZFS的連線重複數據消除後(因為ReFS不支援此功能),ZFS只佔用幾百MB主記憶體,與另外兩個系統相對持平。Drobo英語Drobo等方案使用專有方法,這意味着如果故障且廠商也無法解決,沒有其他解決方案。[18]

2012年,Phoronix撰寫了一篇[19]ReFS對戰Btrfs的分析(Btrfs是適用於Linux的一個寫時複製檔案系統)。兩者具有類似的特性,都支援校驗和、類RAID使用多塊磁碟,以及錯誤檢測與糾正。但是,當時的ReFS缺乏重複數據刪除、寫時快照和壓縮,而Btrfs和ZFS支援上述技術。

參見

參考資料

  1. ^ Snover, Jeffrey. Windows Server 2012 released to manufacturing!. Windows Server Blog. Microsoft Corporation. 2012-08-01 [2014-09-02]. (原始內容存檔於2015-12-22). 
  2. ^ Lucas, Martin. Windows Server 2012: Does ReFS replace NTFS? When should I use it?. Ask Premier Field Engineering (PFE) Platforms. Microsoft. TechNet blogs. 2013-01-01 [2013-01-20]. (原始內容存檔於2013-05-15). 
  3. ^ 3.0 3.1 Foley, Mary Jo. Microsoft goes public with plans for its new Windows 8 file system. ZDNet. CBS Interactive. 2012-01-16 [2013-01-21]. (原始內容存檔於2013-05-15). 
  4. ^ ReFS vs NTFS Benchmark - First Ever - Exclusive Technology News. firstever.eu. [2016-06-26]. (原始內容存檔於2014-07-08). 
  5. ^ Relative Performance of Parity .vs. Mirror in Storage Spaces. Baris Eris's Blog. [2016-06-26]. (原始內容存檔於2014-06-22). 
  6. ^ 存档副本. [2016-06-26]. (原始內容存檔於2014-06-17). 
  7. ^ 7.0 7.1 7.2 Elena Pakhomova of ReclaiMe.com. Data Recovery Tales: When Windows Storage Spaces Go Bad. 2012-08-08 [2016-06-26]. (原始內容存檔於2016-07-30). 
  8. ^ 8.0 8.1 Windows 8 Storage Spaces: Bugs and Design Flaws. helgeklein.com. [2016-06-26]. (原始內容存檔於2016-06-18). 
  9. ^ 9.0 9.1 9.2 存档副本. [2014-06-17]. (原始內容存檔於2014-08-08). 
  10. ^ 如何在 ReFS 分区中安装并启动 Windows 系统 - IT之家. www.ithome.com. 2021-07-24 [2021-07-24] (中文). 
  11. ^ 11.0 11.1 11.2 11.3 11.4 11.5 11.6 Verma, Surendra. Sinofsky, Steven , 編. Building the next generation file system for Windows: ReFS. Building Windows 8. Microsoft. MSDN blogs. 2012-01-16 [2013-01-20]. (原始內容存檔於2013-05-15). 
  12. ^ 12.0 12.1 Meyer, David. Microsoft takes wraps off new Windows file system. ZDNet. CBS Interactive. 2012-01-17 [2013-01-20]. (原始內容存檔於2013-05-15). 
  13. ^ ReadDirectoryChangesW function. MSDN Library. Microsoft. 2012-11-08 [2013-01-21]. (原始內容存檔於2013-05-15). 
  14. ^ Nagar, Rajeev. Sinofsky, Steven , 編. Virtualizing storage for scale, resiliency, and efficiency. Building Windows 8. Microsoft. MSDN blogs. 2012-01-05 [2013-01-18]. (原始內容存檔於2013-05-15). 
  15. ^ Windows Server 2012: Does ReFS replace NTFS?. [2016-06-26]. (原始內容存檔於2013-05-15). 
  16. ^ Resilient File System Overview. TechNet Library. Microsoft. 2012-02-29 [2013-12-25]. (原始內容存檔於2017-02-01). 
  17. ^ Cherry, Denny. SQL Server Pro magazine. Troubleshooting SQL Server Storage Problems. Penton Media. 2012-08-21 [2016-06-26]. (原始內容存檔於2017-10-10). 
  18. ^ Windows Storage Spaces and ReFS: Is it time to ditch RAID for good?. BetaNews. [2016-06-26]. (原始內容存檔於2014-01-31). 
  19. ^ Microsoft's ReFS File-System: Competitor To Btrfs? - Phoronix. phoronix.com. [2016-06-26]. (原始內容存檔於2016-09-08). 

外部連結