如何對Hyper-V副本進(jìn)行重新同步?
譯文【51CTO精選譯文】一說起對Hyper-V副本進(jìn)行重新同步這個話題,很多朋友***冒出來的念頭就是--我們?yōu)槭裁椿蛘哒f什么時候會需要對Hyper-V副本中的虛擬機(jī)進(jìn)行同步?答案很簡單,如果Hyper-V 主服務(wù)器已經(jīng)意識到虛擬機(jī)副本并非***版本或者不知道該復(fù)制哪些內(nèi)容,這時候重新同步操作就非常必要了。
再有,如果虛擬機(jī)處于臨界狀態(tài)或者主服務(wù)器失去了追蹤變更的控制能力、因而無法檢測到副本的起始點,我們也需要對其進(jìn)行重新同步。在以上這幾種情況下,主服務(wù)器需要重新啟動,具體流程包括刪除恢復(fù)歷史記錄(也就是HRL文件)并為即將進(jìn)行復(fù)制的VHD文件創(chuàng)建新的基準(zhǔn)線。
重新同步工作需要以下幾項條件作為前提:
- 大家需要利用Hyper-V管理器之外的其它方法對VHD文件進(jìn)行修改。換句話來說,Hyper-V副本引擎只有在檢測到Hyper-V副本中的VHD文件發(fā)生變更之后,這些變更才能被記錄在HRL文件當(dāng)中。
- HRL(即Hyper-V副本記錄)的累積量已經(jīng)超過50%。
- 向HRL文件寫入內(nèi)容時存在問題。
- HRL文件沒有被正確關(guān)閉。
在以上任何一種情況下,當(dāng)虛擬機(jī)需要進(jìn)行重新同步時、我們都會收到“副本健康狀況”錯誤提示信息。這條錯誤提示信息的具體內(nèi)容為“虛擬機(jī)<虛擬機(jī)名稱>需要進(jìn)行重新同步。重啟副本以開始重新同步。”一旦在使用過程中看到這條信息,那么大家必須利用Replica Virtual Machine對虛擬機(jī)進(jìn)行重新同步。
備注:在我們開始重新同步之前,必須首先解決主服務(wù)器與副本服務(wù)器之間存在的連接問題。
對虛擬機(jī)內(nèi)容進(jìn)行重新同步的方式分為兩種:***,在Hyper-V管理器當(dāng)中恢復(fù)主虛擬機(jī)上的副本;或者第二,使用PowerShell命令行。
在Hyper-V管理器當(dāng)中,大家可以右鍵點擊虛擬機(jī)>副本>選擇"恢復(fù)副本"選項,從而對副本進(jìn)行恢復(fù)或者開始重新同步流程。
要在PowerShell當(dāng)中進(jìn)行重新同步操作,我們則需要利用Resume-VMReplication命令,具體內(nèi)容如下所示:
- Resume-VMReplication -VMName "MyVM" -Resynchronize -ResynchronizeStartTime "02/11/2014 12:00:00"
如果系統(tǒng)沒有提示要求重新同步或者Hyper-V副本并沒有將虛擬機(jī)設(shè)為"需要重新同步"狀態(tài),大家也可以通過手動方式對重新同步流程進(jìn)行初始化;不過我們建議大家不到萬不得已、請不要使用這種方式。
只有在我們認(rèn)為虛擬機(jī)內(nèi)容并未完全同步而且需要通過重新同步方式糾正這一問題時,才有必要進(jìn)行手動重新同步。在手動進(jìn)行重新同步的過程中,請首先暫停虛擬機(jī)運(yùn)行、然后再對重新同步進(jìn)行初始化操作。
- Suspend-VMReplication -VMName "MyVM"
- Resume-VMReplication -VMName "MyVM" -Resynchronize
大家可以利用Hyper-V管理器調(diào)整每套虛擬機(jī)系統(tǒng)的重新同步操作方式。右鍵點擊Hyper-V副本中的對應(yīng)虛擬機(jī),而后選擇"設(shè)置"。在左側(cè)窗體中,選擇"重新同步"選項、接下來在右側(cè)窗體中按照下圖所示內(nèi)容對設(shè)置進(jìn)行修改:
正如大家在截圖中所看到,我們可以為重新同步操作設(shè)置三種實施方案:***,手動;第二,自動;第三,以指定時間間隔進(jìn)行。最明智的作法是配置并使用第三種選項('只在以下時段內(nèi)自動開始重新同步'),從而保證重新同步流程只會發(fā)生在非高峰時段當(dāng)中。
大家也可以如下所示利用Set-VMReplication以及Get-VMReplication兩條PowerShell命令配置并查看重新同步的具體設(shè)置:
禁用自動重新同步的命令內(nèi)容:
- Set-VMReplication -VMName "MyVM" -AutoResynchronizeEnabled 0
啟用自動重新同步的命令內(nèi)容:
- Set-VMReplication -VMName "RESYNC VM" -AutoResynchronizeEnabled 1 -AutoResynchronizeIntervalStart 00:00:00 -AutoResynchronizeIntervalEnd 23:59:59
要檢查重新同步設(shè)置的具體內(nèi)容,我們可以如下所示使用Get-VMReplication PowerShell命令:
- Get-VMReplication -VMName "MyVM" | ft * -auto
要在Hyper-V副本中檢查全部虛擬機(jī)的設(shè)置內(nèi)容,可以使用如下命令:
- Get-VMReplication * | ft * -auto
在Get-VMReplication命令的輸出結(jié)果中尋找AutoResynchronizeEnabled、AutoResynchronizeIntervalStart、以及AutoResynchronizeIntervalEnd列及其對應(yīng)值。
重新同步流程到底如何執(zhí)行?
重新同步流程包含以下幾個步驟:
1、觸發(fā)重新同步事件,無論是以手動還是自動方式。
2、檢查主虛擬機(jī)與副本虛擬機(jī)的VHD文件大小。
3、主服務(wù)器開始追蹤VHD文件中的變更記錄,同時重新同步工作已經(jīng)進(jìn)入運(yùn)作狀態(tài)。
4、全部寫入內(nèi)容都將被追蹤并保存在HRL文件當(dāng)中,并在重新同步流程徹底結(jié)束之后進(jìn)行復(fù)制。
5、記錄事件ID 29242,其具體內(nèi)容包括虛擬機(jī)名稱、VHD文件以及VHD文件的起始與結(jié)束塊。
6、為VHD文件創(chuàng)建一套不同磁盤。這是為了確保如果用戶需要撤銷重新同步操作,整個撤銷過程能夠輕松完成。
7、該不同磁盤會在重新同步流程結(jié)束之后被合并到VHD文件當(dāng)中。
8、在此期間,系統(tǒng)會比較VHD文件并進(jìn)行同步。比較過程以數(shù)據(jù)塊為單位,只有內(nèi)容不同的塊才會通過網(wǎng)絡(luò)進(jìn)行傳輸。這樣的方式大大減少了需要進(jìn)行網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
9、在同步過程結(jié)束之后,事件ID 29244會被記錄到主服務(wù)器當(dāng)中。事件ID 29244當(dāng)中包含眾多信息,例如經(jīng)過復(fù)制的VHD文件、虛擬機(jī)名稱、塊發(fā)送、所耗時長以及操作的最終結(jié)果。
10、在此期間,所有變更都會被成功并入VHD文件,因此同步操作已經(jīng)無法被撤銷。
11、刪除全部恢復(fù)點以及HRL文件。
如大家所知,重新同步流程會將所有恢復(fù)點刪除,并讓主虛擬機(jī)作好更新副本的準(zhǔn)備。從這方面看,其與為虛擬機(jī)啟用副本功能非常相似。
總體而言,重新同步操作的目的在于確保主服務(wù)器能夠再次正確追蹤VHD文件當(dāng)中的內(nèi)容變更并保證副本能夠被正?;謴?fù)。因此,請大家只在滿足以下情況的前提下進(jìn)行"手動"重新同步:
如果主服務(wù)器不再將變更內(nèi)容復(fù)制到副本服務(wù)器當(dāng)中,而且主虛擬機(jī)已經(jīng)累積下數(shù)量龐大的變更結(jié)果。
如果大家發(fā)現(xiàn)主虛擬機(jī)以及副本虛擬機(jī)在內(nèi)容上出現(xiàn)原因不明的無法匹配狀況。
原文鏈接:http://www.serverwatch.com/server-tutorials/hyper-v-replica-resynchronization-process.html