儲存空間直接存取的巢狀復原

適用於:Azure Stack HCI、21H2 和 20H2 版、Windows Server 2022 和 Windows Server 2019

巢狀復原是在 Azure Stack HCI 和 Windows Server 中儲存空間直接存取的功能。 巢狀的復原功能可讓兩部伺服器的叢集同時承受多個硬體故障,而不會遺失儲存空間可用性,讓使用者、應用程式和虛擬機器在不中斷的情況下繼續執行。 本文說明巢狀復原的運作方式、提供開始使用的逐步指示,以及回答最常見的問題。

開始之前

如果是下列情況,請考慮巢狀復原:

  • 叢集會執行下列其中一個作業系統:Azure Stack HCI、版本 21H2、Azure Stack HCI、版本 20H2、Windows Server 2022 或 Windows Server 2019;和
  • 您的叢集只有兩個伺服器節點。

如果是下列情況,您無法使用巢狀復原:

  • 叢集執行 Windows Server 2016;或
  • 叢集只有單一伺服器節點,或有三個以上的伺服器節點。

為何是巢狀復原

與傳統雙向鏡像復原不同,即使同時發生多個硬體故障,使用巢狀復原的磁碟區仍可保持連線且可存取。 例如,如果兩個磁碟機同時失敗,或伺服器關閉且磁碟機失敗,則使用巢狀復原的磁碟區會保持連線且可存取。 針對超融合式基礎結構,這會增加應用程式和虛擬機器的執行時間;對於檔案伺服器工作負載,這表示使用者可以不中斷地存取其檔案。

顯示儲存體可用性的圖表。

取捨是巢狀復原的容量效率比傳統雙向鏡像低,這表示您的可用空間會稍微減少。 如需詳細資料,請參閱下一節的容量效率

運作方式

本節提供儲存空間直接存取巢狀復原的背景,並說明兩個新的復原選項及其容量效率。

靈感:RAID 5+1

RAID 5+1 是分散式儲存體復原的既定形式,可提供瞭解巢狀復原的實用背景。 在 RAID 5+1 中,每部伺服器內都有 RAID-5 或單一同位提供的本地復原功能,以防止任何單一磁碟機遺失。 然後,RAID-1 或雙向鏡像會在兩部伺服器之間提供進一步的復原能力,以防止任一伺服器遺失。

顯示 RAID 5+1 的圖表。

復原選項

Azure Stack HCI 和 Windows Server 中的儲存空間直接存取提供兩個在軟體中實作的復原選項,而不需要特殊的 RAID 硬體:

  • 巢狀雙向鏡像。 在每個伺服器中,本地復原是由雙向鏡像所提供,然後透過兩部伺服器之間的雙向鏡像來提供進一步的復原。 這基本上是四向鏡像,每部伺服器上都有兩個位於不同實體磁碟上的複本。 巢狀雙向鏡像提供不妥協的效能:寫入會移至所有複本,而讀取則來自任何複本。

    顯示巢狀雙向鏡像的圖表。

  • 巢狀鏡像加速同位。 結合上一個映像中的巢狀雙向鏡像與巢狀同位。 在每個伺服器中,大部分資料的本地復原是由單一位元同位算術提供,但使用雙向鏡像的最近全新寫入除外。 然後,伺服器之間的雙向鏡像會提供所有資料的進一步復原。 磁碟區的新寫入會移至鏡像部分,在每部伺服器上的個別實體磁碟上有兩個複本。 當磁碟區的鏡像部分填滿每部伺服器上時,最舊的資料會轉換並儲存到背景中的同位部分。 因此,每部伺服器都會以雙向鏡像或單一同位結構來取得磁碟區的資料。 這類似於鏡像加速同位的運作方式,差異在於鏡像加速同位需要叢集和存放集區中的四部伺服器,並使用不同的同位演算法。

    顯示巢狀鏡像加速同位的圖表。

容量效率

