最近对AWS服务器VMtype进行了升级主要从t3.medium升级到m5.large
我们服务器共36台操作系统主要为Ubuntu14,16和Centos6,7和Amazon Linux
升级步骤如下
1 ENA 驱动编译
由于M4后支持弹性网络所以必须安装ENA才可以进行VMType的变更
modinfo ena查看是否已经成功安装了ena驱动
grep . /etc/*-release 查看操作系统版本,如果已经制作的驱动直接scp 拷贝过来不必再次make了就
git clone https://github.com/amzn/amzn-drivers 下载driver源码
cd amzn-drivers/kernel/linux/ena 转到ena目录
make
make时可能出现以下问题
未安装kernel-devel工具导致无法make
解决方法一 sudo yum install "kernel-devel-uname-r == $(uname -r)" 安装Kernel对应的kernel-devel
服务器可能不是最新版kernel无法下载到对应的kernel-devel采用以下方法升级Kernel
ls -al /etc/grub.conf kernel升级之前,确认 grub.conf 文档Link
没有文档时,生成link
cd /etc
ln -s /boot/grub/grub.conf
$ yum update kernel 升级
升级后确认 grub.conf 文档
根据记录最新版本的顺序,变更default值. (将最新版本设置为0的位置)
我的如下
default=0
timeout=0
title CentOS (2.6.32-754.17.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-754.17.1.el6.x86_64 ro root=UUID=44bab98c-d39b-4be3-bda0-5a8df53b1989 console=ttyS0 LANG=en_US.UTF-8 crashkernel=auto
initrd /boot/initramfs-2.6.32-754.17.1.el6.x86_64.img
title CentOS (2.6.32-504.3.3.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=UUID=44bab98c-d39b-4be3-bda0-5a8df53b1989 console=ttyS0 LANG=en_US.UTF-8
initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.im
升级成功后下载对应的kernel-devel进行make
检查驱动是否编译成功
$ modinfo ena.ko
##出现以下内容为正常
filename: ~/amzn-drivers/kernel/linux/ena/ena.ko
version: 2.1.1g
license: GPL
description: Elastic Network Adapter (ENA)
................................
2 ENA驱动安装
安装方法
##生成ena.conf
$ vi /etc/modules-load.d/ena.conf
##在ena.conf 文档输入ena后保存
##复制Compile的 ena.ko文档
$ cp ena.ko /lib/modules/`uname -r`/
运行AWS检查脚本进行检查,脚本下载方法如下
https://github.com/awslabs/aws-support-tools/tree/master/EC2/C5M5InstanceChecks
如果没有UUID请点击Y进行生成
reboot 重启后加载驱动
3 检查ENA已经成功安装
modinfo ena
如果未能正常加载尝试以下方法加载
systemctl restart systemd-modules-load 系统重新导入
depmod -a
确保modinfo ena已载入ENA
4 ENA激活
另外一台机器登录AWS CLI
aws configure
为了变更为支援ENA的Type,需要变更VM属性,基本权限没有该资格,需要添加权限,生成资格证明。
增加权限 : 在目前使用的 IAM账号里添加 ModifyInstanceAttribute 权限
生成资格证明: 根据以下链接的guide,生成 IAM 账户的资格证明。
https://docs.aws.amazon.com/ko_kr/toolkit-for-jetbrains/latst/userguide/setup-credentials.html
生成资格证明后在AWS console中,STOP VM
使用aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxxxxx --ena-support 应用ENA
在AWS console中变更VM type
在AWS console中启动对象VM
aws ec2 describe-instances --instance-ids i-xxxxxxxxxxxxxxxxxxxx --query "Reservations[].Instances[].EnaSupport"
返回true则证明大功告成了