Using Boto to find to which device and EBS Volume is mounted

前端 未结 4 946
清歌不尽
清歌不尽 2021-02-01 10:11

How do I find to which device an EBS Volume is mounted with Python Boto v2.0?

boto.ec2.Volume has some interesting properies like attachment_state and

4条回答
  •  再見小時候
    2021-02-01 10:52

    I believe attach_data.device is what your looking for. part of volume.

    Heres an example, not sure if this is the best way, but it outputs volumeid, instanceid, and attachment_data something like:

    Attached Volume ID - Instance ID - Device Name
    vol-12345678 - i-ab345678 - /dev/sdp
    vol-12345678 - i-ab345678 - /dev/sda1
    vol-12345678 - i-cd345678 - /dev/sda1
    
    
    import boto
    ec2 = boto.connect_ec2()
    res = ec2.get_all_instances()
    instances = [i for r in res for i in r.instances]
    vol = ec2.get_all_volumes()
    def attachedvolumes():
        print 'Attached Volume ID - Instance ID','-','Device Name'
        for volumes in vol:
            if volumes.attachment_state() == 'attached':
                filter = {'block-device-mapping.volume-id':volumes.id}
                volumesinstance = ec2.get_all_instances(filters=filter)
                ids = [z for k in volumesinstance for z in k.instances]
                for s in ids:
                     print volumes.id,'-',s.id,'-',volumes.attach_data.device
    # Get a list of unattached volumes           
    def unattachedvolumes():
       for unattachedvol in vol:
           state = unattachedvol.attachment_state()
       if state == None:
            print unattachedvol.id, state
    attachedvolumes()
    unattachedvolumes()
    

提交回复
热议问题