Requirements :
Bright OpenStack 8.0/7.3 Installed.
OpenStack Installed and working.
Shared storage ( as we will not be migrating block devices )
Hypervisors of the same hardware and cpu type, in theory, if you configured your hypervisors cpu model in nova.conf and manipulated your supported CPUflags for libvirtd, Live migration should work on non-homogeneous hardware.
For the purpose of this document we are going to assume that you either have a homogeneous hardware or at least a homogeneous aggregate of hosts in which your virtual machines run on.
Configuration and setup:
Configure libvirtd on your software image to allow tcp listening
Match the following parameters in /cm/images/<image>/etc/libvirt/libvirtd.conf
listen_tls = 0 listen_tcp = tcp_port = "16509"
Match the following parameters in /cm/image /cm/images/<image>/etc/etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"
Configure nova live_migration_uri :
On the headnode :
cmsh configurationoverlay use openstackcontrollers customizations add /etc/nova/nova.conf entries add DEFAULT live_migration_uri “qemu+ssh://%s/system”
Push the changes made from the software image to your hypervisors :
device imageupdate -n <node-list>
Finally restart libvirtd on all your hypervisors nodes :
device foreach -n <node-list> ( services ; restart libvirtd ; restart openstack-nova-compute )
Check libvirtd is listening on correct TCP port:
Ssh into one of your hypervisors and confirm that libvirtd is listening on port 16509 :
# netstat -apnt | grep libvirtd
tcp 0 0 0.0.0.0:16509 0.0.0.0:* LISTEN 7318/libvirtd tcp6 0 0 :::16509 :::* LISTEN 7318/libvirtd
Perform a live migration
To perform live migration on your machine, from your headnode as an admin user :
nova live-migration <server-id> <hypervisor hostname>
For example :
nova live-migration 9b182365-fe04-4ce5-bd21-a5210c8f1dc3 node006
Check your server and in a while you should see your VM in a new host :
openstack server show d5783cc5-943b-4aea-8b06-79c8c2f2ab02 | grep host | OS-EXT-SRV-ATTR:host | node006