价格更低、性能更强的AWS第五代EC2实例上线,一文让你从C4顺利转换到C5

作者:光环云 田亮

注意:执行操作前请先对实例进行快照!

背景

今年的早些时候AWS公布了最新的第五代实例C5/R5已经在国内上线,大家可能已经从公众号或新闻中得知了这个好消息,既然C5/R5来了,我估计同为第五代实例的M5/T3应该也会在不久的将来和大家见面。这对大量使用EC2服务的用户来说是个好消息。
那C5想较与之前的C4有哪些变化呢?大家最直观的的感受恐怕就是便宜了,没错,从官网公布的价格来看同样的CPU内存数量配置C5比C4下降了大概三分之一。很多用户兴奋的从C4改为C5,但是部分用户修改完发现系统无法启动,只得再改回C4。我支持的一个客户就遇到了这个问题,修改完之后系统无法正常工作,那原因是什么?又改如何解决呢?接下来我就和大家一起一步步分析解决这个问题。

C5的变化

让我们先来看看除了价格变化之外,C5还有哪些变化?我总结主要有以下2点。
CPU换代,换成了最新支持AVX-512指令集的至强白金8000系列CPU。
全面采用采用Nitro虚拟化系统,计算虚拟化由XEN转为KVM(当然和大家平时使用的KVM还是有些不同的,据AWS讲做了大量的定制和优化),IO处理全面offload给硬件,因此带来了更强的性能更低的价格。第五代实例的变化非常多,单讨论这个问题就够写一篇文章了,但今天我们的主题是如何从C4改为C5,这里我先挖个坑,以后等M5上线了,我们再详细讨论Nitro,这里我们先回归正题,聊聊Nitro的IO虚拟化。
Nitro相较于之前最显著的变化在于存储IO、网络IO全面offload给了硬件芯片, 并且暴露给虚机的接口也有所变化,操作系统看到的存储接口变为了nvme,网络接口为ENA。以上的这些变化给C5带来了更快更稳定的磁盘、网络性能(EBS性能最高80000IOPS/14Gbps,网卡带宽最高25Gbps),但存储、网络接口的变化也带来了一些挑战,很多系统默认没有安装或加载驱动,导致EC2无法正常工作。问题很可能就出在这。

操作系统的情况

这个客户采用的是自己制作上传的CentOS7.3 AMI,最小化安装。
CentOS是国内很多企业用户习惯使用的Linux发行版,我个人也很喜欢使用CentOS,现阶段大家使用的版本以CentOS 7为主(在我写这篇文章的时候RHEL8 稳定版已经Release了,CentOS 8稳定版在Build阶段尚未release)。AWS官方尚未提供CentOS AMI镜像,AMI社区中的CentOS来源不明,很多用户自己上传AMI来解决CentOS的需求,这个用户就采用的这种方式(在这里给大家透露个消息:据悉Marketplace落地国内后官方的CentOS会第一批上架,大家期待一下吧)。
我让客户将此AMI共享给了我的账号,启动一台c4实例SSH登陆执行命令:

 modinfo ena
 modinfo nvme

发现驱动都在,但ENA的版本比较低,执行yum update
(如果ena驱动不在的话执行yum update 升级一下系统就会有了)
升级完 reboot 重启。

关机修改实例类型开机
发现系统已经进登陆界面但网络不通,查看日志输出发现以下内容:
在这里插入图片描述
[ 10.660225] cloud-init[2495]: Cloud-init v. 18.2 running ‘init’ at Sun, 19 May 2019 16:45:32 +0000. Up 10.63 seconds.
[ 10.726440] cloud-init[2495]: ci-info: +++++++++++++++++++++++++++Net device info++++++++++++++++++++++++++++
[ 10.732149] cloud-init[2495]: ci-info: ±-------±------±----------±----------±------±------------------+
[ 10.737739] cloud-init[2495]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |
[ 10.743883] cloud-init[2495]: ci-info: ±-------±------±----------±----------±------±------------------+
[ 10.749145] cloud-init[2495]: ci-info: | ens5: | False | . | . | . | 06:34:e7:ba:xx:xx |
[ 10.754515] cloud-init[2495]: ci-info: | lo: | True | 127.0.0.1 | 255.0.0.0 | . | . |
[ 10.761298] cloud-init[2495]: ci-info: | lo: | True | . | . | d | . |
[ 10.766778] cloud-init[2495]: ci-info: ±-------±------±----------±----------±------±------------------+

网卡名为 ens5 状态为down,看来由于网卡变成了ena类型,使用了一致性命名规则,以PCI-E接口序号命令网卡名。原来系统网卡配置文件为eth0,现在网卡名变成了ens5当然起不来啦。
修改grub 增加net.ifnames=0 关闭一网卡致性命名规则。
命令如下:

sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

执行完关机,修改实例类型为C5,开机。系统就可以直接登录啦。

查看原文,获取更多AWS技术文章


光环云数据有限公司(简称“光环云”)是由光环新网科技股份有限公司与管理团队于2018年5月联合发起设立。光环新网获得亚马逊授权,独立运营AWS中国(北京)区域云服务。作为光环新网附属企业,光环云专注于AWS云服务在中国的市场推广与销售、完善和提升网络交付与服务能力、丰富AWS云服务应用市场,为中国企业全面实现云转型升级、供给侧改革和双创事业提供下一代IT基础设施。

在这里插入图片描述

发布了35 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/SinnetCloud/article/details/100354440