如何使用ebs根设备访问Windows EC2实例上的实例存储?


8

我已经创建了一个AMI,但是我想将实例存储用于一些我想运行的科学程序。他们基本上是从磁盘上读取一堆东西,然后将它们写回到磁盘上,然后汇总这些结果。它必须在Windows上,因为这是编写这些程序的平台。我不需要文件持久化,我也不在乎是否会丢失文件,因此我想为此使用实例存储,并且不会产生任何I / O费用。

因此,我启动了AMI,但是当我进行远程访问时,我只会看到我的EBS根设备。如何安装可用的实例(临时)存储?


2
您或者需要通过将块设备映射-b /dev/xvdb=ephemeral0传递给来指定块设备映射(例如)ec2-run-instances,或者它们必须是您的AMI的一部分(即,添加了ec2-register)。请参阅文档以获取有关可用实例存储量以及可以从中访问哪个设备/挂载点的详细信息。
cyberx86

1
@ cyberx86谢谢。块设备映射是我需要的术语。现在我对此有很多谷歌的想法。我会仔细看看的。谢谢!您的回答似乎更像是一个答案,而不是对我的评论。
oob

这是我的一个坏习惯,将答案作为评论发布(评论更快,更容易编写,并且因错误而受到惩罚)。虽然我经常使用EC2,但是我不使用Windows服务器-因此,发表评论的原因。我已经将其发布为通用答案。
cyberx86

Answers:


8

尽管除t1.micro之外的所有实例都分配了“实例存储”(即临时存储),但默认情况下不一定必须附加该存储。在大多数情况下,具有EBS根卷的实例将具有零个或一个附加的临时卷。

实例可用的临时磁盘标记为ephemeral[0-3]。启动实例后,您将无法将它们附加到实例上。(另一方面,您可以在实例运行时将EBS卷添加到实例)。

由于临时磁盘与EBS卷一起是块设备,因此AWS将这些磁盘到实例设备的映射称为“块设备映射”,可以使用-b--block-device-mapping参数(可以多次使用)指定它们。

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

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

    ec2-run-instances ami-xxxxxxxx -b / dev / xvdb = ephemeral0 -b / dev / xvdc = ephemeral1 -b / dev / xvdd = ephemeral2 -b / dev / xvde = ephemeral3
  2. 注册一个新的AMI,显式指定临时磁盘映射(和EBS根目录):

    ec2-register -n Image_Name -d Image_Description --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在其文档中详细介绍了可用的实例存储和分配。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.