亚马逊在8月8日发生故障后,所有(基于EBS的)AMI都停止为许多 用户服务。这是由于AMI所基于的快照中的某些扇区损坏。
但是,Amazon创建了应解决磁盘问题的恢复快照。这些名称按照“ vol-xxxxxxxx的恢复快照”的名称命名。
我从恢复快照创建了一个新的AMI,该快照可以正常工作,但是从该新AMI启动的实例不起作用:它们的状态为“正在运行”,但是我无法进入计算机,也无法访问应在该计算机上运行的任何Web服务。归结为这一点(从系统日志,可通过AWS管理控制台访问):
EXT3-fs: sda1: couldn't mount because of unsupported optional features (240).
EXT2-fs: sda1: couldn't mount because of unsupported optional features (244).
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)
我已经将通过该恢复快照创建的卷安装到AWS上的另一台服务器上,尽管看起来一切正常。例如,fsck说:
$ sudo fsck -a /dev/xvdg
fsck from util-linux-ng 2.17.2
uec-rootfs: clean, 53781/524288 files, 546065/2097152 blocks
在一个AWS论坛讨论中,我从遇到类似问题的人那里获得了以下建议:
解决方法是从快照创建卷并将其附加到正在运行的实例,使用fsck --force强制检查文件系统,一旦清除,便可以创建快照并将其用于AMI。
但是我不知道如何在Ubuntu(11.04)上强制fsck:
$ sudo fsck --force /dev/xvdg
fsck from util-linux-ng 2.17.2
fsck.ext3: invalid option -- 'o'
有人知道如何在Ubuntu上强制检查文件系统吗?关于如何启动基于恢复快照的工作实例还有其他想法吗?
现在看来,从干净的Ubuntu AMI重新开始并重新设置所有服务似乎更快。:-(但是,如果有任何方法可以使恢复快照真正起作用,我当然不愿意这样做。