Attaching Volumes

Let’s create our first volume. This is a straightforward euca-create-volume with the arguments -s 1 (for the size of the volume in gigabytes) and -z nova (which is nova as the default) for the zone. It will return with the volume name and its status (creating). You can check on the status with the euca-describe-volumes.

$ euca-create-volume -s 1 -z nova
VOLUME    vol-00000003    1   creating (book, None, None, None)
2011-07-11T00:08:34Z

Caution

Volumes are only currently supported with the Amazon EC2 API. As such, you will need to use euca2ools if you want to use volumes with your instances.

Once the volume has been created, attach it to a running instance with the euca-attach-volume.

# euca-attach-volume vol-00000003 -i  i-00000004 -d /dev/vdb
VOLUME    vol-00000003
# euca-describe-volumes
VOLUME    vol-00000001     1        nova    error (book, nova-controller, None, None)
2011-07-10T22:55:28Z
VOLUME    vol-00000002     1        nova    error (book, nova-controller, None, None)
2011-07-10T22:57:02Z
VOLUME    vol-00000003     1        nova    in-use (book, nova-controller,
i-00000004[nova-controller], /dev/vdb)    2011-07-11T00:08:34Z

Volumes will show up as raw devices at /dev/vdb. As with any raw device, you will need to make a filesystem on it and then mount it.

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda              1.4G  549M  767M  42% /
devtmpfs              246M  144K  245M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   40K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
$ sudo mkdir /volumes
$ sudo mkfs -t ext3 /dev/vdb
$ sudo mount /dev/vdb /volumes
$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda              1.4G  549M  767M  42% /
devtmpfs              246M  144K  245M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   40K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
/dev/vdb             1008M   34M  924M   4% /volumes

Caution

Volumes may only be attached to one instance at a time. Volumes cannot be shared between instances concurrently.

Once you are done using the volume, you can umount the volume as any other. Now that the volume is no longer mounted on our instance, we can safely detach it with the euca-detach-volume.

$ sudo umount /volumes
ubuntu@i-00000004:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda              1.4G  549M  767M  42% /
devtmpfs              246M  144K  245M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   40K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
# euca-describe-volumes
VOLUME    vol-00000003  1 nova in-use
(book, nova-controller, i-00000004[nova-controller], /dev/vdb) 2011-07-11T00:08:34Z
# euca-detach-volume vol-00000003
VOLUME    vol-00000003
# euca-describe-volumes
VOLUME    vol-00000003 1 nova available (book, nova-controller, None, None)
    2011-07-11T00:08:34Z

Finally, you can completely destroy the detached volume with the euca-delete-volume. This will take a while, as the volume will be completely zeroed out to prevent other users from seeing this data.

# euca-describe-volumes
VOLUME    vol-00000003 1 nova available (book, nova-controller, None, None)
    2011-07-11T00:08:34Z
# euca-delete-volume vol-00000003
VOLUME    vol-00000003
# euca-describe-volumes
VOLUME    vol-00000003 1 nova deleting (book, nova-controller, None, None)
    2011-07-11T00:08:34Z
# euca-describe-volumes
#