Change-Id: I7bacbdd9a0a0914be507758436f7b9ceb465654c
2.6 KiB
Migrate instances
Note
This documentation is about cold-migration. For live-migration usage,
see live-migration-usage
.
When you want to move an instance from one compute host to another,
you can use the openstack server migrate
command. The scheduler
chooses the destination compute host based on its settings. This process
does not assume that the instance has shared storage available on the
target host. If you are using SSH tunneling, you must ensure that each
node is configured with SSH key authentication so that the Compute
service can use SSH to move disks to other nodes. For more information,
see cli-os-migrate-cfg-ssh
.
To list the VMs you want to migrate, run:
$ openstack server list
Use the
openstack server migrate
command.$ openstack server migrate VM_INSTANCE
To migrate an instance and watch the status, use this example script:
#!/bin/bash # Provide usage usage() { echo "Usage: $0 VM_ID" exit 1 } [[ $# -eq 0 ]] && usage VM_ID=$1 # Show the details for the VM echo "Instance details:" openstack server show ${VM_ID} # Migrate the VM to an alternate hypervisor echo -n "Migrating instance to alternate host " openstack server migrate ${VM_ID} while [[ "$(openstack server show ${VM_ID} -f value -c status)" != "VERIFY_RESIZE" ]]; do echo -n "." sleep 2 done openstack server resize --confirm ${VM_ID} echo " instance migrated and resized." # Show the details for the migrated VM echo "Migrated instance details:" openstack server show ${VM_ID} # Pause to allow users to examine VM details read -p "Pausing, press <enter> to exit."
Note
If you see the following error, it means you are either running the
command with the wrong credentials, such as a non-admin user, or the
policy.json
file prevents migration for your user:
Policy doesn't allow os_compute_api:os-migrate-server:migrate to be performed. (HTTP 403)
Note
If you see the following error, similar to this message, SSH tunneling was not set up between the compute nodes:
ProcessExecutionError: Unexpected error while running command.
Stderr: u Host key verification failed.\r\n
The instance is booted from a new host, but preserves its configuration including instance ID, name, IP address, any metadata, and other properties.