一.Openstack迁移不同CPU的原理
一些高性能计算应用需要CPU支持某些特性,如SSE4.2、 AVX、 AVX2、LZCNT、 FMA、 BMI等。OpenStack 默认的配置项为了保持虚拟机能够在不同的宿主机之间顺利迁移,没有特别指定CPU模式,而采用的是兼容模式。

nova.conf配置项cpu_model的4种配置选项说明

none 最小cpu模型,相比其他三个是最能兼容所有cpu型号
custom 自己定义
host-model 根据物理CPU的特性,选择一个最靠近的标准CPU型号
host-passthrough 直接将物理CPU 暴露给虚拟机使用,在虚拟机上完全可以看到的就是物理CPU的型号
若云主机需要特殊的指令集,如需要某些增强了的指令集,从多媒体应用到高性能计算应用领域的性能,同时还利用一些专用电路实现对于特定应用加速。

1、修改计算节点的 nova.conf,将 cpu_mode=none 改成 cpu_mode=host-passthrough

# vim /etc/nova/nova.conf
cpu_mode=host-passthrough
前提是物理cpu支持该指令

2、重启nova-compute服务

service nova-compute restart
3、重启云主机

nova reboot instance-ID
4、查看CPU属性

# cat /proc/cpuinfo
发现已经有自己所需要的cpu指令集了

二.VMware迁移不同CPU的原理
VMware提供迁移功能:Enhanced VMotion Compatibility (EVC)增强型 vMotion 兼容性

可以使用增强型 vMotion 兼容性 (Enhanced vMotion Compatibility, EVC) 功能帮助确保群集内主机的 vMotion 兼容性。EVC 可以确保群集内的所有主机向虚拟机提供相同的 CPU 功能集,即使这些主机上的实际 CPU 不同也是如此。使用 EVC 可避免因 CPU 不兼容而导致通过 vMotion 迁移失败。

迁移原理:

通过CPU硬件底层支持的在线热迁移方案(Intel 通过Flex Migration实现,AMD通过Extended Migration实现),允许虚拟层面上支持CPUID 掩码功能,屏蔽某些CPU功能,通过强制CPU指令集兼容来实现不同CPU系列之间的在线热迁。

推出 EVC 之后,vmware通过和CPU厂商的合作,通过在硬件底层上直接支持CPUID 掩码功能。

EVC 只会屏蔽影响 vMotion 兼容性的处理器功能。启用 EVC 不会妨碍虚拟机利用更快处理器速度、更多 CPU 内核或在较新的主机上可能可用的硬件虚拟化支持。

举个例子: Vmotion 功能在实战中的意义是非常重要的, Vmotion 对于 CPU 的要求比较苛刻,对于不同系列 CPU 是无法自动实现 Vmotion 的功能,比如:在 HP 380G4 和 HP380G5 之间不通过人工修改是绝对无法实现 Vmotion 的。
比如:三个月前买的服务器是基于 Intel 53xx 的 CPU ,由于应用的扩大,需要给群组添加新的服务器,而新购买的服务器是基于 Intel 54xx 的 CPU ,由于 Intel 54xx CPU 增加了 SSE4.1 指令集,导致新服务器加入群组后,无法实现虚拟机从旧服务器到新服务器的在线热迁 (VMotion) 。VC 会自动判别是否新服务器与群组在Vmotion层面上兼容,如果不兼容,不会允许服务器加入的,提高了自动化程度。

配置方法:

在“群集设置”对话框中配置 EVC。配置 EVC 时,请将群集中的所有主机处理器配置为提供基准处理器的功能集。这种基准功能集称为 EVC 模式。EVC 利用 AMD-V Extended Migration 技术(适用于 AMD 主机)和 Intel FlexMigration 技术(适用于 Intel 主机)屏蔽处理器功能,以便主机可提供早期版本的处理器的功能集。EVC 模式必须等同于群集中具有最小功能集的主机的功能集,或为主机功能集的子集。
————————————————
版权声明:本文为CSDN博主「查里王」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tony_vip/article/details/100567123

发表评论

邮箱地址不会被公开。 必填项已用*标注