容錯移轉叢集維護程序

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

本文假設您需要關閉實體伺服器的電源來執行維護,或基於其他原因進行重新開機。 若要在 Azure Stack HCI 叢集上安裝更新,而不讓伺服器離線,請參閱更新 Azure Stack HCI 叢集

使伺服器離線以進行維護時,需要讓容錯移轉叢集內所有伺服器之間共用部分的儲存體離線。 這需要暫停您想要離線的伺服器、將伺服器的磁碟置於維護模式、將叢集角色和虛擬機器 (VM) 移至叢集中的其他伺服器,並確認叢集中的其他伺服器上可使用所有資料。 此程序可確保資料在維護期間都保持安全,且可供存取。

您可以使用 Windows Admin Center 或 PowerShell 將伺服器離線以進行維護。 本主題將討論這兩種方法。

使用 Windows Admin Center 讓伺服器離線

讓伺服器離線的最簡單準備方式,就是使用 Windows Admin Center。

確認伺服器可以安全地離線

  1. 使用 Windows Admin Center,連線到您想要離線的伺服器。 從 [工具] 功能表中選取 [儲存體] > [磁碟],然後確認每個虛擬磁碟的 [狀態] 資料行顯示為 [線上]。

  2. 然後,選取 [儲存體] > [磁碟區],並確認每個磁碟區的 [健全狀況] 資料行顯示 [良好],且每個磁碟區的 [狀態] 資料欄都顯示 [確定]。

暫停和清空伺服器

在關閉或重新開機伺服器之前,您應該暫停伺服器,並清空 (移轉) 任何叢集角色,例如在上面執行的 VM。 請務必先暫停並清空叢集伺服器,再進行離線維護。

  1. 使用 Windows Admin Center 連線到叢集,然後從叢集管理員中的 [工具] 功能表選取 [計算] > [伺服器]。

  2. 選取 [清查]。 按一下您想要暫停和清空的伺服器名稱,然後選取 [暫停]。 您應該會看到下列提示:

    暫停伺服器進行維護:確定要暫停伺服器嗎? 這會將工作負載 (例如虛擬機器) 移至叢集中的其他伺服器。

  3. 選取 [是] 以暫停伺服器並開始清空程序。 伺服器狀態會顯示為 [維護中,正在清空],而 Hyper-V 和 VM 等角色將立即開始即時移轉至叢集中的其他伺服器。 這可能需要數分鐘的時間。 在伺服器恢復之前,無法將任何角色新增至伺服器。 清空程序完成時,伺服器狀態會顯示為 [維護中,清空完成]。 作業系統會執行自動安全檢查,以確保能夠安全地繼續進行。 如果磁碟區狀況不良,它將會停止,並提醒您繼續執行並不安全。

關閉伺服器

一旦伺服器完成清空之後,您就可以安全地將其關閉以進行維護或重新開機。

警告

如果伺服器正在執行 Azure Stack HCI 20H2 版、Windows server 2019 或 Windows Server 2016,您必須先讓磁碟進入維護模式,然後再關閉伺服器,再將磁碟移出維護模式,接著將伺服器恢復到叢集中。

恢復伺服器

當您準備好讓伺服器再次開始裝載叢集角色和 VM 時,只要開啟伺服器、等候開機,然後使用下列步驟恢復伺服器即可。

  1. 在叢集管理員中,從左側的 [工具] 功能表選取 [計算] > [伺服器]。

  2. 選取 [清查]。 按一下您想要恢復的伺服器名稱,然後按一下 [恢復]。

叢集角色和 VM 將立即開始即時移轉至伺服器。 這可能需要數分鐘的時間。

等候儲存體重新同步

在伺服器恢復時,在無法使用時所發生的任何新寫入都需要重新同步。 這項作業會使用智慧型變更追蹤自動進行。 不需要掃描或同步處理「所有」資料,僅針對變更即可。 此程序會進行調整以減少對於生產工作負載造成的影響。 根據伺服器暫停的時間以及寫入的新資料量而定,同步可能需要幾分鐘的時間才能完成。

