AWS 升级或变更机型无法启动问题-基于Nitro(C5,R5,M5)

用户需求

  • 性能优化
  • 成本优化

1.查询ena及nvme模块是否安装

2.更新系统模块依赖项

  • modprobe ena
  • modprobe nvme
升级机型后如果开机的initramfs缺少nvme及ena模块
内核无法顺利载入将会导致系统无法识别系统及数据盘
因此需要在系统内执行modprobe将ena及nvme驱动载入后,再重新打包initramfs

3.更新 initramfs 以确保在启动时加载新模块

  • dracut -f -v

4.检查系统是否载入模块

  • lsinitrd /boot/initramfs-$(uname -r).img | grep "nvme|ena"
  • lsmod | grep "nvme|ena"

5.禁用网络接口命名

  • RHEL 6 将net.ifnames=0 附加到 /boot/grup/menu.lst 文件的内核行中。
    • vi /boot/grub/menu.lst
  • RHEL 7 将net.ifnames=0 附加到 /etc/default/grub 文件的 GRUB_CMDLINE_LINUX 中
    • GRUB_CMDLINE_LINUX="selinux=0 console=tty0 crashkernel=auto console=ttyS0,115200 nvme_core.io_timeout=4294967295 net.ifnames=0"
    • 也可以使用 sed 命令追加
      • sudo sed -i '/^GRUB_CMDLINE_LINUX/s/"$/ net.ifnames=0"/' /etc/default/grub

6.为 grub2 重新生成配置文件

  • grub2-mkconfig -o /boot/grub2/grub.cfg

7.官方检测Nitro脚本

主要修改fstab uuid挂载数据盘,如果不用修改可忽略执行

8.停止实例

  • 控制台停止实例

9.启用实例ENA

不确定是否启用ENA时,建议执行

  • aws ec2 modify-instance-attribute --instance-id instance_id --ena-support

10.修改机型

  • 停机状态下修改机型

11.启动EC2实例

  • 启动实例检查状态

参考文档:

https://aws.amazon.com/cn/premiumsupport/knowledge-center/boot-error-linux-nitro-instance/
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/enhanced-networking-ena.html
https://console.aws.amazon.com/support/home?region=sa-east-1#/case/?displayId=7091330931&language=en

原文地址:https://www.cnblogs.com/zhanmeiliang/p/13193237.html