![突然无法访问非日志记录 EC2 实例该怎么办?](https://linux22.com/image/565864/%E7%AA%81%E7%84%B6%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E9%9D%9E%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%20EC2%20%E5%AE%9E%E4%BE%8B%E8%AF%A5%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F.png)
我有一个运行 Canonical 的 Ubuntu 10.04 LTS 的 EC2“微型实例”。已经运行了 6-9 个月,很少重启(最多每隔几周重启一次)。
我刚刚做了我认为是常规的 aptitude 更新,aptitude full-upgrade。注意到似乎安装了一些新的 -ec2 linux 映像后,我重新启动了系统。虽然它似乎重新启动并返回到控制台上的“正在运行”状态,但它并没有恢复其通常的 ssh 和 http 服务。我尝试停止并启动它,重新关联它的弹性 IP……毫无效果。
奇怪的是,“获取系统日志”(AWS 控制台)返回一个完全空白的日志。空的。什么都没有。一个字符都没有。(至少在第一次启动-停止后它是空的;在停止之前它只包含关于重新启动的最后一行)。
我试过一些停止-启动循环但没有改善。
有什么建议下一步该尝试什么来让我的实例恢复正常?
答案1
我最近遇到了同样的问题。我对 EC2 还很陌生,但在 Eric 博客的帮助下,我设法排除故障并解决了这个问题,尽管我仍然不确定它到底是什么。我认为它可能是缺少此特定 AMI 及其新更新的内核映像的内核 AKI(顺便说一句,我正在运行相同的 AMI)
- 我停止了我的实例,将卷附加到新实例(在同一个 AMI 上运行)。不得不使用 e2label 和 fstab 进行一些操作。
- 挂载旧文件系统(包括 dev 和 proc)并 chroot 到它
- 将内核升级到最新版本之前的版本,因为我找不到与之对应的 AKI。我不得不使用 EC2 API 工具手动更改 AKI
- 删除新的 EBS 卷(修复第一个分区标签)并启动回旧卷
我现在正在运行 2.6.32-318-ec2
如果我错误地指出缺少 AKI 是问题的根源,有人可以纠正我吗?无论如何,它起作用了,我确信在将其应用到生产系统之前,我会先在测试主机上测试所有升级。
答案2
我的解决方案/恢复是:
- 使用 Ubuntu 10.04 AMI ami-c00e3cb4 实例化一个新实例(立即更新和升级并重新启动到 linux-image-2.6.32-319-ec2 没有问题)。
- 重新安装所有重要的软件包
- 将旧的非启动实例(在其变为非启动后制作)的快照作为卷挂载。
- 对少数重要的 /etc、/var 和 /home 进行 rsynced
它又恢复到以前的样子了(优点是不那么粗糙了)。
我没有费心尝试用问题映像启动一个新的实例,因为......好吧,当然所有的“状态”都存在于磁盘映像中(我只能猜测它遭受了一些与启动相关的损坏)所以我不会期待任何不同的结果。
我猜只是“其中之一”?
将来我想我会更定期地拍摄快照,并且在任何内核更新之前。