重要

您必須等候重新同步完成,才能讓叢集中的任何其他伺服器離線。

若要檢查重新同步是否已完成,請使用 Windows Admin Center 連線到伺服器,然後從左側的 [工具] 功能表中選取 [儲存體] > [磁碟區],然後選取接近頁面頂端的 [磁碟區]。 如果每個磁碟區的 [健全狀況] 資料行都顯示 [良好],且每個磁碟區的 [狀態] 資料行顯示 [確定],則表示重新同步處理已完成,現在可安全地讓叢集中的其他伺服器離線。

使用 PowerShell 讓伺服器離線

使用下列程序,在容錯移轉叢集中使用 PowerShell 來妥善地暫停、清空和恢復伺服器。

確認伺服器可以安全地離線

若要確認您的所有磁碟區都狀況良好,請以系統管理員身分執行下列 Cmdlet:

Get-VirtualDisk

此輸出可能看起來會像以下的範例:

FriendlyName              ResiliencySettingName FaultDomainRedundancy OperationalStatus HealthStatus    Size FootprintOnPool StorageEfficiency
------------              --------------------- --------------------- ----------------- ------------    ---- --------------- -----------------
Mirror II                 Mirror                1                     OK                Healthy         4 TB         8.01 TB            49.99%
Mirror-accelerated parity                                             OK                Healthy      1002 GB         1.96 TB            49.98%
Mirror                    Mirror                1                     OK                Healthy         1 TB            2 TB            49.98%
ClusterPerformanceHistory Mirror                1                     OK                Healthy        24 GB           49 GB            48.98%

確認每個磁碟區的 HealthStatus 屬性都是 Healthy,且 OperationalStatus 顯示 OK。

若要使用容錯移轉叢集管理員來執行此操作,請移至 [儲存體]>[磁碟]。

暫停和清空伺服器

使用系統管理員身分執行下列 Cmdlet,以暫停和清空伺服器:

Suspend-ClusterNode -Drain

若要在容錯移轉叢集管理員中執行此動作,請移至 \[節點\],在節點上按滑鼠右鍵,然後選取 \[暫停\]\[清空角色\]

如果伺服器正在執行 Azure Stack HCI 21H2 版或 Windows server 2022,則暫停和清空伺服器也會讓伺服器的磁碟進入維護模式。 如果伺服器正在執行 Azure Stack HCI 20H2 版、Windows server 2019 或 Windows Server 2016,您必須手動執行這項操作 (請參閱下一個步驟)。

使裝置進入維護模式

在 Azure Stack HCI 20H2 版、Windows server 2019 和 Windows Server 2016 中,使伺服器的磁碟進入維護模式,讓儲存空間直接存取進行排清和認可資料,以確保伺服器關機不會影響應用程式狀態。 一旦磁碟進入維護模式,就不會再允許寫入。 若要將儲存體重新同步時間降到最低,建議您在重新開機前使磁片進入維護模式,並在系統備份時立即離開維護模式。

注意

如果伺服器正在執行 Azure Stack HCI 21H2 版或 Windows server 2022,您可以略過此步驟,因為當伺服器暫停和清空時,磁碟會自動進入維護模式。 這些作業系統有細微的修復功能,可加快重新同步,並減少對系統和網路資源上的影響,以便同時完成伺服器和儲存體的維護作業。

如果伺服器正在執行 Windows server 2019 或 Azure Stack HCI 20H2 版,請以系統管理員身分執行下列 Cmdlet:

Get-StorageScaleUnit -FriendlyName "Server1" | Enable-StorageMaintenanceMode

如果伺服器是執行 Windows Server 2016,請改為使用下列語法:

Get-StorageFaultDomain -Type StorageScaleUnit | Where-Object {$_.FriendlyName -eq "Server1"} | Enable-StorageMaintenanceMode

關閉伺服器

伺服器完成清空之後,在 PowerShell 和容錯移轉叢集管理員中會顯示為 [已暫停]。

