Hyper-V Replica 透過追蹤虛擬硬碟(VHD/VHDX)的寫入變更,將差異資料以日誌(HRL,Hyper-V Replication Log)形式傳送至副本端,實現非同步複寫。當主機端偵測到複寫狀態「非最佳」或「無法確定複寫起始點」時,必須執行再同步:重新建立基準點,刪除舊有復原歷史(HRL),並對比主副本 VHD 內容僅傳輸差異區塊,使複寫關係回歸健康狀態。
Hyper-V 管理員會在「複寫健康情況」顯示錯誤:「虛擬機 <名稱> 需要進行再同步。請恢復複寫以開始再同步。」
務必先確認主副本主機間網路連通、防火牆規則、憑證/認證正常、授權足夠。若底層連線故障未修復,再同步將反覆失敗。
# 立即啟動再同步
Resume-VMReplication -VMName "MyVM" -Resynchronize
# 指定排程時間啟動(例:2024/02/11 12:00)
Resume-VMReplication -VMName "MyVM" -Resynchronize -ResynchronizeStartTime "02/11/2024 12:00:00"
除非確認主副本資料確實不一致(如懷疑備份軟體導致 VHD 側寫),不建議在健康狀態下手動觸發。手動觸發會先暫停虛擬機(Suspend-VMReplication),再啟動再同步,會造成短暫服務中斷。
Suspend-VMReplication -VMName "MyVM"
Resume-VMReplication -VMName "MyVM" -Resynchronize
透過 Hyper-V 管理員:右鍵虛擬機 → 「設定」 → 左側「再同步」 → 選擇「僅在下列時間段自動開始再同步」 → 設定離峰時段(如 02:00-04:00)。
PowerShell 批量配置:
# 啟用自動再同步,設定時段 00:00-23:59(實際建議縮小範圍)
Set-VMReplication -VMName "MyVM" -AutoResynchronizeEnabled 1 -AutoResynchronizeIntervalStart "02:00" -AutoResynchronizeIntervalEnd "04:00"
# 停用自動再同步
Set-VMReplication -VMName "MyVM" -AutoResynchronizeEnabled 0
# 查詢單一/所有 VM 再同步設定
Get-VMReplication -VMName "MyVM" | Format-Table AutoResynchronizeEnabled, AutoResynchronizeIntervalStart, AutoResynchronizeIntervalEnd -AutoSize
Get-VMReplication * | Format-Table Name, AutoResynchronizeEnabled, AutoResynchronizeIntervalStart, AutoResynchronizeIntervalEnd -AutoSize
再同步非全量傳輸 VHD,而是透過區塊校驗(類似 CDC 技術)僅發送不一致區塊。對於 TB 級虛擬磁碟僅有 GB 級實際變更的場景,可節省 90% 以上網路流量與時間。
理解再同步機制與操作細節,能幫助運維人員在複寫異常時快速決策,將 RPO(復原點目標)與 RTO(復原時間目標)控制在業務可接受範圍內。