简短问题: 我如何知道实例是否附有短暂存储?我是否必须使用" lsblk"来查看坐骑?在Linux上?
由于临时存储在实例停止时丢失,您需要知道是否连接了临时驱动器。要检查的第一件事是"根设备类型"例如,如果它是EBS,那么你不必担心丢失数据(除非EBS卷设置为'删除终止')。但是,如果它是"实例存储"实例启动时,您将丢失该驱动器上的数据。然后看看"根设备"和"阻止设备"并查看它们是否都与EBS卷相关联。这很容易。在多云的情况下,当您将短暂的驱动器附加到实例时(在启动时),但控制台并不像它对其他EBS卷那样表示它。此外,您可能需要自己手动安装驱动器......如何通过AWS控制台轻松了解是否连接了短暂的驱动器?
答案 0 :(得分:9)
在任何ec2实例上,您都可以调用http服务来查询实例详细信息,例如看附加的块设备映射:
curl http://169.254.169.254/latest/meta-data/block-device-mapping/
查看有关特定设备的详细信息:
curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral2
您将获得此设备的映射,例如:/dev/xvdb
答案 1 :(得分:3)
查看/etc/cloud/cloud.cfg - 应该在那里列出短暂内容:
mounts:
- [ ephemeral0, /media/ephemeral0, auto, "defaults" ]
- [ swap, none, swap, sw, "0", "0" ]
然后在fstab中你应该看到如下条目:
/dev/sda2 /media/ephemeral0 auto defaults,comment=cloudconfig 0 2
答案 2 :(得分:0)
不是您想要听到的答案,但您无法从控制台说出这一点。正如您所指出的,将数据写入短暂驱动器需要做两件事
1)你需要实际安装dev。没有办法从控制台告诉任何开发者 2)您需要通过AMI中的块映射将该dev暴露给实例。
您可以假设大多数(但不是全部)公共AMI将映射所有可能的临时驱动器(尽管hi1.8xl有24个这样的驱动器),因此您只需要检查实例类型是否实际上支持短暂的驱动因为许多人没有。
如果您希望避免使用临时驱动器,则应将部署限制为已创建的AMI,并从块设备映射中删除任何临时驱动器。