Windows Server 2016 TP4 - S2D 新功能剖析

前言

Windows Server 2016 TP4 版本當中的 Storage Space Direct 多了兩項新功能,分別是「Multi-Resilient Virtual Disks」及「ReFS Real-Time Tiering」。

首先,透過這兩項新的特色功能,將可以有效解決以往在 Windows Server 2012 / 2012 R2 當中 Storage Space 的兩大問題:

1. 以往採用「Parity」的方式時,只能用於「備份 (Backup) / 歸檔 (Archival)」用途而已,其它的工作負載便不太合使用,例如,運作 VM 虛擬主機。

2. 使用「Tiering」機制時,只能透過「排程 (Scheduled)」優化作業後,才能將「冷 (Cold) / 熱 (Hot)」資料,分別移動到各自所屬的儲存裝置當中。預設情況下,排程「每天執行 1 次」若希望每天執行多次,則建議每次優化作業的執行間隔「不得低於 6 小時」。



Multi-Resilient Virtual Disks

新的「Multi-Resilient Virtual Disks」仍然是 Virtual Disk,但不同的是在這個 Virtual Disk 當中分成二個部分,其中一部分是「Mirror Tier」另一部分則是「Parity Tier (採用 Erasure Coded 機制處理)」。



因此,在 Windows Server 2016 TP4 版本中實作 S2D 技術時,記得要幫機械式硬碟 HDD 透過 -ResiliencySettingName 參數建立「Mirror Tier 及 Parity Tier」。

至於空間大小的計算部分,舉例來說,若是建立的 Mirror Tier 100GBParity Tier 900GB 時,那麼該 Volume 便為 1TB。此外,有關 Mirror Tier 及 Parity Tier 在資料讀寫的部分,則會交由 ReFS 檔案系統來處理,這也是在 Windows Server 2016 TP4 版本當中,第二項特色功能 ReFS Real-Time Tiering

在上述說明的範例環境中,若是採用 3-Way Mirror 的話那麼這個 Virtual Disk 佔用空間為 100GB *3,加上 900 GB *1.57 (for 4+3 erasure coding),因此 Virtual Disk 大小約為 1.7TB。而非在 Windows Server 2012 R2 若是採用 3-Way Mirror 時,Virtual Disk 大小為 3TB (1TB *3)。



ReFS Real-Time Tiering

了解 Windows Server 2016 TP4 版本中 Mirror Tier 及 Parity Tier 的功用後,接著我們來看看 ReFS 是如何操作這兩個資料讀取及寫入的部分。首先,ReFS 總是會將資料「寫入 (Write)」到「Mirror Tier」,當寫入到 Mirror Tier 的資料比存在於 Parity Tier 還要「新 (Up to Date)」的時候,那麼儲存在 Parity Tier 當中的「舊資料 (Old Data)」便會為無效的狀態。

這樣的資料處理方式,可以確保資料「總是」會將資料優先寫入到 Mirror Tier,並且這樣的資料寫入效能是最好的,除了可以降低主機的 CPU 工作負載之外,當運作如 VM 虛擬主機這種「隨機 IO (Random IO)」的工作負載時,表現將比以往舊有的機制更佳。

資料的寫入作業,將會交由座落在 Virtual Disk 及 File System 之下的「SBC (Storage Bus Cache)」機制來執行,此運作架構的設計優點在於 Mirror Tier 與「快取裝置 (Cache Device)沒有一定比例」的固定關系。因此,不會發生因為空間相較不對稱的情況下,而產生效能表現不如預期的副作用。

ReFS 會將 Mirror Tier 當中「較大連續區塊 (Larger Sequential Chunks)」的部分,透過「Erasure Coding」機制演算之後,將該資料區塊由 Mirror Tier 透過「資料旋轉 (Data Rotation)」的方式至 Parity Tier




此外,在處理較大連續區塊時,將會「略過」回寫式快取機制 (Write-Back Cache,WBC) 直接寫入到「儲存裝置 (Capacity Devices)」當中,原因在於「儲存裝置 (也就是機械式硬碟)」擅長處理「循序 IO (Sequential IO)」。同時,因為是寫入到 Parity Tier 當中,因此不再需要進行「Read-Modify-Write」處理程序,有效確保資料寫入效能。



參考資源