Use snapshots to migrate instance
Some cloud providers allow only administrators to
perform these steps.
To use snapshots to migrate instances from OpenStack
projects to clouds, complete these steps:
Create a snapshot of the instance.
Download the snapshot as an image.
Import the snapshot to the new environment.
Boot a new instance from the snapshot.
Perform the and procedures in the source
project.
Perform the and in the destination
project.
Create a snapshot of the instance
Always shut down the source VM before you take the
snapshot to make sure that all data is flushed to
disk.
$ nova list
+--------------------------------------+------------+--------+------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+------------+--------+------------------------------+
| c41f3074-c82a-4837-8673-fa7e9fea7e11 | example | ACTIVE | private=10.0.0.3 |
+--------------------------------------+------------+--------+------------------------------+
$ nova stop example
Confirm that the instance shows a SHUTOFF
status.
$ nova list
+--------------------------------------+------------+---------+------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+------------+---------+------------------------------+
| c41f3074-c82a-4837-8673-fa7e9fea7e11 | example | SHUTOFF | private=10.0.0.3 |
+--------------------------------------+------------+---------+------------------------------+
Use the nova
image-create command to take a snapshot. Use the nova
image-list command to check the status until the status
is ACTIVE:
$ nova list
+--------------------------------------+------------+---------+------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+------------+---------+------------------------------+
| c41f3074-c82a-4837-8673-fa7e9fea7e11 | example | SHUTOFF | private=10.0.0.3 |
+--------------------------------------+------------+---------+------------------------------+
$ nova image-create --poll example examplesnapshot
Instance snapshotting... 50% complete
$ nova image-list
+--------------------------------------+---------------------------------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+---------------------------------+--------+--------+
| 657ebb01-6fae-47dc-986a-e49c4dd8c433 | cirros-0.3.2-x86_64-uec | ACTIVE | |
| 72074c6d-bf52-4a56-a61c-02a17bf3819b | cirros-0.3.2-x86_64-uec-kernel | ACTIVE | |
| 3c5e5f06-637b-413e-90f6-ca7ed015ec9e | cirros-0.3.2-x86_64-uec-ramdisk | ACTIVE | |
| f30b204e-1ce6-40e7-b8d9-b353d4d84e7d | examplesnapshot | ACTIVE | |
+--------------------------------------+---------------------------------+--------+--------+
Download the snapshot as an image
Get the image ID:
$ nova image-list
+--------------------------------------+------------------+--------+--------------------------------------+
| ID | Name | Status | Server |
+--------------------------------------+------------------+--------+--------------------------------------+
| f30b204e-1ce6-40e7-b8d9-b353d4d84e7d | examplesnapshot | ACTIVE | c41f3074-c82a-4837-8673-fa7e9fea7e11 |
+--------------------------------------+------------------+--------+--------------------------------------+
Download the snapshot by using the image ID that
was returned in the previous step:
$ glance image-download --file snapshot.raw f30b204e-1ce6-40e7-b8d9-b353d4d84e7d
The glance image-download
command requires the image ID and cannot use
the image name.
Ensure there is sufficient space on the
destination file system for the image
file.
Make the image available to the new environment,
either through http or with direct upload to a
machine (scp).
Import the snapshot to new environment
In the new project or cloud environment, import
the snapshot:
$ glance image-create --copy-from IMAGE_URL
Boot a new instance from the snapshot
In the new project or cloud environment, use the
snapshot to create the new instance:
$ nova boot --flavor m1.tiny --image EXAMPLE_SNAPSHOT NEW_INSTANCE