有没有可能没有任何卷(根设备或附加卷)的实例?
假设instance_ids为i-120 cd3fe,i-23e46634。
是否有可能在AWS中没有任何附加卷而存在任何实例?
conn=get_ec2_connection(region=region)
instances = conn.get_only_instances(instance_ids=instance_ids)
volumes_list=[]
for instance in instances:
dev_mappings = instance.block_device_mapping
for block_device in dev_mappings.keys():
volume_id = dev_mappings[block_device].volume_id
volumes_list.append(volume_id)
print volumes_list
输出-应该是:无
发布于 2015-06-03 07:14:24
如果没有根卷,就不能有一个实例。因此,在块设备映射中总是至少有一个卷列出。
我错了。自从我推出一个支持AMI的实例商店以来,我已经很久没有忘记它们的存在了。实例存储支持的AMI不描述它在块设备映射中的根卷,因此如果您有这样一个实例,并且没有附加EBS卷,则块设备映射将为空。
对于基于EBS的实例,块设备映射将始终包含根卷(至少对于已停止的实例),除非您已经显式地将该卷从实例中分离出来。
发布于 2015-06-03 14:15:25
这是绝对有可能的,至少如果实例目前没有运行。
考虑一下用于将自己从无法启动的实例中解救出来的常见策略:
停止实例。
分离根卷,以便将其附加到工作实例并修复问题。
在这里,如果根EBS卷是实例的唯一卷,则应该有一个没有卷的实例。
其他推测:
我无法确定,但可以想象使用临时磁盘的实例存储实例也可能与此匹配。
您可能会强行将根EBS卷从正在运行的实例中分离出来,使其处于无卷状态,认为它会很快崩溃。
在终止后,实例也可能短暂地处于这种状态,因为它们的EBS卷被分离并可能被删除。(终止的实例在终止后很短的时间内仍然以实例的形式出现)。
https://stackoverflow.com/questions/30620193
复制