这篇关于Hyper-V Live Migration的文章分为两部分。在我们的以前的文章-第一部分,我们讨论了Live Migration,它的类型以及每种迁移类型的工作方式。

在本系列的第二部分中,我们将研究以下内容:

  • 动态迁移的最佳实践
  • 动态迁移的故障排除步骤和提示。

最佳做法:

  • 源Hyper-V主机和目标Hyper-V主机需要属于同一个Active Directory域或信任域。
  • 如果可能的话,使用SMB共享你的非集群虚拟机,那么你就不会需要重新安置迁移时的数据。
  • 当使用SMB时,为了更好的性能,请在Hyper-V设置实时迁移性能选项中选择SMB选项。使用SMB为热迁移提供了更好的带宽和CPU使用。此外,应该强制使用至少10Gb带宽的独立/隔离网络。
  • 不要混合来自不同制造商的处理器:例如,在同一个Hyper-V集群中混合英特尔和AMD,或者在独立的Hyper-V源和目标Live Migration目的地之间混合。
  • 为热迁移流量创建隔离网络。为了获得更好的迁移性能,应该为热迁移流量使用单独的物理网络。如果这是不可能的,并且您需要与管理流量或其他流量共享您的动态迁移流量,则可以使用vlan分隔流量。
  • 为热迁移流量启用巨帧。
  • 允许最小同时实时迁移,你的虚拟基础设施的承受能力。许多并发实时迁移将极大地影响活动实时迁移和超时对虚拟机的性能与高中断窗口时间。
  • 如果您有一个Hyper-V故障转移集群,总是在故障转移集群管理器中创建作为集群角色的虚拟机,而不是在Hyper-V管理器中。

故障诊断和建议

  • 不同的处理器型号/系列节点之间实时迁移。

如果您的环境在节点之间有不同的处理器,那么如果在虚拟机设置中没有启用兼容性设置,那么虚拟机迁移将无法工作。
为了允许这种类型的Hyper-V节点之间迁移,使VM上的兼容性设置。此选项仅在虚拟机关闭改变。

Hyper-V的实时迁移

下载的横幅

注意:这是不可能迁移不同供应商之间的虚拟机。例如:Intel处理器和AMD处理器之间。

  • 尝试使用Live Migration选项时出错。

当我们尝试在2个Hyper-V服务器和目标或源之间迁移虚拟机时,没有启用下一个选项,我们得到以下错误。

未在源上启用:

Hyper-V的实时迁移

不允许在目标:

Hyper-V的实时迁移

解决方案:要允许实时迁移(甚至是关闭虚拟机的迁移电源),请进入Hyper-V设置,并启用选项“实时迁移”。

Hyper-V的实时迁移

在选项3中,我们应该设置我们想要独立Hyper-V或集群的同步Live Migration的数量,默认是两个。

如果您想更改这个值,请检查您的虚拟基础架构(CPU/内存和网络)是否能够同时处理两个以上的动态迁移。

在选项4,我们选择哪个Hyper-V服务器网络,我们允许Live migration使用。
要使用在Hyper-V Server网络中设置的任何网络或子网,请选择第一个选项。

如果要指定特定的子网,请选择第二个选项和子网。

注意:在Hyper-V集群,默认情况下,实时迁移启用,并在此选项中4,选择选项“为实时迁移使用这些IP地址”,并使用群集网络。

Hyper-V的实时迁移

  • 无共享的迁移

无共享迁移只能迁移非集群虚拟机。当选择集群VM并尝试迁移时,您将得到下一个错误。

Hyper-V的实时迁移

解决方案:如果需要将虚拟机移动到单机的Hyper-V,请在“角色”的“故障转移集群管理器”中,选中该虚拟机,并选择“移除”。

当从集群中移除虚拟机后,我们可以使用无共享迁移将所选虚拟机迁移到一个独立的Hyper-V。

  • 在不同的Hyper-V版本之间迁移。

当你尝试在不同的Hyper-V版本之间迁移虚拟机时,你会得到这个错误:“操作失败,错误代码32784”。

这意味着,您正在尝试在两个不兼容的Hyper-V版本之间迁移VM。本例是从Hyper-V version 9.0 (Windows Server 2019) with Hyper-V version 8.0 (Windows Server 2016)。

此外,从任何Windows Server R2到更低的非R2版本,我们都会得到类似的错误。

虚拟机创建时使用的是高版本,不能在低版本中使用。

注意:从低版本到高版本可以使用Live Migration。只要Live Migration的类型在Hyper-V中可用。

Hyper-V的实时迁移

  • 没有凭证。

在下一个错误中,我们尝试迁移一个VM Hyper-V Server,它没有授权来自源代码的委托。

这意味着,从源Hyper-V并没有授权任何VM迁移到这个目标Hyper-V集群。

这是因为源是一个独立的Hyper-V,试图将一个虚拟机迁移到一个Hyper-V集群。

注意:Hyper-V Cluster节点之间的这种委托是自动的,不需要任何特殊的委托授权。

Hyper-V的实时迁移

解决方案:要修复此错误,请在目标Hyper-V设置和Hyper-V计算机对象的域控制器中设置身份验证协议为“仅使用Kerberos”。

在Hyper-V设置中,将目标Hyper-V的设置更改为使用Kerberos。

Hyper-V的实时迁移

接下来,连接到您的AD并在域控制器中,转到“Active Directory用户和计算机”。

在计算机对象文件夹,选择目标Hyper-V的计算机名称,并在“委派”选项卡中选择“仅使用Kerberos”,并从源头上的Hyper-V添加以下服务:CIFS和Microsoft虚拟系统迁移服务。

Hyper-V的实时迁移

从源Hyper-V的授权服务,我们能够在两个服务器之间迁移虚拟机。

注意:微软表示,上述选项也可能在Hyper-V Server 2016(和其他)中触发以下错误:“虚拟机管理服务未能在源主机上验证虚拟机迁移的连接:没有合适的凭据可用。”

该建议是改变上面的选项为“使用任何身份验证协议”。即使在使用时不太安全是实际微软推荐直到bug被修复。

  • 内存不足。

当尝试将一个虚拟机迁移到另一个Hyper-V(单机或集群)时,我们可能会得到一个错误,指出目标内存不足。

这意味着没有足够的资源(在本例中是内存)来打开目标上的虚拟机。

解决方法:选择另一个内存足够的Hyper-V,将不需要的处于ON状态的虚拟机下电,或者升级Hyper-V内存。

Hyper-V的实时迁移

最后的想法:

Hyper-V Live Migration自Windows Server 2012以来已经进化和改进了很多。通过添加更多的功能,它变得更加稳定和发展。特别是对于非集群的Hyper-V,并且现在非常相似和可靠,作为VMware最好的特性之一,vMotion。

使用像Hyper-V管理器、故障转移集群管理器和管理中心这样的工具,或者仅仅使用PowerShell命令,我们就可以执行Hyper-V基础设施所需的所有类型的迁移。

当正确配置并使用最佳实践时,Live Migration是一个非常容易使用的救星。但一定要确保在将虚拟基础设施投入生产之前,在独立的Hyper-V和Hyper-V集群中测试你的实时迁移。如果没有,则有可能由于本文中详细描述的任何错误或其他错误配置的设置而导致迁移不能工作。始终要特别注意用于实时迁移的虚拟网络(和接口)。

跟随我们的推特脸谱网为新发布,更新,见解深刻的帖子和更多的Feeds。