Use snapshots to migrate instances
This guide can be used to migrate an instance between different
clouds.
To use snapshots to migrate instances from OpenStack projects to
clouds, complete these steps.
In the source project:
Create_a_snapshot_of_the_instanceDownload_the_snapshot_as_an_image
In the destination project:
Import_the_snapshot_to_the_new_environmentBoot_a_new_instance_from_the_snapshot
Note
Some cloud providers allow only administrators to perform this
task.
Create a snapshot of the
instance
-
Shut down the source VM before you take the snapshot to ensure
that all data is flushed to disk. If necessary, list the instances to
view the instance name:$ openstack server list +--------------------------------------+------------+--------+------------------+--------------------+-------------------------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+------------+--------+------------------+--------------------+-------------------------+ | d0d1b7d9-a6a5-41d3-96ab-07975aadd7fb | myInstance | ACTIVE | private=10.0.0.3 | ubuntu-16.04-amd64 | general.micro.tmp.linux | +--------------------------------------+------------+--------+------------------+--------------------+-------------------------+ -
Use the
openstack server stopcommand to shut down the
instance:$ openstack server stop myInstance -
Use the
openstack server listcommand to confirm that the
instance shows aSHUTOFFstatus:$ openstack server list +--------------------------------------+------------+---------+------------------+--------------------+-------------------------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+------------+---------+------------------+--------------------+-------------------------+ | d0d1b7d9-a6a5-41d3-96ab-07975aadd7fb | myInstance | SHUTOFF | private=10.0.0.3 | ubuntu-16.04-amd64 | general.micro.tmp.linux | +--------------------------------------+------------+---------+------------------+--------------------+-------------------------+ -
Use the
openstack server image createcommand to take a
snapshot:$ openstack server image create --name myInstanceSnapshot myInstanceIf snapshot operations routinely fail because the user token times
out while uploading a large disk image, consider configuring nova to use
service user tokens <service_user_token>. -
Use the
openstack image listcommand to check the status
until the status isACTIVE:$ openstack image list +--------------------------------------+---------------------------+--------+ | ID | Name | Status | +--------------------------------------+---------------------------+--------+ | ab567a44-b670-4d22-8ead-80050dfcd280 | myInstanceSnapshot | active | +--------------------------------------+---------------------------+--------+
Download the snapshot as an
image
-
Get the image ID:
$ openstack image list +--------------------------------------+---------------------------+--------+ | ID | Name | Status | +--------------------------------------+---------------------------+--------+ | ab567a44-b670-4d22-8ead-80050dfcd280 | myInstanceSnapshot | active | +--------------------------------------+---------------------------+--------+ -
Download the snapshot by using the image ID that was returned in
the previous step:$ openstack image save --file snapshot.raw ab567a44-b670-4d22-8ead-80050dfcd280Note
The
openstack image savecommand requires the image ID
and cannot use the image name. Check 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 direct upload to a machine (scp).
Import the snapshot
to the new environment
In the new project or cloud environment, import the snapshot:
$ openstack image create --container-format bare --disk-format qcow2 \
--file snapshot.raw myInstanceSnapshot
Boot a new instance from
the snapshot
In the new project or cloud environment, use the snapshot to create
the new instance:
$ openstack server create --flavor m1.tiny --image myInstanceSnapshot myNewInstance