Openstack 与VMware 不同CPU迁移原理
一.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 restart3、重啟云主機
nova reboot instance-ID4、查看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 模式必須等同于群集中具有最小功能集的主機的功能集,或為主機功能集的子集。
總結
以上是生活随笔為你收集整理的Openstack 与VMware 不同CPU迁移原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试官:看你简历写了熟悉Kafka,它为
- 下一篇: OpenStack网络模块核心Openv