That's cool though because virsh allows us to migrate virtual machines to different hosts, assuming they are sharing the same storage pool. But our hosts aren't. Ahh but the current version of virsh allows us to migrate virtual machines which aren't using shared storage. Sweet. But is an even reasonably recent version of virsh is available for Ubuntu? No. Poop. Compile the new kvm from source? Migrate to Debian over the weekend? Spend zillions on vmware? Ummmmmm.. no, no and.. no (funnily enough).
But we can do custom hack foo code (and so can you)!! :)
$ ./manage.vm.sh This command needs to be run as root (use sudo) $ sudo ./manage.vm.sh usage: manage.vm.sh list: List all guests on the current host usage: manage.vm.sh backup vmname: Shutdown, backup & restart a guest usage: manage.vm.sh migrate vmname destination host="": Shutdown, copy, define remote, destroy local & startup remote $ sudo ./manage.vm.sh migrate ansible feathertail Considering migrating ansible to feathertail ..testing to see if we have the correct permissions on the remote host ..yay! connectivity with remote host established Parsing KVM configuration for ansible ..assuming config file is at /etc/libvirt/qemu/ansible.xml ..attempting to determine datafile location ..ansible is configured to use /var/lib/libvirt/images/ansible/tmpfyi1SJ.qcow2 Checking to see if the guest is running !!WARNING guest is still running, initiating shutdown. Is an outage OK? .. ..enter L8 to verify: L8 ..acknowledging verification commencified ..shutting down, please wait :) :) :) ansible now not running Are you sure you want to proceed migrating ansible to feathertail? ..enter Q2 to verify: Q2
..and so on. It actually works. Does cool stuff like;
- Automatically parses config files from /etc/libvirt/qemu/
- Will migrate a vm with multiple vm datafiles
- Renames local .xml and data files before undefining the vm. Read; roll-back.
- Prompts before shutting down a vm and again before migrating it.
- Copies .xml and data file(s) remotely via rsync.
- Defines the vm on the remote host and starts it.