我在服务器实例方面遇到了一个非常奇怪的问题,我正尝试将其从 PV 升级到 HVM。
我已经完成迁移过程并创建了 AMI。
如果我从此 AMI 启动一个 T2 类型的实例(无论大小),它都可以正常工作。
但是,如果我尝试以 M4 或 C4 启动,则会失败。
我在系统日志中看到非常奇怪的错误......
Apr 24 08:49:19 cloud-init[1619]: util.py[WARNING]: Route info failed: Unexpected error while running command.
Command: ['netstat', '-rn']
Exit code: 1
Reason: -
Stdout: 'Kernel IP routing table\nDestination Gateway Genmask Flags MSS Window irtt Iface\n'
Stderr: ''
ci-info: ++++++++++++++++Net device info+++++++++++++++++
ci-info: Device Up Address Mask Hw-Address
ci-info: lo True 127.0.0.1 255.0.0.0 .
ci-info: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Route info failed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Apr 24 08:49:19 cloud-init[1619]: url_helper.py[WARNING]: Calling 'http://169.254.169.254/latest/meta-data/instance-id' failed [0/120s]: request error [HTTPConnectionPool(host='169.254.169.254', port=80): Max retries exceeded with url: /latest/meta-data/instance-id (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ffa7da7e310>: Failed to establish a new connection: [Errno 101] Network is unreachable',))]
有人能解释一下为什么这在 M4 和 C4 类型上始终失败,但在 T2 上始终有效吗?
尽管我使用相同的过程迁移了许多其他实例,但我以前从未遇到过这样的问题。
答案1
您的实例无法获取元数据的最可能原因是其内核缺少网络接口的驱动程序。
大多数较新的 EC2 实例类型使用弹性网络适配器,驱动程序名称为ena
。此驱动程序存在于 vanilla 内核中;相关配置标志为:
PCI_MSI=y
NET_VENDOR_AMAZON=y
CONFIG_ENA_ETHERNET=y