![无法将虚拟机添加到 Hyper-V 群集。如何修复?](https://linux22.com/image/622876/%E6%97%A0%E6%B3%95%E5%B0%86%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%B7%BB%E5%8A%A0%E5%88%B0%20Hyper-V%20%E7%BE%A4%E9%9B%86%E3%80%82%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%EF%BC%9F.png)
背景/设置
我有一个正在运行的 Hyper-V 2012 集群,其中有 2 个节点。集群中已经有一个 VM 角色来管理 VM;故障转移工作正常,并且一切顺利。还有另一台独立的 Hyper-V 2012 机器,我刚刚将其加入 AD 域,以便可以进行实时迁移。我成功地将 VM 实时迁移到集群中的一个节点,然后将其添加到集群中。VM 的文件位于 CSV 上,所以这是意料之中的。
发生了什么
“配置角色...”向导完成了它的工作,但是当我在角色列表中看到虚拟机时,状态设置为“关闭”---但虚拟机已打开并正在运行;您甚至可以在节点的属性中看到它。所以我想,也许“状态”中存在某种愚蠢的故障。我不想它再次困扰我,所以我“删除”了虚拟机角色。但是当我重新添加它时,这次我得到了一个错误。在“向导”中,错误消息是这个语法混乱的宝石:
Please, override 'Header' property The object has been deleted from the cluster.
完成向导后,我看到列表中的新角色状态为“已停止”,显然设置不正确。选择角色,然后转到“信息详细信息...”,我在对话框中看到此消息:
A virtual machine resource was not found in clustered virtual machine 'xxxxx'.
A virtual machine resource is expected for every clustered virtual machine. Please add a virtual machine resource to the clustered virtual machine.
我不知道该怎么做。是否有一些集群配置文件需要我手动编辑才能修复此问题?目前,在整个过程中,我一直在使用虚拟机,所以我知道虚拟机本身没有问题。
答案1
出乎意料,但我找到了解决方案:PowerShell。
我从故障转移群集管理器 GUI 中删除了 VM 角色。然后我通过 RDP 进入我的新 VM 所在的群集节点。在 PowerShell 提示符下,我只需运行此命令(其中“xxxx”是我的 VM 的名称):
Add-ClusterVirtualMachineRole xxxx
它毫无问题地添加了它。没有错误,没有状态不匹配,没有警告。我依次重新启动每个节点以确认集群将按预期迁移虚拟机。它工作得很好。
附言:我确认一切正常的方法是打开一个查询窗口,连接到虚拟机上运行的 SQL Server 实例。我在开始原始实时迁移之前创建了一个“#temp”表,在我完成所有操作后它仍然存在。太棒了!