Hyper-V Replica(副本)是Windows Server 2012中的灾难恢复技术,Hyper-V管理器可用来对当前正在运行的虚拟机(VM)的副本健康状况。
另外,PowerShell cmdlet命令也能够方便检查Hyper-V Replica健康状态。例如,在一个托管了许多主服务器和副本服务器的大环境中,使用Hyper-V管理器采集所有虚拟机的副本健康状态会花费相当长的时间。Nirmal Sharma在serverwatch上介绍了如何使用PowerShell Cmdlet检查Hyper-V Replica的健康状态。
Windows Server 2012中有超过164个PowerShell cmdlet可用于Hyper-V模块,其中16个专门供Hyper-V Replica使用。在这16个Hyper-V Replica PowerShell cmdlet中,有两个PowerShell cmdlet可以用来检查测量Hyper-V Replica状态并获得副本统计数据:Get-VMReplication和Measure-VMReplication。
PowerShell cmdlet不仅允许你检查多个虚拟机的副本健康状态,它们还提供简单的副本健康信息并将输出保存在一个CSV文件中。例如,你可以成功获得所有虚拟机副本,然后输出结果并保存到文本或CSV文件进行进一步分析。同样,你可以访问所有有具体副本健康状态的虚拟机,这些健康状态通常以表格形式复制到特定的副本服务器上。
这两种cmdlet都会显示副本健康状态,但信息不同,如以下截图所示:
正如你在上图所看到的,Get-VMReplication cmdlet列出了当前服务器(当前服务器是主服务器)上所有虚拟机的副本健康状态以及存放虚拟机副本的副本服务器名称。另外还显示了与副本服务器交流所使用的协议和网络端口。如果你需要获得所有虚拟机的副本健康状态和副本服务器名称以及参数,请使用“Get-VMReplication”cmdlet。
另一方面,Measure-VMReplication cmdlet不仅显示了所有虚拟机的副本健康状态,还显示了Get-VMReplication无法获得的上一次复制时间(LReplTime)和平均复制数据大小(AvgReplSize(m))。
两个cmdlet有两个共同属性,即当前副本健康状况和虚拟机的状态。支持Hyper-V Replication的虚拟机可以返回三种副本健康状态:“正常”、“警告”和“危险”。
如图所示,输出的表格中“健康”一列表示的是副本健康状态。副本状态总是显示当前虚拟机的状态,对应cmdlet输出的“状态”列。虚拟机的副本状态将在下面进行解释。
如上所述,两个cmdlet都显示了一些属性,但还有一些属性只能由其他cmdlet显示。例如,Get-VMReplication和Measure-VMReplication cmdlet都显示“姓名”、“状态”和“健康”属性,但是“FailedOverReplicationType”、“LastTestFAiloverInitiatedTime”以及其他很多的属性只能作为“Measure-VMReplication”cmdlet的一部分实现。
以下截图显示了这两个cmdlet的属性:
在上面的截图可以看到,两个cmdlet中有一些共同的属性,但和副本健康统计数据相关的属性只能通过Measure-VMReplication cmdlet实现。这是因为Get-VMReplication cmdlet提供主服务器和副本服务器的复制关系信息,而Measure-VMReplicaiton cmdlet用于获取特定的虚拟机副本监控统计数据。