![将虚拟机从 Hyper-V Server 2012 R2 迁移到 Windows Server 2016](https://linux22.com/image/719750/%E5%B0%86%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%BB%8E%20Hyper-V%20Server%202012%20R2%20%E8%BF%81%E7%A7%BB%E5%88%B0%20Windows%20Server%202016.png)
我正在苦苦思索,不知道我还能做些什么才能完成这项工作。
我在一个集群中有 2 个 hyperv 2012R2 节点,在另一个集群中有 3 个 windows server 2016 节点。我想将一些虚拟机从第一个集群实时迁移到第二个集群。
我从第一个集群中取出了想要移动的虚拟机,并从 Hyper-V 管理器中开始移动,但最终出现了一个无法消失的错误!
虚拟机“VM01”与物理计算机“SRVR02”不兼容
我在更多论坛上找到的解决方案是 CPU 不一样,但启用 CPU 版本间迁移的选项已经打开,第一个集群中的节点的 CPU 是 Intel X5660,第二个集群中的节点的 CPU 是 X5680。它们之间真的没有任何不兼容的理由!
我确保一切都尽可能接近相同,在所有节点上的 hyper-v 管理器中添加了相同的交换机,确保存储接近(C:\Clusterstorage\volume5\VM 到 C:\clusterstorage\colume1\VM)
我将所有节点的委派更改为 kerberos(在 hyper-v 管理器中)并在活动目录委派设置中将委派更改为“任何身份验证协议”。
我尝试从源和目标、powershell 和远程管理器关闭虚拟机、执行导出、仅执行存储、更改为所有 kerberos,但没有任何变化。
当我尝试仅移动存储时遇到的另一个错误是:
虚拟机“VM01”(字母数字)的存储迁移失败,出现错误“常规访问被拒绝错误”(0x80070005)。
我想要存储到的文件夹已经共享给所有节点,我不知道还要添加什么。
起初我想将 hyper-v 服务器节点加入到 windos 服务器集群,但在测试期间,一切都未能保持应有的在线状态(升级的原因之一),所以我无法从集群中执行此操作。我也无法将 2016 服务器添加到 2012 集群,验证向导给出了操作系统不兼容错误。
我真的只是需要一些关于下一步该做什么的想法,而不需要完全重新安装新的服务器,最好也不需要关闭任何虚拟机。
答案1
您应该按照以下步骤完成虚拟机迁移:
- 从 2012R2 集群中删除 VM(VM 将在原所有者节点上运行);
- 在2012R2上打开Hyper-V Manager,点击“移动”;
- 选择“移动虚拟机”;
- 指定目标计算机(2016 个集群成员之一);
- 指定目标(C:\ClusterStorage\volume3);
- 点击确定,等待迁移;
- 迁移完成后,在2016集群上开启Failover Cluster;
- 导航到角色选项卡并点击“配置角色”;
- 在列表中选择虚拟机并指定所需的虚拟机;
- 等待虚拟机配置。
答案2
我本来准备关闭所有虚拟机,然后导出/导入所有内容,但在此之前,我创建了一个新的管理客户端(带有 RSAT 的 w10 1709)来远程管理我的服务器,但它与 Hyperv 服务器之间存在 RPC 问题。解决该问题的方法是在该客户端的防火墙中启用传入规则“Windows Management Instrumentation (ASync-In)”。
我现在可以管理 HyperV 服务器的虚拟机,并且发现我现在还可以毫无问题地从管理客户端远程进行实时迁移。如果我从管理客户端进行迁移,则可以从 HYPERV2012R2 迁移到 W2016,也可以从 W2016 迁移到 W2016。
如果我不能直接在主机中执行此操作,我不明白它将如何工作,但它确实如此......耶!
编辑:其中一台 Hyperv2012r2 服务器开始给我“源失败”错误(而另一台服务器运行良好),解决该问题的方法是在源服务器上打开命令提示符并执行“net stop vmms”和“net start vmms”。