我有一个 5 节点 Hyper-V 集群正在运行。
所有 5 台服务器都运行 Server 2012 R2,每个节点都使用 iSCSI 连接两个设备。我遇到问题的设备有一个用作 CSV 的卷。这是提交给服务器的c:\clusterstorage\volume2
我已经完成了将所有 VM 存储移至新设备的过程,新的 CSV 已启动并运行,并且节点已连接。新设备的一切工作正常。
然后,我尝试通过执行以下操作将旧设备作为共享存储设备删除。我使用 PowerShell 获取集群上所有 VHD 的路径,但没有一个指向c:\clusterstorage\volume2
我检查了配置路径没有指向c:\clusterstorage\volume2
我还检查了快照路径没有指向c:\clusterstorage\volume2
我开始删除 4 个节点上的 iSCSI 目标(存储资源当前未“分配”到这 4 个节点),这很成功。然后我去了故障转移群集管理器并将 CSV 设置为脱机。立即有 2 个虚拟机进入保存状态(幸运的是不是关键服务器)。我将资源重新联机并启动了机器。我检查了每个虚拟机的设置页面,也没有任何参考c:\clusterstorage\volume2\
。然后我去寻找配置文件只是为了手动确保它们和设置页面之间没有什么不同。我首先查看 c:\clusterstorage\volume2\
了文件夹中的任何一个 VM 都不存在。我查看了新的位置c:\clusterstorage\volume5\
并c:\clusterstorage\volume6\
每个 VM 的文件夹都在这里。我检查了配置文件,它们完全符合它们应有的状态,并且不包含任何对c:\clusterstorage\volume2\
我检查了我在C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
哪里找到指向新卷位置的每个 VM 的快捷方式的引用。
简而言之,我找不到任何要点,c:\clusterstorage\volume2\
但如果我将该 CSV 脱机,两台机器将进入保存状态。
更奇怪的是,我在写这篇文章时再次尝试了这个,是的,两台机器进入了保存状态,但是即使 CSV 仍然处于离线状态,我也能够再次启动它们。我现在有两个 VM,在每个存储的资源选项卡上显示为脱机,但它们正在“工作”
那么任何人都可以指出一个可能的解决方法,也许是我没有找到的配置文件?或者我最好的做法是在保留 VHD 的同时删除 VM,并创建一个新 VM 并附加原始 VHD。
对不起,文字墙。
我在 2012 R2 中没有太多使用 Hyper-V 的经验,但在 2008 R2 上使用 Hyper-V、集群等方面确实有很多经验,所以我会在这里猜测可能存在的问题。
我发现使用故障转移集群(在 2008 R2 中),当您将虚拟机添加到故障转移集群时,它会检查附加的 VHD 和它们所在的存储,并在集群配置中记录这一点,以便它们可以显示为故障转移群集管理器中的相关资源(在选择 VM 时的存储窗格中)。
这不一定反映 VHD 文件的当前位置 - 如果在将 VM 添加到故障转移群集后它们已在 Hyper-V 中移动,则不会更新依赖关系信息。因此,您可能有一个可以正常访问其磁盘的 VM,但故障转移群集认为它仍然依赖于您要删除的磁盘。当您使磁盘脱机时,它会使 VM 脱机作为逻辑结果。要解决(假设这是问题所在 - 查看 FCM 中 VM 的存储面板),请从集群中删除 VM 并重新添加它。
顺便说一句,作为最佳实践,在您从 FCM 中删除 CSV 之前,我通常不会开始断开任何 iSCSI 连接。