支持C5/M5的CentOS纯净版本
如果你能接受如下CentOS
纯净版本,可以直接社区AMI中搜索:809566369908
账号。这个是Partner team
从Global marketplace
中导入到中国区域多版本,版本保持了和Global一致。
- CentOS 6.5
- CentOS 6.10
- CentOS 7.6
自行编译支持5系列机型
注意事项
- 不要进行
yum update
操作,这样会导致你的系统版本号、Kernel等都升级到最新的CentOS版本,比如:CentOS 7.x
会变为最新的CentOS 7.6
。当然如果你的用户可以接受最新版本的CentOS
,可以执行此操作。 - 请确保系统的
Kernel
、Kernel header
版本保持一致,否则会导致后续ena编译时不通过。 Kernel
版本不要低于3.2
编译步骤
本例使用CentOS 7.3非原版ISO导入
确认系统版本和Kernel版本;本例中都为3.10.0-514.26.2.el7
安装相关软件包
1 | yum -y --enablerepo=extras install epel-release |
安装编译ENA
1 | wget https://github.com/amzn/amzn-drivers/archive/ena_linux_2.0.2.zip |
如果顺利,这个时候可以看到ena已经安装成功
检查状态
如果想知道为何你的系统改成5系列机型后无法启动可参考这篇文章
为何我的 Linux 实例在我将其类型更改为 C5 或 M5 后未启动?
1 | wget https://raw.githubusercontent.com/awslabs/aws-support-tools/master/EC2/C5M5InstanceChecks/c5_m5_checks_script.sh |
笔者的运气比较好,所以执行检测直接就OK了。如果你使用原版CentOS ISO执行的升级操作会遇到一下报错。
会发现ENA已经加载,但是nvme的检查会报错, 这个时候即使运行dracut命令也不能解决问题,因为nvme驱动没有能正确加载。
加载nvme驱动
1 | modprobe nvme |
请确保nvme版本不低于1.0
再运行check脚本提示的sudo dracut -f -v
命令,运行过程中会提示有些command can’t be found
,可以忽略,只要最后能正常完成image加载就没有问题。
再运行c5_m5 check scripts,会发现报警已经消失。
可选操作:升级系统microcode。
因为C5所使用的Intel skylake芯片相对较新,所以升级microcode有助于让系统更好的识别新芯片。升级操作请自行Google
CLI修改实例以支持ena
这个时候关机,选择C5实例类型,通过CLI修改实例以支持ena
1 | aws ec2 modify-instance-attribute --region THE_INSTANCE_REGION --instance-id THE_INSTANCE_ID --ena-support |
重启实例
实例重新启动后,可以看到CPU已经时最新的8124M也就是C5的CPU,同时,所有的内核版本都没有变化。