容量效率是可用空間與磁碟區使用量的比率。 其會描述復原的容量額外負荷,並因您選擇的復原選項而異。 例如,在沒有復原的情況下儲存資料是 100% 的容量效率 (1 TB 的資料佔用 1 TB 的實體儲存體容量),而雙向鏡像則是 50% 效率 (1 TB 的資料佔用 2 TB 的實體儲存體容量)。

  • 巢狀雙向鏡像會寫入四份所有項目的複本。 這表示若要儲存 1 TB 的資料,您需要 4 TB 的實體儲存體容量。 雖然其簡單性很吸引人,但巢狀雙向鏡像的容量效率為 25%,是儲存空間直接存取中任何復原選項的最低選項。

  • 巢狀鏡像加速同位達到更高的容量效率,大約 35%-40%,取決於兩個因素:每部伺服器中的容量磁碟機數目,以及您為磁碟區指定的鏡像和同位混合。 下表提供常見設定的查閱:

    每部伺服器的容量磁碟機 10% 鏡像 20% 鏡像 30% 鏡像
    4 35.7% 34.1% 32.6%
    5 37.7% 35.7% 33.9%
    6 39.1% 36.8% 34.7%
    7+ 40.0% 37.5% 35.3%

    以下是完整數學的範例。 假設我們在兩部伺服器中都有六個容量磁碟機,而我們想要建立一個 100 GB 的磁碟區,其中包含 10 GB 的鏡像和 90 GB 的同位。 伺服器本地雙向鏡像有 50.0% 的效率,這表示 10 GB 的鏡像資料需要 20 GB 來儲存在每個伺服器上。 鏡像至這兩部伺服器,其使用量總計為 40 GB。 在此案例下,伺服器本地單一同位有 5/6 = 83.3% 的效率,這表示 90 GB 的同位資料需要 108 GB 來儲存在每個伺服器上。 鏡像至這兩部伺服器,其使用量總計為 216 GB。 因此,總使用量為 [(10 GB / 50.0%) + (90 GB / 83.3%)] × 2 = 256 GB,整體容量效率為 39.1%。

    請注意,傳統雙向鏡像的容量效率 (大約 50%) 和巢狀鏡像加速同位 (最多 40%) 並沒有很大的差別。 根據您的需求,稍微較低的容量效率對於在儲存體可用性的大幅增加可能非常值得。 您可以選擇每個磁碟區的復原能力,以便混合相同叢集中的巢狀復原磁碟區和傳統雙向鏡像磁碟區。

    顯示雙向鏡像和巢狀鏡像加速同位之間取捨的圖表。

建立巢狀復原磁碟區

如下一節所述,您可以在 PowerShell 中使用熟悉的儲存體 Cmdlet,來建立具有巢狀復原功能的磁碟區。

步驟 1:建立儲存層範本 (僅 Windows Server 2019)

Windows Server 2019 需要您在建立磁碟區之前,先使用 New-StorageTier Cmdlet 建立新的儲存層範本。 您只需要做一次,然後您所建立的每個新磁碟區都可以參考這些範本。

注意

如果您正在執行 Windows Server 2022、Azure Stack HCI 21H2 或 Azure Stack HCI 20H2,則可以略過此步驟。

指定您容量磁碟機的 -MediaType,並選擇性地指定您選擇的 -FriendlyName。 請勿修改其他參數。

例如,如果您的容量磁碟機是硬碟 (HDD),請以管理員身分啟動 PowerShell 並執行下列 Cmdlet。

若要建立 NestedMirror 層:

New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedMirrorOnHDD -ResiliencySettingName Mirror -MediaType HDD -NumberOfDataCopies 4

若要建立 NestedParity 層:

New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedParityOnHDD -ResiliencySettingName Parity -MediaType HDD -NumberOfDataCopies 2 -PhysicalDiskRedundancy 1 -NumberOfGroups 1 -FaultDomainAwareness StorageScaleUnit -ColumnIsolation PhysicalDisk

如果您的容量磁碟機是固態硬碟 (SSD),請改為將 -MediaType 設定為 SSD,並將 -FriendlyName 變更為 *OnSSD。 請勿修改其他參數。

提示

確認 Get-StorageTier 已成功建立階層。

步驟 2:建立巢狀磁碟區

使用 New-Volume Cmdlet 建立新的磁碟區。

  • 巢狀雙向鏡像

    若要使用巢狀雙向鏡像,請參考 NestedMirror 階層範本並指定大小。 例如:

    New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume01 -StorageTierFriendlyNames NestedMirrorOnHDD -StorageTierSizes 500GB
    

    如果您的容量磁碟機是固態硬碟 (SSD),請將 -StorageTierFriendlyNames 變更為 *OnSSD

  • 巢狀鏡像加速同位

    若要使用巢狀鏡像加速同位,請參考 NestedMirrorNestedParity 階層範本,並指定兩個大小,磁碟區的每個部分各一個 (第一個是鏡像,第二個是同位)。 例如,若要建立 20% 巢狀雙向鏡像和 80% 巢狀同位的 500 GB 磁碟區,請執行:

    New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume02 -StorageTierFriendlyNames NestedMirrorOnHDD, NestedParityOnHDD -StorageTierSizes 100GB, 400GB
    

    如果您的容量磁碟機是固態硬碟 (SSD),請將 -StorageTierFriendlyNames 變更為 *OnSSD

