我实际上是基于 Alestic.com 的 alestic-git 项目创建一个定制脚本,以便为 EBS 支持的 AMI 实例创建我自己的 Ubuntu Precise 12.04 定制 ami 映像。
我遇到的有趣事情发生在注册 AMI 并从这个新的 AMI 文件启动实例之后。一切开始都很好,但不知何故,临时设备 (/dev/sdb) 根本没有显示或被检测到。EC2 元数据显示 ephemeral0 在 /dev/sdb 中可用,但实例本身没有检测到或没有 /dev/xvdb 设备存在。
我尝试过无数种方法来找出原因,但仍然困惑不解。
我忘了说我正在尝试创建一个 64 位图像并在 m1.medium 和 micro 实例上对其进行了测试。
有人知道发生了什么事吗?
答案1
正如你已经意识到的,亚马逊 EC2实例类型t1.micro
根本不带有临时存储,而m1.small
和c1.medium
实例类型可以随时使用和使用临时/mnt
存储/swap
。
但请注意相关的警告:虽然所有较大的实例类型原则上都带有临时存储,但默认情况下它不一定会默认附加/格式化/安装到大多数 Linux 和 UNIX 实例类型上(但对于 Windows 实例是这样的),而是仅适用于 m1.small
和c1.medium
实例类型(这背后的逻辑我无法理解,猜想它只是必须暂时作为历史事实接受)。
因此,如果您想提供这种充足且免费的存储(当然,这只能用于您可以承受丢失或轻松重建的严格临时数据),则需要在大多数较大的实例类型上自行连接/安装/格式化临时存储设备。
文档Amazon EC2 实例存储提供更多细节,例如 实例类型上可用的实例存储和实例存储设备名称。
答案2
我认为您必须在创建实例期间(而不是在 AMI 创建过程中)进行临时设备块关联。这是使用命令-b
的参数完成的ec2-run-instances
。