Hyper-V Replica再同步這個話題引起人們的關注時,你可能會問的頭一個問題是:為什麼需要再同步參與Hyper-V Replica的虛擬機?何時需要再同步?如果 Hyper-V主服務器認識到虛擬機的復制並非最佳,或者它不知道該復制什麼,那麼就需要進行再同步操作了。
如果虛擬機處於危急狀態,或者如果主服務器對受到跟蹤的變更失去了控制,因而無法確定復制的起始點,這時候其實需要再同步。在這種情況下,主服務器就需要從頭開始,這包括刪除恢復歷史內容(HRL文件),為將要復制的VHD文件創建一個基准。
符合下列情形時,就需要再同步:
? 你在使用Hyper-V管理器可供使用的方法之外的任何方法,改動VHD文件。換句話說,Hyper-V復制引擎必須認識到Hyper-v復制引擎中所包含的VHD文件出現的任何變更,那樣可以將變更內容記錄在HRL文件中。
? HRL(Hyper-V復制日志)的累積超過50%。
? 寫入到HRL文件出現了問題。
? HRL文件無法順利關閉。
在上述任何情況下,如果需要對虛擬機進行再同步,"復制健康狀況"方面就會出現一個出錯信息。出錯信息顯示為:"某虛擬機<虛擬機名稱>需要進行再同步。恢復復制,以便開始再同步。"要是顯示了該信息,就必須借助副本虛擬機(Replica Virtual Machine),對該虛擬機進行再同步。
請注意 :在你開始再同步之前,必須首先解決主服務器和復制服務器之間的任何連接問題。
再同步虛擬機的內容有兩種方式:(1)通過恢復Hyper-V管理器中主虛擬機上的復制內容,或者(2)通過使用PowerShell cmdlet小命令。
從Hyper-V管理器,你可以鼠標右擊Virtual Machine(虛擬機)> Replication(復制)>,然後選擇"Resume Replication"(恢復復制)選項,即可恢復復制,或者開始再同步過程。
想通過PowerShell開始再同步操作,就要使用Resume-VMReplication cmdlet,如下所示:
Resume-VMReplication -VMName "MyVM" -Resynchronize -ResynchronizeStartTime "02/11/2014 12:00:00"
即便不需要再同步,或者如果Hyper-V副本還沒有讓虛擬機進入"需再同步"(Resynchronization Required)狀態,你還可以手動開始再同步過程,但是除非絕對有這個必要,否則我們建議避免這麼做。
只有你認為虛擬機的內容沒有完全同步,需要再同步來糾正這個問題,才繼續進行手動再同步。在手動觸發的再同步過程中,虛擬機首先被暫停,然後開啟再同步操作。
? Suspend-VMReplication -VMName "MyVM"
? Resume-VMReplication -VMName "MyVM" -Resynchronize
你可以使用Hyper-V管理器,針對每個虛擬機安排再同步操作。鼠標右擊參與Hyper-V Replica的虛擬機,然後選擇"Settings"(設置)。在左側面板中,選擇"Resynchronization"(再同步)選項,然後在右側面板中,根據需要來修改設置,如下面這個屏幕截圖所示:
可以從該屏幕截圖中看到,你可以為再同步配置三個設置:(1)手動、(2)自動以及(3)按指定的時間間隔。建議配置及使用第3個選項("只在下列時間段自動開始再同步"),然後更改再同步,以便只在非高峰時間段進行。
你還可以使用Set-VMReplication和Get-VMReplication這兩個PowerShell cmdlet小命令,配置及查看再同步設置,如下面命令所示:
禁用自動再同步的命令:
? Set-VMReplication -VMName "MyVM" -AutoResynchronizeEnabled 0
啟用自動再同步的命令:
? Set-VMReplication -VMName "RESYNC VM" -AutoResynchronizeEnabled 1 -AutoResynchronizeIntervalStart 00:00:00 -AutoResynchronizeIntervalEnd 23:59:59
想檢查再同步設置,可使用Get-VMReplication PowerShell cmdlet小命令,如下所示:
? Get-VMReplication -VMName "MyVM" | ft * -auto
想檢查參與Hyper-V Replica的所有虛擬機的設置,使用該命令:
? Get-VMReplication * | ft * -auto
在Get-VMReplication輸出結果中,尋找AutoResynchronizeEnabled、AutoResynchronizeIntervalStart和AutoResynchronizeIntervalEnd這幾列及對應的值。
再同步過程是如何進行的?
再同步過程經歷下面這幾個步驟:
1. 再同步事件發生,人工發生或自動發生。
2. 主虛擬機和副本虛擬機的VHD尺寸受到檢查。
3. 在再同步進行的過程中,主服務器開始跟蹤VHD方面的變化。
4. 寫入操作在HRL文件中受到跟蹤,一旦再同步過程已完成,才加以復制。
5. 事件編號29242記入日志,這記錄了虛擬機名稱、VHD文件、VHD文件的起始數據塊和結束數據塊。
6. 為VHD創建一個差分磁盤。這是由於如果需要取消再同步操作,就可以很容易取消。
7. 再同步操作結束時,差分磁盤被並入到VHD文件中。
8. 在這個階段,VHD加以比較,然後加以同步。這番比較是逐個數據塊進行比較的,只有不一樣的數據塊才通過網絡發送。這種機制減少了通過網絡發送的數據量。
9. 再同步過程結束後,事件編號29244被記入到主服務器中。事件編號ID 29244 包含進行復制的VHD方面的信息、虛擬機名稱、發送的數據塊、所執行的時間以及操作結果。
10. 在這個階段,變更內容已成功地並入到VHD文件,因而操作無法被取消。
11. 所有恢復點和HRL文件已被刪除。
你也知道,再同步是這樣一個過程:所有恢復點被刪除,為全新復制准備好主虛擬機。這非常類似於你對虛擬機進行復制時。
再同步過程的總體目的是為了確保主服務器再一次開始跟蹤VHD文件方面的變更,確保復制可以按往常那樣恢復。所以,只有出現下列情況時才采用"手動"再同步:
? 如果主服務器不再復制到副本服務器,而相當多數量的變更是在主虛擬機處進行的。
? 如果你懷疑主虛擬機的內容和復制虛擬機的內容不相一致。