您現在可以使用 Stop-ComputerRestart-Computer PowerShell Cmdlet,或是容錯移轉叢集管理員來安全關閉伺服器或重新開機伺服器。

注意

在關閉或啟動/停止叢集服務的伺服器上執行 Get-VirtualDisk 命令時,伺服器的運作狀態可能會報告為不完整或降級,而 [健全狀態] 資料行可能會列出警告。 這是正常現象,因此應該不會造成問題。 所有的磁碟區仍保持連線且可存取。

將磁碟移出維護模式

如果伺服器正在執行 Azure Stack HCI 20H2 版、Windows server 2019 或 Windows Server 2016,則您必須先停用磁碟上的存放裝置維護模式,然後再將伺服器恢復到叢集中。 若要將儲存體重新同步時間降到最低,建議您在系統備份時立即將其移出維護模式。

注意

如果伺服器正在執行 Azure Stack HCI 21H2 版或 Windows server 2022,您可以略過此步驟,因為當伺服器恢復時,磁碟會自動移出維護模式。

如果伺服器正在執行 Windows server 2019 或 Azure Stack HCI 20H2 版,請使用系統管理員身分執行下列 Cmdlet 以停用儲存體的維護模式:

Get-StorageScaleUnit -FriendlyName "Server1" | Disable-StorageMaintenanceMode

如果伺服器是執行 Windows Server 2016,請改為使用下列語法:

Get-StorageFaultDomain -Type StorageScaleUnit | Where-Object {$_.FriendlyName -eq "Server1"} | Disable-StorageMaintenanceMode

恢復伺服器

將伺服器恢復到叢集中。 若要傳回先前在伺服器上執行的叢集角色和 VM,請使用選擇性 -Failback 旗標:

Resume-ClusterNode –Failback Immediate

若要在容錯移轉叢集管理員中執行此動作,請移至 \[節點\],在節點上按滑鼠右鍵,然後選取 \[繼續\]\[容錯回復角色\]

伺服器恢復後,就會在 PowerShell 和容錯移轉叢集管理員中顯示為 Up

等候儲存體重新同步

當伺服器恢復時,您必須等候重新同步完成,才能讓叢集中的任何其他伺服器離線。

以系統管理員身分執行下列 Cmdlet 來監視進度:

Get-StorageJob

如果重新同步處理已完成,您將不會獲得任何輸出。

以下是一些範例輸出,顯示重新同步 (修復) 作業仍在執行中:

Name   IsBackgroundTask ElapsedTime JobState  PercentComplete BytesProcessed BytesTotal
----   ---------------- ----------- --------  --------------- -------------- ----------
Repair True             00:06:23    Running   65              11477975040    17448304640
Repair True             00:06:40    Running   66              15987900416    23890755584
Repair True             00:06:52    Running   68              20104802841    22104819713

BytesTotal 資料行會顯示需要重新同步處理的儲存體數量。 PercentComplete 資料行會顯示進度。

警告

請務必等候這些修復工作完成後再將另一部伺服器離線。

在這段期間,您的磁碟區在 HealthStatus 下將會繼續顯示為 Warning,這是正常狀態。

例如,如果您在儲存體重新同步時使用 Get-VirtualDisk Cmdlet,您可能會看到下列輸出:

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
MyVolume1    Mirror                InService         Warning      True           1 TB
MyVolume2    Mirror                InService         Warning      True           1 TB
MyVolume3    Mirror                InService         Warning      True           1 TB

一旦工作完成,請使用 Cmdlet 以再次確認磁碟區顯示為 \[Healthy\]。 以下是一些輸出範例︰

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
MyVolume1    Mirror                OK                Healthy      True           1 TB
MyVolume2    Mirror                OK                Healthy      True           1 TB
MyVolume3    Mirror                OK                Healthy      True           1 TB

您現在可以放心地暫停並重新啟動叢集中的其他伺服器。

後續步驟

如需相關資訊,另請參閱: