一说起对Hyper-V副本进行重新同步这个话题,很多朋友最先冒出来的念头就是--我们为什么或者说什么时候会需要对Hyper-V副本中的虚拟机进行同步?答案很简单,如果Hyper-V 主服务器已经意识到虚拟机副本并非最佳版本或者不知道该复制哪些内容,这时候重新同步操作就非常必要了。

再有,如果虚拟机处于临界状态或者主服务器失去了追踪变更的控制能力、因而无法检测到副本的起始点,我们也需要对其进行重新同步。在以上这几种情况下,主服务器需要重新启动,具体流程包括删除恢复历史记录(也就是HRL文件)并为即将进行复制的VHD文件创建新的基准线。

重新同步工作需要以下几项条件作为前提:

    大家需要利用Hyper-V管理器之外的其它方法对VHD文件进行修改。换句话来说,Hyper-V副本引擎只有在检测到Hyper-V副本中的VHD文件发生变更之后,这些变更才能被记录在HRL文件当中。
    HRL(即Hyper-V副本记录)的累积量已经超过50%。
    向HRL文件写入内容时存在问题。
    HRL文件没有被正确关闭。

在以上任何一种情况下,当虚拟机需要进行重新同步时、我们都会收到“副本健康状况”错误提示信息。这条错误提示信息的具体内容为“虚拟机<虚拟机名称>需要进行重新同步。重启副本以开始重新同步。”一旦在使用过程中看到这条信息,那么大家必须利用Replica Virtual Machine对虚拟机进行重新同步。

备注:在我们开始重新同步之前,必须首先解决主服务器与副本服务器之间存在的连接问题。

对虚拟机内容进行重新同步的方式分为两种:第一,在Hyper-V管理器当中恢复主虚拟机上的副本;或者第二,使用PowerShell命令行。

在Hyper-V管理器当中,大家可以右键点击虚拟机>副本>选择"恢复副本"选项,从而对副本进行恢复或者开始重新同步流程。

要在PowerShell当中进行重新同步操作,我们则需要利用Resume-VMReplication命令,具体内容如下所示:

    Resume-VMReplication -VMName "MyVM" -Resynchronize -ResynchronizeStartTime "02/11/2014 12:00:00"

如果系统没有提示要求重新同步或者Hyper-V副本并没有将虚拟机设为"需要重新同步"状态,大家也可以通过手动方式对重新同步流程进行初始化;不过我们建议大家不到万不得已、请不要使用这种方式。

只有在我们认为虚拟机内容并未完全同步而且需要通过重新同步方式纠正这一问题时,才有必要进行手动重新同步。在手动进行重新同步的过程中,请首先暂停虚拟机运行、然后再对重新同步进行初始化操作。

    Suspend-VMReplication -VMName "MyVM"
    Resume-VMReplication -VMName "MyVM" -Resynchronize

大家可以利用Hyper-V管理器调整每套虚拟机系统的重新同步操作方式。右键点击Hyper-V副本中的对应虚拟机,而后选择"设置"。在左侧窗体中,选择"重新同步"选项、接下来在右侧窗体中按照下图所示内容对设置进行修改:

正如大家在截图中所看到,我们可以为重新同步操作设置三种实施方案:第一,手动;第二,自动;第三,以指定时间间隔进行。最明智的作法是配置并使用第三种选项('只在以下时段内自动开始重新同步'),从而保证重新同步流程只会发生在非高峰时段当中。

大家也可以如下所示利用Set-VMReplication以及Get-VMReplication两条PowerShell命令配置并查看重新同步的具体设置:

禁用自动重新同步的命令内容:

    Set-VMReplication -VMName "MyVM" -AutoResynchronizeEnabled 0

启用自动重新同步的命令内容:

    Set-VMReplication -VMName "RESYNC VM" -AutoResynchronizeEnabled 1 -AutoResynchronizeIntervalStart 00:00:00 -AutoResynchronizeIntervalEnd 23:59:59

要检查重新同步设置的具体内容,我们可以如下所示使用Get-VMReplication PowerShell命令:

    Get-VMReplication -VMName "MyVM" | ft * -auto

要在Hyper-V副本中检查全部虚拟机的设置内容,可以使用如下命令:

    Get-VMReplication * | ft * -auto

在Get-VMReplication命令的输出结果中寻找AutoResynchronizeEnabled、AutoResynchronizeIntervalStart、以及AutoResynchronizeIntervalEnd列及其对应值。

重新同步流程到底如何执行?

重新同步流程包含以下几个步骤:

1、触发重新同步事件,无论是以手动还是自动方式。

2、检查主虚拟机与副本虚拟机的VHD文件大小。

3、主服务器开始追踪VHD文件中的变更记录,同时重新同步工作已经进入运作状态。

4、全部写入内容都将被追踪并保存在HRL文件当中,并在重新同步流程彻底结束之后进行复制。

5、记录事件ID 29242,其具体内容包括虚拟机名称、VHD文件以及VHD文件的起始与结束块。

6、为VHD文件创建一套不同磁盘。这是为了确保如果用户需要撤销重新同步操作,整个撤销过程能够轻松完成。

7、该不同磁盘会在重新同步流程结束之后被合并到VHD文件当中。

8、在此期间,系统会比较VHD文件并进行同步。比较过程以数据块为单位,只有内容不同的块才会通过网络进行传输。这样的方式大大减少了需要进行网络传输的数据量。

9、在同步过程结束之后,事件ID 29244会被记录到主服务器当中。事件ID 29244当中包含众多信息,例如经过复制的VHD文件、虚拟机名称、块发送、所耗时长以及操作的最终结果。

10、在此期间,所有变更都会被成功并入VHD文件,因此同步操作已经无法被撤销。

11、删除全部恢复点以及HRL文件。

如大家所知,重新同步流程会将所有恢复点删除,并让主虚拟机作好更新副本的准备。从这方面看,其与为虚拟机启用副本功能非常相似。

总体而言,重新同步操作的目的在于确保主服务器能够再次正确追踪VHD文件当中的内容变更并保证副本能够被正常恢复。因此,请大家只在满足以下情况的前提下进行"手动"重新同步:

如果主服务器不再将变更内容复制到副本服务器当中,而且主虚拟机已经累积下数量庞大的变更结果。

如果大家发现主虚拟机以及副本虚拟机在内容上出现原因不明的无法匹配状况。

Copyright © 2014-2024 it689.com (京ICP备12032795号-2) 版权所有 Power by IT689