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