恢复EBS支持的崩溃的EC2实例

我有一个EBS支持的EC2实例(即从EBS卷引导)。 硬件似乎已经崩溃。 我有麻烦让它回来,这是令人沮丧的,因为具有EBS支持的卷的整个目的是磁盘映像应该是健壮的对CPU崩溃。

首先,我试图在这台机器上制造一个新的AMI,但是新的AMI陷入了悬而未决的状态。 用命令行工具潜水,我看到机器无法正常停止。 所以我做了

ec2-stop-instances --force 

接着

 ec2-detach-volume --force 

但是,我无法从一个独立的卷中创build一个AMI。 我尝试了一个新的实例,并将EBS卷附加到它上面(在将它与之分离之后),然后启动它,但那个启动失败

 "State Transition Reason: Server.InternalError: Internal error on launch" 

我假设必须有一种方法让赛车重新运转 – 这就是EBS的重点,对吧? 但是,如何?

我有一个实例在我身上崩溃了几次,最显着的是当AWS有他们的“小”EBS失败。 像你一样,我无法终止实例或分离音量。 我最终创build了一个EBS卷的快照(是的,它让我创build一个快照而不分离),从该快照创build一个卷,并将其作为实例上的根设备。

请记住,虽然物理驱动器可能没有被损坏,但崩溃仍然会损坏文件系统或数据。

我还成功地将卷作为一个普通的非启动卷,运行文件系统检查(例如e2fsck),并使用rsync,类似于将用于从临时/实例存储迁移到EBS的过程:

  1. 将根(/)目录复制到EBS设备( rsync -aXHv
  2. (可选地,rsync设备(/ dev),虽然我不认为这是必要的)
  3. 刷新写入和卸载

我结束了“回家”的消息是当前的备份甚至是EBS驱动器 – 所以我现在在数据卷上频繁地运行ec2-consistent-snapshot,并且(在我的根卷上)频繁地运行ec2-consistent-snapshot,并且使用ec2-prune-snapshots 。

希望上面的一些组合(快照,检查磁盘,rsync)可以帮助你。

(顺便说一下,在我看到这种情况发生的其他几次之后,我有一些进程正在运行,消耗了所有内存 – 而且我使用的特定AMI没有任何交换空间设置 – 控制台日志(来自AWS控制台)对于识别这种问题是有好处的)

也许你有EBS驱动器本身的问题。 例如删除了一些重要的信息。

检查有关如何创build基于EBS的AMI的文章。 这一个例子

http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html