从 EBS 快照启动新 EC2 实例的正确过程

Mat*_*att 8 snapshot amazon-ec2

我有一个运行 Ubuntu 12.04 32 位 AMI 的 EC2 实例(在用于启动新实例的经典向导的第一页中可用)。根设备是 EBS 卷。然后我按照以下步骤操作:

  • 停止服务器
  • 右键单击 Volumes 选项卡中的 volume -> Create Snapshot
  • 右键单击快照选项卡中的快照 -> 从此快照创建图像
  • 在 AMI 选项卡中,我右键单击新创建的 AMI 并选择“Launch Instance”

在向导的第三步中,我注意到“存储设备配置”这一行

Root    /dev/sda1   snap-xxxxxx 8GiB    standard    true
Run Code Online (Sandbox Code Playgroud)

这似乎向我表明它正在使用快照作为新实例的根卷(实际上,它是唯一的卷)。

然后我启动实例。但是,它在“初始化”步骤期间未能通过“状态检查”。如果我右键单击实例并“获取系统日志”,这是日志的尾部:

Using IPI No-Shortcut mode
XENBUS: Timeout connecting to devices!
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.

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)
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我的担忧是 2 倍:

  • 如果我无法从快照启动,这会使快照实用程序变得不那么有用
  • 如果我无法从快照创建 AMI 以创建新实例,这不仅会降低快照的用处,还会让我们想知道如何轻松地“复制”实例。

cyb*_*x86 10

您收到的错误表明您的文件系统比内核支持的文件系统更新(很可能是仅支持 ext2/3 的内核上的 ext4)。某些 AMI 依赖于非标准 AKI(Amazon 内核映像)来提供某些功能。

在这种情况下,您遵循的过程似乎是正确的,因此,当与您收到的错误相结合时,AKI 很可能不匹配。检查原实例使用的AKI,并与新实例的AKI进行比较。如果它们不匹配,请在启动时明确指定 AKI。(您也可以手动创建 AMI,并在此过程中指定 AKI,以便需要在启动时指定)。

顺便说一句,更好的 AMI 设计将使用 PV-GRUB 作为引导加载程序从 AMI 本身加载内核(而不是需要特定的外部 AKI),这简化了使内核保持最新的过程。如果您想在您的 AMI 中实现这一点,那么关于用户提供的内核的AWS 文档值得一读。