我已经创建了一个 AMI,但我想使用实例存储来运行一些科学程序。它们基本上是从磁盘读取一堆内容,将其写回到磁盘,然后汇总这些结果。这需要在 Windows 上进行,因为这些程序是为 Windows 编写的。我不需要保留文件,也不在乎是否丢失它们,所以我想为此使用实例存储,并且不产生任何 I/O 费用。
因此,我启动了我的 AMI,但当我远程登录时,我只看到我的 EBS 根设备。我该如何安装可用的实例(临时)存储?
答案1
虽然除 t1.micro 之外的所有实例都分配有“实例存储”(即临时存储),但默认情况下不一定附加该存储。在大多数情况下,具有 EBS 根卷的实例将有零个或一个附加的临时卷。
实例可用的临时磁盘标记为ephemeral[0-3]
。一旦启动实例,您就无法将其附加到实例。(另一方面,您可以在实例运行时向其添加 EBS 卷)。
由于临时磁盘和 EBS 卷都是块设备,因此 AWS 将这些磁盘到实例设备的映射称为“块设备映射”,并且可以使用-b
或--block-device-mapping
参数(可以多次使用)来指定这些映射。
为了更改连接到实例的临时磁盘,您需要执行以下任一操作:
发射明确指定临时磁盘映射的实例或
ec2-run-instances ami-xxxxxxxx -b /dev/xvdb=ephemeral0 -b /dev/xvdc=ephemeral1 -b /dev/xvdd=ephemeral2 -b /dev/xvde=ephemeral3
登记一个新的 AMI,明确指定临时磁盘映射(和 EBS 根):
ec2-register -n 映像名称 -d 映像描述 --root-device-name /dev/xvda1 -b /dev/xvda1=snap-xxxxxxxx -b /dev/xvdb=ephemeral0 -b /dev/xvdc=ephemeral1 -b /dev/xvdd=ephemeral2 -b /dev/xvde=ephemeral3
请注意,在 Windows 实例上,您将指定设备为 /dev/xvdX,而在 Linux 实例上,您将指定设备为 /dev/sdX(尽管现代 Linux 内核仍会将此设备显示为 /dev/xvdX,并带有指向 /dev/sdX 的符号链接)。此外,Windows 实例会将实例存储卷格式化为 NTFS(尽管默认情况下,卷的格式为 ext3)。
AWS 详细说明了可用的实例存储和分配情况他们的文件。