引言:Windows Server 2012及Windows 8.1中出現了一種全新的文件系統(tǒng),名為“彈性文件系統(tǒng)” ReFS(Resilient File System)。傳統(tǒng)意識認為,RAID是一種硬件驅動的高可靠存儲方案,但隨著云架構系統(tǒng)和大數據廣泛應用,簡單的RAID奇偶校驗難以容納數千個磁盤卷。ReFS通過采用全新引擎“Minstore”,支持快照、加密、超大磁盤、巨量文件和最大卷容量16EB。
ReFS將B+樹作為惟一且通用磁盤結構,借此展現磁盤的全部信息。ReFS中所有元數據校驗工作都可在樹層面進行,這些校驗值會獨立于樹頁面本身,單獨保存。這樣可避免各種形式磁盤錯誤。
ReFS能夠實時檢測和修復數據錯誤,無需卸載或干擾訪問相應的卷。當一個文件被讀取,讀取文件的校驗與存儲的校驗相比較,錯誤被自動檢測。
在ReFS中,校驗被放到文件元數據。一個附加的稱為Integrity Streams的可選功能,確保更改寫入時,它們被寫入到一個不同的成員卷,以確保原始數據不受損害。這種錯誤檢測對抗位損壞,磁盤上存儲數據的降解,以及硬件故障、固件故障等破壞性事件,不影響聯機文件系統(tǒng)的可用性。
ReFS還包含了對文件內容進行校驗的額外功能。通過啟用名為Integrity Streams的選項,ReFS會將文件改動寫入到不同于原始位置的其他位置。使用了一種在寫入事務中進行分配的模式(也叫做“寫入時復制”)。這種方法可提供最大化的可靠性,同時無需采用日志結構的文件系統(tǒng),既可避免在磁盤更新過程中,由于斷電導致隨機寫入以及大量寫入操作產生的問題。
為此,您可以通過自動化的方式將元數據的更新操作寫入到其他位置,不對原數據進行原位更新。
ReFS設計上可以充分滿足Windows存儲棧的各種指標,通過其他棧層提供最大化的靈活性與兼容性。兼容各種常用軟件,如備份與反病毒應用程序,ReFS在設計上依然能夠很好地與存儲棧的其他層完美配合。ReFS可無縫利用多臺計算機以及虛擬磁盤上共享的存儲池,并可在存儲池之間實現無縫轉換,在存儲空間或ReFS基礎之上提供額外的容錯能力。
ReFS繼承了NTFS文件系統(tǒng)的出色功能,例如BitLocker驅動器加密、增強安全性的訪問控制列表(ACL)、USN日志、變更通知、重解析點、卷快照、SymLinks/Junctions/Mount points、文件ID以及Oplocks。另外,ReFS還可使用與客戶端上任何操作系統(tǒng)訪問NTFS卷時相同的文件訪問API進行訪問。
但是,ReFS也有一些重要限制,包括:
1.無法將原有NTFS磁盤區(qū)直接轉換為ReFS格式,只能在兩種文件系統(tǒng)間以手動方式搬移與復制資料。
2.ReFS不能作為啟動分區(qū),這意味著Server 2012系統(tǒng)必須混合使用NTFS與ReFS兩種文件系統(tǒng),并以NTFS分區(qū)來啟動。
3.ReFS不適用于移動儲存如移動硬盤和USB盤,ReFS本身并未含有重復數據刪除功能,也無法與Server 2012新增的重復數據刪除功能并用(Server 2012的重復數據刪除功能,僅適用于NTFS文件系統(tǒng)磁盤區(qū))。
4.ReFS本身未內置可寫入的快照功能,用戶需通過其他工具軟件,直接從ReFS底層的Storage Space虛擬磁盤建立可寫入快照。
在Windows 8及Windows Server 2012中,我們已經見識到了ReFS v1這種新穎的磁盤系統(tǒng),不過這種所謂可靠性文件系統(tǒng),并沒有讓我們看到比常見的NTFS有多少優(yōu)勢,況且它主要針對的Windows Hyper-V磁盤。如今,ReFS v2明顯的技術改良讓筆者頓時眼前一亮。
這里,筆者不禁想到了在Windows 8/ Windows Server 2012中出現的針對磁盤陣列的Storage Spaces技術,它提供了三種存儲模式,即簡約型(Simple)、鏡像型(Mirror)和奇偶校驗型(Parity)。Simple模式相當于單獨磁盤的RAID 0;Mirror模式相當于RAID 1,會將所有數據復制到兩塊或三塊物理盤上;Parity模式則相當于RAID 5,會跨接多塊磁盤通過奇偶方式檢測錯誤,Storage Spaces對于NTFS或ReFS文件系統(tǒng)均有效。
如今回想起來,ReFS v1有一項頗有野心的功能,就是所謂完整型數據流(integrity streams),主 要用于對運行中的文件進行檢測和糾錯,但令人失望的是,它對Hyper-V虛擬磁盤不僅無效,而且會對系統(tǒng)造成嚴重阻礙。因此,在正常運行的Windows Server 2012 R2系統(tǒng)總是竭力回避ReFS v1。而在業(yè)已公布的Windows Server 2016 TP版本中出現的ReFS v2,的確有很多改進值得關注。
ReFS格式的文件系統(tǒng),較之NTFS的一項重要優(yōu)勢是,當意外錯誤發(fā)生之際,主要表現在Storage Spaces蓄池在將ReFS作為底層硬盤格式時,能夠極大改進修復處理過程,因為CHKDSK在處理大型NTFS卷時,采取的是自然順序方式,非常耗時,可是ReFS卷則效率明顯加快,因為它對整個卷采用了多種并行運行方式。
Windows Server 2016 TP版本中提供的ReFS v2還有一項針對Hyper-V的重要功能,就是“數據塊克隆”(block cloning),它可以優(yōu)化處理虛擬數據負載,這里需要用到檢查點(checkpointing)和快照(snapshot)技術。具體而言,就是ReFS能夠將某個文件中的某些整塊克隆到另外文件中,將執(zhí)行一種復制加寫入的中間環(huán)節(jié),它能夠極大地提高系統(tǒng)整體性能,同時有利于減少隨機生成的數據垃圾。
ReFS v2還采用了一種“簇環(huán)”技術(cluster bands), 用于將數據分組“打捆”,從而有效改進I/O性能。為了檢測ReFS v2的磁盤操作速度。
筆者做了一個簡單的實驗,即在NTFS卷上生成一個新的127GB的VHDX文件,用時為12分47秒,而將相同的磁盤(一塊2TB SAS的磁盤)進行ReFS格式化后發(fā)現速度基本一樣。分析其過程,原來ReFS僅僅是對文件分配空間,它并不對磁盤原有數據進行清理。而且,在ReFS v2卷上生成任何大小的磁盤時用時都沒有明顯差別。
順便說一下,在了解不同格式文件系統(tǒng)的運行速度的實驗過程中,筆者在微軟網站還發(fā)現了一個專門的測速工具,即DiskSpd,筆者的實驗配置為掛接著4塊NVMe SSD磁盤的Dell R930,分別 采取 NTFS和ReFS格式進行比較。筆者的體會是,系統(tǒng)的錯誤處理和正常運行其實比速度更重要,這也許正是ReFS v2的用意所在吧。