Hyper-V动态迁移中?小心性能损失

时间:2022-06-01 21:20:46

   动态迁移是虚拟化技术的一个标志,它允许虚拟机在服务器间进行动态迁移、调节负载平衡、性能管理、备灾管理和数据中心维护。Windows Server 2012 R2中的Hyper-V动态迁移默认功能具备相当的灵活性,管理员必须了解Hyper-V环境中一些潜在的可调优和可变选项。Hyper-V动态迁移提供相应的配置灵活度,实现更高效率,但如果没有将诸如处理器兼容性的因素考虑在内的话,TCP包和备份将引发Hyper-V性能问题。

   Hyper-V运用现代Intel和AMD处理器的独特能力来改进虚拟机性能,当虚拟机创建后Hyper-V将充分利用处理器性能。当某个虚拟机被迁移到另一个主机系统,迁移到的系统的处理器需要与原有系统完全一致。这将保证迁移以后的虚拟机可正常工作。理想地说,如果数据中心的每个服务器都使用相同的处理器,那所有的虚拟机都可以无缝地进行动态迁移。

  但迁移整个数据中心,甚至是整个集群,都很难碰到处理器是相同的情况。Hyper-V同样提供了对处理器的兼容模式,允许虚拟机在使用分属相同Intel或AMD处理器家族的不同处理器的系统间实现迁移,但无法实现在Intel和AMD平台间的迁移。

  选择(处理器)兼容性模式需要停止和重启虚拟机,这无疑将影响某些关键应用。然而,当虚拟机停止,找到虚拟机的设置界面并在处理器选项下检查"迁移到一个使用不同处理器的物理计算机"的选项,这将使虚拟机只应用那些在迁移前后都可以支持的特性。尽管处理器兼容模式对动态迁移的速度没有决定性影响,但它可以预防虚拟机的迁移失败。

  TCP chimney包是通过将网络传输从服务器的处理器转移到网络适配器上的另一项可以改进网络和系统性能的技术。Hyper-V动态迁移允许在迁移过程中通过转移TCP栈的方式迁移TCP包。如果目标服务器有NIC功能,也将支持TCP包,其特点在于一旦迁移完成将立刻搬回到硬件上。否则,TCP栈会一直保留在虚拟机上。

   Hyper-V每次只能初始化一个动态迁移过程,因此处理器可以传递或接收虚拟机。如果部署的是服务器集群,则集群可以迁移多个续集你,但每个节点每次只能单向发送或接收虚拟机。例如,某集群中有四台服务器,该集群可以同时进行两个动态迁移过程。System Center Virtual Machine Manager 2012 R2可在两边的服务器上调用维护模式,使双方的服务器处于已保存的冻结状态,或在集群中将所有虚拟机执行有序地迁移。

   迁移的虚拟机备份也是有技巧的。通常,需要虚拟机置为到保存的冻结状态,存储快照存到硬盘中,然后将虚拟机恢复工作状态。然而,这种办法会牺牲工作内容的可用性。借助诸如Volume Shadow Copy Service(VSS)这样的工具在虚拟机内存储子虚拟机快照进行备份是可能的,这样便不需要将虚拟机置为保存的冻结状态。

   如果迁移过程与备份过程相冲突,VSS将等待迁移过程完成,再恢复备份过程。但当备份完成,已被迁移的虚拟机就不在原来开始备份的服务器上了。备份过程依靠共享容量的集群中的文件依旧可以完成,但备份的内容仅仅是一个副本而非普通的在线备份。有规则的迁移活动环境应坚持快照,以确保及时和完整地保护虚拟机。为了避免Hyper-V的性能问题,在迁移过程中不要安排备份活动。