migrate_kvm_vm
This is an old revision of the document!
KVM Migrate VM to other host
Example migration from iSCSI backed storage host to other host with local LVM based storage.
- List the storage device, here 'vmns2'.
multipath -ll vmns2 vmns2 (3600140548f12334da9fed3985da3d6df) dm-14 SYNOLOGY,iSCSI Storage size=64G features='0' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 6:0:0:17 sdo 8:224 active ready running `- 7:0:0:17 sdaf 65:240 active ready running
- Shutdown the VM.
virsh shutdown ns2
- Create compressed image from storage. I used 'pv' to show progress.
fdisk -l /dev/mapper/vmns2 Disk /dev/mapper/vmns2: 68.7 GB, 68719476736 bytes dd if=/dev/mapper/vmns2 bs=1M | pv -s 68719476736 | gzip -c > /var/tmp/ns2-disk-backup.img.gz
- Or use SSH direct:
dd if=/dev/mapper/vmdesktop bs=1M | pv -s 17179869184 | gzip -c | ssh -c arcfour benst@kvm1 'cat - > /var/tmp/desktop-disk-image.gz'
- Meanwhile… dump the xml.
virsh dumpxml ns2 > /tmp/ns2.xml
- Copy ns2.xml to new host and import. Edit file to change name / storage device etc…
virsh define /tmp/ns2.xml
- Create storage, same size as other host.
lvcreate -L 64G -n vmns2 vg_kvm1
- Copy image to new host, dd image to storage device.
gunzip -c ns2-disk-backup.img.gz | pv -s 68719476736 | dd of=/dev/vg_kvm1/vmns2 bs=1M 64GB 0:14:05 [77.5MB/s] [================================>] 100% 134217728+0 records in 134217728+0 records out 68719476736 bytes (69 GB) copied, 851.545 s, 80.7 MB/s
- Start vm on new host.
virsh start vmns2
- Disable autostart on old host.
virsh autostart --disable ns2
- Enable autostart on new host.
virsh autostart vmns2
- Clean up vm and storage on old host / NAS.
LV to qcow2 image
- Use qemu-img to convert from an lvm to qcow2 format
qemu-img convert -O qcow2 /dev/vg_name/lv_name/ /var/lib/libvirt/images/image_name.qcow2
- If you want the image compressed add '-c' right after the word convert.
- Edit the xml for the image
virsh edit image_name
- Modify the disk stanza, adding a type to the driver line; on the source line change 'dev' to 'file' and modify the path:
driver name='qemu' type='qcow2' source file='/var/lib/libvirt/images/image_name.qcow2'
- Shrink the file
qemu-img convert -c -O qcow2 source.qcow2 shrunk.qcow2
migrate_kvm_vm.1426512147.txt.gz · Last modified: 2015/03/16 13:22 by admin