Export instance from OpenStack with Ceph/rbd backend.

Submitted by alvaro.soto on Fri, 03/18/2016 - 02:28

Suppose that you want to migrate an instance from differents infrastructures or you want to handover and instance information to a client, so you need to recover (export) the instance volumes information.

Step 1: Get the instance UUID.

root@ceph-admin:~# nova list | grep InstanceToExport
| 2bdda36c-f0dd-4fa5-bb8b-3df346b17002 | InstanceToExport  | SHUTOFF | -          | Shutdown    | vlan8=; vlan1837=; vlan1829=  |

An UUID from the instance is returned here: 2bdda36c-f0dd-4fa5-bb8b-3df346b17002

Step 2: Get the volume UUID from the instance, using the UUID returned in step 1

root@ceph-admin:~# cinder list | grep 2bdda36c-f0dd-4fa5-bb8b-3df346b17002
| fdb279c5-24bb-45d7-a86a-a33f4c285b5a |   in-use  |       None      | 100  |     None    |   true   | 2bdda36c-f0dd-4fa5-bb8b-3df346b17002 |

An UUID from the volume is returned here: fdb279c5-24bb-45d7-a86a-a33f4c285b5a

Step 3: Search from the volume on the pool in ceph, in my case this volume is stored in the cinder-volumes pool

root@ceph-admin:~# rbd --pool cinder-volumes ls | grep fdb279c5-24bb-45d7-a86a-a33f4c285b5a

By this time you have the volume name in the pool: volume-fdb279c5-24bb-45d7-a86a-a33f4c285b5a

Step 4: Export the volume.

root@ceph-admin:~# rbd export cinder-volumes/volume-fdb279c5-24bb-45d7-a86a-a33f4c285b5a ./InstanceToExport.img
Exporting image: 100% complete...done.

root@ceph-admin:~# ll -ltrh *.img
-rw-r--r-- 1 root root 100G Feb 17 17:09 InstanceToExport.img

Step 5: Compress, so you can scp or rsync faster, this step is optional but highly recommended.

root@ceph-admin:~# gzip -9 InstanceToExport.img
root@ceph-admin:~# ll *.gz
-rw-r--r-- 1 root root 1.2G Feb 17 18:02 InstanceToExport.img.gz

Step 6: Checksum, to be sure that you don't have any problem copying

root@ceph-admin:~# md5sum InstanceToExport.img >InstanceToExport.img.md5
root@ceph-admin:~# md5sum InstanceToExport.img.gz >InstanceToExport.img.gz.md5
root@ceph-admin:~# cat InstanceToExport.img.md5
5504cdf2261556135811fdd5787b33a5  InstanceToExport.img
root@ceph-admin:~# cat InstanceToExport.img.gz.md5
8a76c28d404f44cc43872e69c9965cd2  InstanceToExport.img.gz

Note: the md5sum InstanceToExport.img is going to take a lot! in my volume (100G) like 20 minutes, omit if you want.