事件
4月29日 下午2時 - 4月30日 下午7時
歡迎參加 4月 29-30 日舉辦的全方位 Windows Server 虛擬活動,除了深入的技術研討會外,還可與 Microsoft 工程師進行即時 Q&A。
立即註冊儲存空間可以使用兩種基本技術來為數據提供容錯:鏡像和同位。 在儲存空間直接存取中,ReFS 引進鏡像加速同位,可讓您建立同時使用鏡像和同位復原的磁碟區。 鏡像加速同位提供便宜、節省空間的儲存空間,而不會犧牲效能。
鏡像和同位復原配置具有基本不同的儲存體和效能特性:
因此,鏡像傾向於提供效能敏感的儲存體,同位則提供改善的儲存體容量使用率。 在鏡像加速的同位中,ReFS 會利用每個復原類型的優點,藉由結合單一磁碟區內的兩個復原配置來提供節省容量和效能敏感的儲存體。
ReFS 會即時主動輪替鏡像與同位之間的資料。 這樣可讓傳入的寫入快速寫入鏡像,然後輪替至同位,以便有效率地儲存。 如此一來,傳入的 IO 會在鏡像中快速被服務,而極非經常性存取資料會有效率地儲存於同位,同時在同一磁碟區內提供最佳效能和無效益儲存體。
若要在鏡像與同位之間輪替資料,ReFS 會以邏輯方式將磁碟區分割成 64 MB 的區域,也就是輪替單位。 下圖描述分割成區域的鏡像加速同位磁碟區。
一旦鏡像層達到指定的容量層級,ReFS 會開始將整個區域從鏡像輪替為同位。 ReFS 不會立即將資料從鏡像移至同位,而是盡可能等候並保留鏡像中的資料,讓 ReFS 繼續為數據提供最佳效能 (請參閱下面的「IO 效能」)。
將資料從鏡像移至同位時,會讀取資料、計算同位編碼,然後將該資料寫入同位。 下列動畫使用在輪替期間轉換成糾刪碼編碼區域的三向鏡像區域來說明此問題:
寫入: ReFS 以三種不同的方式服務傳入的寫入:
寫入鏡像:
寫入鏡像,從同位重新配置:
如果傳入的寫入會修改同位中的資料,且 ReFS 可以成功地在鏡像中尋找足夠的可用空間來服務該傳入的寫入,ReFS 會先讓同位中的先前資料無效,然後再寫入鏡像。 此一無效作業是快速且廉價的中繼資料作業,可協助有意義地改善對同位的寫入效能。
寫入同位:
如果 ReFS 在鏡像中找不到足夠的可用空間,ReFS 會將新資料寫入同位,或直接修改同位中的現有資料。 下面的「效能優化」章節提供指引,可協助將寫入最小化至同位。
讀取: ReFS 會直接從包含相關資料的層讀取。 如果使用 HDD 建構同位,儲存空間直接存取中的快取將會快取此資料,以加速未來的讀取。
備註
讀取絕對不會造成 ReFS 將資料輪替回鏡像層。
寫入:上述每種寫入類型都有自己的效能特性。 大致上來說,對鏡像層的寫入速度比重新配置寫入快得多,而重新配置寫入的速度明顯比直接寫入同位層的寫入還要快。 這個不等式說明此關聯性:
讀取:從同位讀取時並無重大的負面效能影響:
ReFS 的壓縮適用於 Windows Server 2019 和更新版本,可大幅改善 90% 以上完整鏡像加速同位磁碟區的效能。
背景:先前,當鏡像加速同位磁碟區已滿時,這些磁碟區的效能可能會降低。 效能會降低,因為隨著時間的推移,整個磁碟區中的經常性存取和極非經常性存取資料會混合在一起。 這表示不常使用的資料可能會儲存在鏡像中,因為極非經常性存取資料會占用原本可供經常性存取資料使用的鏡像空間。 將經常性存取資料儲存於鏡像,對維持高效能而言至關重要,因為直接寫入鏡像的速度比重新配置寫入更快,而且比直接寫入同位要快好幾個數量級。 因此,在鏡像中擁有極非經常性存取資料對效能不利,因為它會降低 ReFS 可直接寫入鏡像的可能性。
ReFS 壓縮可以釋出鏡像中的空間,供經常性存取資料使用,以解決這些效能問題。 壓縮會先將鏡像和同位中的所有資料合併成同位。 這樣可以減輕磁碟區內的分散情況,並增加鏡像中可定址空間的量。 更重要的是,此程序可讓 ReFS 將經常性存取資料合併回鏡像:
重要
建議將大量寫入 VHD 放在不同的子目錄中。 這是因為 ReFS 會在目錄及其檔案層級寫入中繼資料變更。 因此,如果您將頻繁寫入的檔案分散到目錄,中繼資料作業比較小,且以平行方式執行,可減少應用程式的延遲。
ReFS 會維護效能計數器,以協助評估鏡像加速同位的效能。
如上所述,在鏡像中找不到可用空間時,ReFS 會直接寫入同位。 一般而言,當鏡像層填滿比 ReFS 將資料輪替為同位還要快時,就會發生這種情況。 換句話說,ReFS 輪替無法跟上擷取速率。 下列效能計數器會識別 ReFS 何時直接寫入同位:
# Windows Server 2016
ReFS\Data allocations slow tier/sec
ReFS\Metadata allocations slow tier/sec
# Windows Server 2019
ReFS\Allocation of Data Clusters on Slow Tier/sec
ReFS\Allocation of Metadata Clusters on Slow Tier/sec
如果這些計數器不是零,表示 ReFS 從鏡像中輪替資料的速度不夠快。 為了協助緩解這種情況,您可以變更輪替積極性,或增加鏡像層的大小。
一旦鏡像達到指定的容量閾值,ReFS 就會開始輪替資料。
ReFS 引入了可調整的參數,以調整此閥值,可使用登錄機碼進行設定。 此登錄機碼必須在儲存空間直接存取部署的每個節點上設定,而且需要重新開機,任何變更才會生效。
如果未設定此登錄機碼,ReFS 會使用預設值 85%。 大部分部署都建議使用這個預設值,不建議使用低於 50% 的值。 下列 PowerShell 命令示範如何使用 75% 的值來設定此登錄機碼:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75
若要在儲存空間直接存取部署的每個節點上設定此登錄機碼,您可以使用下列 PowerShell 命令:
$Nodes = 'S2D-01', 'S2D-02', 'S2D-03', 'S2D-04'
Invoke-Command $Nodes {Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75}
增加鏡像層的大小可讓 ReFS 在鏡像中保留較大部分的工作集。 這樣可以提高 ReFS 直接寫入鏡像的可能性,有助於達到更好的效能。 下列 PowerShell Cmdlet 示範如何增加鏡像層的大小:
Resize-StorageTier -FriendlyName "Performance" -Size 20GB
Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName "Performance") -Size 20GB
提示
在重設 StorageTier 大小之後,請務必調整磁碟分割和磁碟區的大小。 如需詳細資訊和範例,請參閱 擴充基本磁碟區。
下列 PowerShell Cmdlet 會建立 1-TiB 鏡像加速同位磁碟區,而 [鏡像:同位] 的比率為 20:80,這是大部分工作負載應使用的設定。 如需詳細資訊和範例,請參閱在儲存空間直接存取中建立磁碟區。
New-Volume -FriendlyName "TestVolume" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName "StoragePoolName" -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes 200GB, 800GB
事件
4月29日 下午2時 - 4月30日 下午7時
歡迎參加 4月 29-30 日舉辦的全方位 Windows Server 虛擬活動,除了深入的技術研討會外,還可與 Microsoft 工程師進行即時 Q&A。
立即註冊訓練
模組
Implement Windows Server File Server high availability - Training
Implement Windows Server File Server high availability