如何使用PowerShell对故障转移集群中的VM执行复制测试故障转移
故障转移集群虚拟机测试故障转移PowerShell执行问题解决
正确的PowerShell命令
集群中的虚拟机是作为集群资源存在的,不能直接使用针对单机VM的命令,需要通过集群资源对象调用复制相关指令:
- 先确认VM的复制状态:
Get-ClusterResource -Name "VM1" | Get-VMReplication
输出应显示ReplicationState为Enabled、Health为Normal,否则需先排查复制配置本身的问题。
- 执行测试故障转移:
Get-ClusterResource -Name "VM1" | Get-VMReplication | Start-VMFailover -Test
如果需要指定测试用的恢复网络,可添加参数:
Get-ClusterResource -Name "VM1" | Get-VMReplication | Start-VMFailover -Test -TestRecoveryNetworkName "你的测试网络名称"
常见失效原因排查
- 权限不足:必须以拥有故障转移集群管理员和Hyper-V管理员权限的账号运行PowerShell,且在集群节点上执行,或通过
-ComputerName参数指定集群节点。 - 错误定位VM对象:不要直接用
Get-VM -Name VM1,集群VM的复制关联信息绑定在集群资源上,必须通过Get-ClusterResource传递对象。 - PowerShell版本兼容:优先使用Windows PowerShell 5.1,PowerShell Core对Hyper-V集群的复制命令支持有限。
- VM当前运行节点问题:如果VM在集群节点间迁移过,可显式指定当前宿主节点执行:
$ownerNode = (Get-ClusterResource -Name "VM1").OwnerNode.Name Get-VM -ComputerName $ownerNode -Name "VM1" | Get-VMReplication | Start-VMFailover -Test
验证操作结果
执行命令后,可通过以下命令查看测试故障转移状态:
Get-VMFailover -VMName "VM1" -Test
或在集群管理器的Roles面板中,确认是否生成了VM1 - Test的临时测试实例。
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

