背景/设置
我有一个正在运行的带有 2 个节点的 Hyper-V 2012 集群。它已经在管理虚拟机的集群中获得了虚拟机角色;故障转移工作和所有的好东西。我刚刚加入了另一台独立的 Hyper-V 2012 机器,因此我可以进行实时迁移。我 LM 将 VM 转移到集群中的一个节点就好了,然后我把它添加到集群中。虚拟机的文件位于 CSV 上,因此符合预期。
发生了什么
“配置角色...”向导完成了它的工作,但是当我在角色列表中看到虚拟机时,状态设置为“关闭”——但虚拟机已打开并正在运行;您甚至可以在节点的属性中看到它。因此,我对自己认为,“状态”可能存在某种愚蠢的故障。我不希望它回来咬我,所以我“删除”了 VM 角色。但是当我去重新添加它时,这一次我得到了一个错误。在“向导”中,错误消息是这个语法混乱的宝石:
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.
我不知道该怎么做。是否有一些我应该手动编辑的集群配置文件来解决这个问题?至此,通过整个过程,我一直在使用虚拟机,所以我知道虚拟机本身是可以的。
出乎意料,但我找到了解决方案:PowerShell。
我从故障转移群集管理器 GUI 中删除了 VM 角色。然后我 RDP'd 进入我的新 VM 所在的集群节点。在 PowerShell 提示符下,我简单地运行了这个(其中“xxxx”是我的 VM 的名称):
它添加它没有任何问题。没有错误,没有状态不匹配,没有警告。我依次重新启动了每个节点,以确认集群会按预期迁移虚拟机。它工作得很好。
PS:我确认一切正常的方法是打开一个查询窗口,连接到 VM 上运行的 Sql Server 实例。在开始我的原始实时迁移之前,我创建了一个“#temp”表,在我完成所有操作后它仍然存在。好的!