m1.xlarge 实例上缺少临时磁盘

m1.xlarge 实例上缺少临时磁盘

我正在尝试基于“debian-6.0-squeeze-64bit-minimal-pvgrub-20110222-05 (ami-1e39ca77)”构建一个新映像,但它似乎缺少临时磁盘:

fdisk -l 仅显示 /dev/xvda1(ebs 根设备),并且块设备映射不显示本地磁盘。

GET http://169.254.169.254/latest/meta-data/block-device-mapping/
ami

实例类型为m1.xlarge,配备4个本地磁盘:

echo  $(GET http://169.254.169.254/latest/meta-data/instance-type)
m1.xlarge

任何想法?

答案1

如果从 EBS 根 AMI 启动实例,则在大多数情况下,默认不会附加临时存储。

适用于 m1.xlarge 的临时磁盘标记为 ephemeral[0-3],每个磁盘有 420GiB。一旦启动实例,您就无法将这些磁盘附加到实例上。(另一方面,您可以在实例运行时向其添加 EBS 卷)。

为了更改连接到实例的临时磁盘,您需要执行以下任一操作:

  1. 启动实例时明确指定临时磁盘映射或

    ec2-run-instances ami-1e39ca77 -b /dev/xvdb=ephemeral0 -b /dev/xvdc=ephemeral1 -b /dev/xvdd=ephemeral2 -b /dev/xvde=ephemeral3

  2. 注册新的 AMI,明确指定临时磁盘映射

    ec2-register -n Image_Name -d Image_Description --root-device-name /dev/xvda1 -b /dev/xvda1=snap-5241973e -b /dev/xvdb=ephemeral0 -b /dev/xvdc=ephemeral1 -b /dev/xvdd=ephemeral2 -b /dev/xvde=ephemeral3

此示例使用 AMI 所基于的快照作为根映像。如果您对根卷进行更改,您当然会使用自己的快照。

请注意,在这两种情况下,块设备都不会自动挂载(除非您修改 fstab),尽管它们会立即显示在/proc/partitions(或使用fdisk -l)中。

答案2

m1.xlarge 有四个 420GiB 临时磁盘可用,但大多数 AMI 上默认仅连接、格式化和安装一个。

您需要使用块设备映射选项在运行时将其他临时存储附加到新实例,然后在原始设备上创建文件系统,然后挂载文件系统。

来自亚马逊的更多信息:

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?InstanceStorage.html

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?block-device-mapping-concepts.html

答案3

顺便说一句,在我的例子中,我必须使用 /dev/sdX 设备名称,否则实例根本无法启动并立即终止。我也不需要重新映射根设备,所以我使用“-s”来指示根设备卷。虽然我必须使用 /dev/sdX,但它在我的 Debian Squeeze 6.0.3 EBS 支持的 EC2 AMI 中显示为 /dev/xvdX。

ec2-register -n Image_Name -d Image_Description -s snapId_num -b /dev/sda1=snap-5241973e -b /dev/sdb=ephemeral0 -b /dev/sdc=ephemeral1 -b /dev/sdd=ephemeral2 -b /dev/sde=ephemeral3

相关内容