步驟 3:在 Windows Admin Center 中繼續

如下列螢幕擷取畫面所示,使用巢狀復原的磁碟區會出現在具有清楚標籤的 Windows Admin Center。 建立之後,您就可以像儲存空間直接存取中的任何其他磁碟區一樣,使用 Windows Admin Center 來進行管理和監視。

Windows Admin Center 中的磁碟區管理

選用:擴充至快取磁碟機

使用其預設設定時,巢狀復原功能可同時防止多個容量磁碟機遺失,或同時遺失一部伺服器和一個容量磁碟機。 為了擴充此保護來快取磁碟機,有一個額外的考慮:因為快取磁碟機通常會提供多個容量磁碟機的讀取和寫入快取,因此,當其他伺服器關閉時,您可以容許遺失快取磁碟機的唯一方式,就是不要快取寫入,但這會影響效能。

若要解決此情節,儲存空間直接存取提供選項,以在兩部伺服器叢集中的一部伺服器關閉時自動停用寫入快取,然後在伺服器備份後重新啟用寫入快取。 若要允許常式重新開機而不會影響效能,在伺服器關閉 30 分鐘之前,都不停用寫入快取。 一旦停用寫入快取,寫入快取的內容就會寫入容量裝置。 之後,伺服器可以容許線上伺服器上的快取裝置失敗,不過,如果快取裝置失敗,從快取讀取可能會延遲或失敗。

注意

針對所有快取 (單一媒體類型) 實體系統,您不需要考慮在兩部伺服器叢集中的一部伺服器關閉時自動停用寫入快取。 只有在儲存體匯流排層 (SBL) 快取的情況下,才需要考慮這點,也就是只有在您使用 HDD 時才需要。

(選用) 若要在兩部伺服器叢集中的一部伺服器關閉時自動停用寫入快取,請以系統管理員身分啟動 PowerShell 並執行:

Get-StorageSubSystem Cluster* | Set-StorageHealthSetting -Name "System.Storage.NestedResiliency.DisableWriteCacheOnNodeDown.Enabled" -Value "True"

設定為 True 之後,快取行為為:

情況 快取行為 可以容許快取磁碟機遺失嗎?
兩部伺服器開啟 快取讀取和寫入,完整效能
伺服器關閉,前 30 分鐘 快取讀取和寫入,完整效能 無 (暫時)
前 30 分鐘之後 快取唯讀,效能受到影響 是 (快取寫入容量磁碟機之後)

常見問題集

尋找關於巢狀復原之常見問題集的解答。

我可以在雙向鏡像與巢狀復原之間轉換現有的磁碟區嗎?

否,無法在復原類型之間轉換磁碟區。 針對 Azure Stack HCI、Windows Server 2022 或 Windows Server 2019 上的新部署,請事先決定最適合您需求的復原類型。 如果您要從 Windows Server 2016 升級,您可以建立具有巢狀復原能力的新磁碟區、移轉資料,然後刪除較舊的磁碟區。

我可以搭配多種容量磁碟機使用巢狀復原嗎?

是,只需要根據上述步驟 1 期間指定每一層的 -MediaType。 例如,在相同叢集中使用 NVMe、SSD 和 HDD 時,NVMe 會提供快取,而後兩者則提供容量:將 NestedMirror 層設定為 -MediaType SSD,並將 NestedParity 層設定為 -MediaType HDD。 在此案例下,同位容量效率只取決於 HDD 磁碟機的數目,而且每部伺服器至少需要 4 個磁碟機。

我可以搭配三部以上的伺服器使用巢狀復原嗎?

否,只有在叢集正好只有兩部伺服器時,才使用巢狀復原。

我需要多少磁碟機才能使用巢狀復原功能?

儲存空間直接存取所需的磁碟機數目下限為每個伺服器節點四個容量磁碟機,此外每個伺服器節點 (如果有任何) 兩個快取磁碟機。 此與 Windows Server 2016 相比沒有變化。 巢狀復原沒有其他需求,保留容量的建議也會保持不變。

巢狀復原功能是否改變磁碟機更換的運作方式?

不正確。

巢狀復原功能是否改變伺服器節點更換的運作方式?

不正確。 若要取代伺服器節點及其磁碟機,請遵循下列順序:

  1. 淘汰傳出伺服器中的磁碟機
  2. 將新的伺服器及其磁碟機新增至叢集
  3. 儲存集區將會重新平衡
  4. 移除傳出伺服器和其磁碟機

如需詳細資訊,請參閱移除伺服器一文。

後續步驟