// you are reading...

VMware

AMD和Red Hat展示跨平台实时迁移及VMware的实现方法

下面的YouTube视频,AMD和Red Hat展示了从Intel到AMD处理器实时迁移。

这是大家都期盼已久的技术,因为如果继续扩大虚拟化架构都不想被锁定在一个特定的处理器供应商。但VMware为什么不官方支持该技术呢?这是因为在当前的技术下,实现跨平台实时迁移的危险系数非常的高。让我来具体解释一下:

该视频展示了什么

AMD和Red Hat一起合作制作了该在AMD及Intel主机之间实时迁移的视频。 VMware(和其它厂商)在很长一段时间内阻止客户这样做,直到今天还是。此外,Intel也不赞成这么做。Red Hat和AMD认为这是一个获得竞争优势和引进这项技术推向市场的机会,所以他们制作了该视频,并开始推崇此技术。只是他们并没有清楚地告诉大家是怎么实现的,及若失败后会造成怎样的影响。据信这两家公司使用了CPUID掩码掩盖了不兼容的处理器以此来实现跨平台实时迁移。如果是这样的话,请密切注意下面的“VMware与跨平台”一段。如果有任何人来自AMD或Red Hat愿意分享他们的实现方法的话,请发表评论或直接email给我们。

问题

在近6年前VMware就推出了VMotion(实时迁移)技术。它通过处理器的检查来实现。实时迁移的技术难点是需要知道hypervisor实际上可以看到什么和正在操作什么。一些运行在内核模式的指令可以被hypervisor看到,然后利用各种技术如二进制翻译或paravirtualization来处理这些指令。Hypervisor还可以掩盖这些指令,或在一定程度上模仿它们。还有一些其他的指令运行在用户模式,这些指令就没办法被hypervisor看到,所以就没法掩盖或仿效了。

其中SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是属于用户模式。SSE主要用于先进的视频处理。目前的SSE是4.1版。这里有个视频展示了当使用用户模式作实时迁移失败后将会怎样

在视频中VMware迁移一个虚拟机从支持SSE 4.1的主机到另一个不支持SSE 4.1的主机。作为应用程序还是会继续使用SSE指令集,正如你在视频里看到的应用程序崩溃。这就是问题所在。

VMware与跨平台

为什么不能在VMware上实现跨平台呢?其实是可以的,有几个不同的方法来实现跨平台的实时迁移。

1)关闭全局的CPU检查。是的,这样就可以实现期望的跨平台实时迁移了。下面的视频显示了这一点(可全屏观看)。

任何人想要动手在测试环境下试一下的话,只要在全局的Virtual Center配置文件里添加一些XML,并重新启动Virtual Center Server服务就可以了。该需要修改的文件在:C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\vpxd.cfg 。然后把下面的XML添加到之间。

turn_off_cpu_checking_1.png

该解决方案有一个重大的问题。在当今拥有超过650万的Windows应用程序中,你只能祈祷你的应用程序没有使用讨厌的用户模式指令。好消息是大多数在数据中心的应用程序其实并没有使用这些命令。然而,随着越来越多的台式电脑都设法进入数据中心环境。所有这一切在没有任何CPU检查的前期下将会很危险。

2)我们可以选择性地掩盖CPUIDs。这可能是Red Hat和AMD正在做的。这也是VMware的Enhanced VMotion的实现方法。如果我们在不兼容的处理器下执行VMotion的话,我们会得到如下警告:

cpuid-warning.png

我们可以对虚拟机利用先进的CPU特性来掩盖造成冲突的CPUIDs。

advanced_cpu_config.png

这将使我们能够做跨平台VMotions/实时迁移,但同时将遇到另一个问题–并不是所有的处理器是相同的。这是一个众所周知的事实,不同的处理器以不同的速度运行命令。如记忆体架构,AMD与英特尔处理器的实现是很不同的。Windows和Linux在不同的处理器上会加载不同的内核。因此想像一下,如果你当前运行在Intel内核中的被优化的应用程序,移到了AMD上将会发生什么?可能面临一个非常大的性能问题。然而这只是所有跨平台实时迁移问题中的冰山一角而已。

3)VMware考虑了第3个选择–共同特点掩码。基本上就是在英特尔和AMD芯片组中找到相同的运行和执行的指令。当然,为了获得这一共同的特点集需要大量的工作,而且该方法的实现效率还值得探讨。

总结

如上所述,若你最终选择方法#1,这将可能造成你的应用程序崩溃,选择#2将可能导致各种不可预见的性能和其他问题,选择#3需要大量的工作。很高兴看到Red Hat和AMD为推动该技术所做的努力。

Bookmark and Share

Discussion

No comments for “AMD和Red Hat展示跨平台实时迁移及VMware的实现方法”

Post a comment