关于我们

-2018-
19
12

OpenStack这张嘴能否吞得下SkyLake这条热狗

写在前面

作为一家以技术为驱动的云计算公司,云途腾正在飞速发展,从本期开始云途腾技术团队将展开技术大咖秀,将他们的技术心得,在工作中遇到的尖端问题、解决方案等内容定期分享,本期云途腾金牌运维团队将针对OpenStack在Skylake微处理器架构中出现的几个问题进行深入探讨。


太初有道,道者,一也。老子有云:道可道,非常道!然孔子曰:师者,传道授业解惑也!今吾辈不敢言师,然亦可为友,愿道不可道之事,解不可名之惑,聚气成云,运维万物,散则成雨,滋养八方。以四两绵薄之力,抛砖引玉,共聚英才,播云上运维万斤之道。唯愿运维诸兄皆可“运筹维幄之间,而决胜于千里之外!”


什么是skylake

Intel Skylake是英特尔2015年推出的第六代微处理器架构,采用14纳米制程,是Intel Haswell微架构及其制程改进版Intel Broadwell微架构的继任者。国内已经有很多工业主板厂商,跟进研发Skylake主板。

14纳米制程;
同时支持DDR3L和DDR4-SDRAM两种内存规格;
集成显示核心或为基于专为研发用途的Intel Larrabee架构;
接口变更为LGA1151,必须搭配Intel的100系列芯片组才能使用。
经过测量Skylake的制程为强大的14纳米工艺,Skylake成为史上最小的桌面四核心

问题1
操作系统反复重启

问题描述
在某项目实施过程中,出现了一个很奇怪的现象:通过部署工具给其他节点安装系统,安装完以后所有的物理机就开始反复重启,成功启动后一段时间就会再次重新启动。

服务器cpu型号:四路Intel® Xeon® Gold 6130的CPU(采用skylake架构)
操作系统版本:centos7.3_1611

分析及排查
1,把其中一台虚拟机操作系统重做成centos7.5版本,该问题修复;
2,联系硬件服务器厂家售后咨询,厂家给出的解决方案是操作系统必须是centos7.4以上;
Centos 7.3 1611默认安装的kernel版本是3.10.0-514.el7.x86_64,而在redhat官方推荐的四路Intel Skylake CPU最低内核版本要求kernel-3.10.0-514.6.1.el7。


解决方案
考虑到升级操作系统会导致平台部分依赖包及未经过测试等风险,所以按照红帽(redhat)官方的推荐四路cpu的最低内核(kernel-3.10.0-514.6.1)要求进行升级。升级完成后,监控了一段时间未出现重启现象,问题修复。

问题2
CPU特性与Libvirt不兼容

问题描述
通过T2OS云平台创建虚拟机失败

分析及排查
排查相应计算节点的nova-compute日志时发现,日志中有错误信息”qemu-kvm: CPU feature spec-ctrl not found”。该日志传达了几点信息:
1,Libvirt的获取宿主机的CPU指令集列表中包含该特性
2,qemu-kvm不支持CPU特性spec-ctrl


解决方案

1, 升级libvirt和qemu来适配新款CPU
2, 修改计算节点libvirt获取到的指令集列表cpu_map.xml,屏蔽虚拟化组件不支持的CPU特性。备份cpu_map.xml文件,然后修改/usr/share/libvirt/cpu_map.xml,将和spec-ctrl相关的特性删除,如下图所示:

最后把libvirt服务重启生效。

因考虑到升级libvirt和qemu影响较大,升级过后可能会影响部分逻辑和功能,故推荐第二种解决方法。

问题3
Suse11虚拟机hang住

问题描述
客户要求把一个生产业务从异构虚拟化平台迁移至T2OS云平台,业务的操作系统为SUSE11 sp1。该操作系统已经是2010年发行的版本了。针对该业务系统执行v2v过程很顺利,但是该业务系统运行一段时间后,发现虚拟机处于hang住状态,业务无法正常工作。
 
宿主机cpu型号:两路Intel® Xeon® Gold 6136的CPU(skylake架构)

分析及排查
1. 物理节点无明显错误日志,云平台计算服务也是正常的,基本排除云平台导致虚机异常卡死;
2. 把业务虚机内核参数初始化到默认状态,并没有修复故障;
3. 尝试调整业务虚机的CPU 部分feature policy,同样无功而返;
4. 怀疑业务虚机内核与cpu架构不兼容导致,尝试升级内核版本,问题解决;

解决方案
suse11的内核为2.x.x版本,非常老的内核,将虚机内核从suse11(kernel 2.x.x )升级到suse12(kernel 4.x.x),内核升级完成后观察了一段时间,没有再出现虚机卡死现象。由此判断是虚机内操作系统内核与CPU架构不兼容导致虚机卡死。

总结
Intel Skylake CPU是比较新的CPU架构。如果操作系统kernel版本比较老,而底层使用比较新的硬件,就可能会出现各种兼容性问题,从而影响客户正常使用。

参考文献
https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(server)
https://access.redhat.com/articles/3135591



分享到:

Copyright ©2011 - 2016 北京百度云途腾科技有限责任公司    京ICP备14057888号  | 技术支持:因脉科技 

北京市石景山区苹果园路2号院1号楼通景大厦602  010 - 5213 8045