0

ボリューム (ルートデバイスまたは接続されたボリューム) のないインスタンスを持つことは可能ですか?
instance_ids が [i-120cd3fe,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  

出力-すべき: [なし]

4

2 に答える 2

3

ルート ボリュームがないとインスタンスを作成できません。そのため、ブロック デバイス マッピングには常に少なくとも 1 つのボリュームが表示されます。

私はそれについて間違っています。インスタンス ストアに基づく AMI を立ち上げてから長い時間が経ちましたが、それらが存在することさえ忘れていました。インスタンス ストアに基づく AMI は、ブロック デバイス マッピングでルート ボリュームを記述しないため、そのようなインスタンスがあり、EBS ボリュームがアタッチされていない場合、ブロック デバイス マッピングは空になります。

EBS ベースのインスタンスの場合、ブロック デバイス マッピングには、インスタンスからそのボリュームを明示的にデタッチしていない限り、インスタンスが停止していても (少なくとも) 常にルート ボリュームが含まれます。

于 2015-06-03T15:14:24.710 に答える
0

少なくともインスタンスが現在実行されていない場合は、絶対に可能です。

起動しないインスタンスから自分を救うために使用される一般的な戦術を検討してください。

インスタンスを停止します。

ルート ボリュームをデタッチして、稼働中のインスタンスにアタッチして問題を修復できるようにします。

ルート EBS ボリュームがインスタンスの唯一のボリュームである場合、ボリュームのないインスタンスがここにあるはずです。

その他の憶測:

確認はできませんが、エフェメラル ディスクを使用するインスタンス ストア インスタンスもこれに一致する可能性があります。

実行中のインスタンスからルート EBS ボリュームを強制的に切り離し、ボリュームのない状態のままにしておくことができるようです。

EBS ボリュームがデタッチされ、削除される可能性があるため、インスタンス終了後、一時的にこの状態になることもあります。(終了したインスタンスは、終了後もしばらくの間インスタンスとして表示されるように見えます)。

于 2015-06-03T22:15:25.663 に答える