跨云复制镜像网卡无法启动故障
故障表现
因业务需求,需将华某云中的ecs镜像复制到AWS AMI。然而复制到AMI完毕后,启动ec2健康检查不通过
操作系统:CentOS 7
故障定位
1、因健康检查不通过,无法使用堡垒机/sre中控机 远程进入操作系统,故使用AWS的远程控制台通过密码登录服务器
- 安全需求,所有机器的ssh防火墙限制仅能从堡垒机/sre中控机连接,且关闭ssh密码登录。但是为了故障排查,仍会设置root密码,当服务器发生故障时通过带外控制台进行登录,此密码无法使用ssh进行登录
2、发现网卡未能启动
3、尝试启动网卡,报错
tail -n 50 /var/log/messages
4、检查系统是否启用了NetworkManager.service
systemctl status NetworkManager.service
5、检查网卡配置文件
发现 /etc/sysconfig/network-scripts/ 下,网卡配置文件仅有ifcfg-eth0,而系统内引导的网卡为ifcfg-ens5
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-ens5 vim /etc/sysconfig/network-scripts/ifcfg-ens5
>> 替换eth0为ens5
此动作执行完毕后,systemctl start network 可正常启动网卡,机器恢复正常
至此定位到问题为系统开机时引导的网卡eth0和实际启动的网卡ens5对应不上,导致网卡启动失败
开始研究为什么导致该问题,镜像需做到开机即可正常使用
故障解决
1、尝试编辑/etc/udev/rules.d/70-persistent-net.rules
>> 将网卡名称从 NAME="eth0" 改成 NAME="ens5"
变更后重启机器,仍无法启动网卡
2、尝试编辑开机引导文件
vi /etc/default/grub GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto net.ifnames=0 console=ttyS0"
>>修改 grub ,在 GRUB_CMDLINE_LINUX 中,增加字串 "net.ifnames=0"。
grub2-mkconfig -o /boot/grub2/grub.cfg
重启机器,可正常引导网卡,重新制作镜像