突然无法访问非日志记录 EC2 实例该怎么办?

突然无法访问非日志记录 EC2 实例该怎么办?

我有一个运行 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

它又恢复到以前的样子了(优点是不那么粗糙了)。

我没有费心尝试用问题映像启动一个新的实例,因为......好吧,当然所有的“状态”都存在于磁盘映像中(我只能猜测它遭受了一些与启动相关的损坏)所以我不会期待任何不同的结果。

我猜只是“其中之一”?

将来我想我会更定期地拍摄快照,并且在任何内核更新之前。

相关内容