使用过vmware vcenter迁移的人都知道,迁移的两种:冷迁移和热迁移。
冷迁移:vm关机后进行迁移,该方法适用所有vm,只要不是vm的版本不高过esxi的所支持版本,迁移后都可以正常启动
热迁移:vm在开机状态下进行迁移。

在esxi 6.7以前的版本,有一句话,叫做vm要在线迁移要保证cpu型号是一致的,不然没办法进行迁移。这个对于多次购买不同型号服务器的机器来说是很痛苦的。
所以vmware从6.7版本开始支持跨cpu进行热迁移了,只需要开启一个叫evc的功能。(6.7以前没这个功能)
PS:如果你的vm版本是低于6.7的怎么办?答:把vm迁移到esxi 6.7或后面的版本,然后右键vm——兼容性——升级虚拟机兼容性,升级上去就行了。

开启evc功能后,分intel跟amd的cpu支持热迁移。选择之后,vm使用的cpu是vmware虚拟机一层后的cpu,也就是模拟intel或者amd的cpu,这个时候cpuid 还有特性会被修改,不依赖物理主机的cpu。

开启evc的位置有两个,一个是针对单个vm的,需要在关机状态下才能操作,开机状态无法操作,开启路径选择一台vm——配置——vmware evc —— 编辑–指定cpu,如下图:

vmware vcenter 在不同cpu如何热迁移(在线迁移):开启evc_热迁移

vmware vcenter 在不同cpu如何热迁移(在线迁移):开启evc_vmware vcenter_02

vmware vcenter 在不同cpu如何热迁移(在线迁移):开启evc_vmware vcenter_03

开启的时候建议不要选择支持特性支持特别多,且最新的cpu,实际使用中发现经常会有应用程序不兼容的情况,例如我现在最高选择到sky 系列而已。

第二个开启evc的位置是通过群集,选择群集–配置——vmware evc —— 编辑–指定cpu,但是群集启用有要求,必须是群集里面没有开启其他系列evc的vm。 也就是说,开启的时候,会应用到群集所有vm,但是要求vm都没开启evc(如开启evc,必须是选择同一个系列的cpu,例如都选择了intel–sky 系列cpu)。
开启之后,vm重启后会生效evc的功能。

这里注意一点,如果把群集的evc功能关闭,群集内的vm的evc功能并不会失效,即便重启vm也不会关闭,具体原因不知道,所以建议尽量在单个vm上开启evc,最好是做镜像的时候设置,不要开启群集的evc。

开启了evc后,可以在esxi6.7及以前的esxi自由热迁移服务器,不会提示无法迁移。