Op 11-02-19 om 14:31 schreef Peter Krempa: > On Sun, Feb 10, 2019 at 12:11:42 +0100, Paul van der Vlis wrote: >> Hello, >> >> I use libvirt on machines without shared storage. My VM's have all one >> qcow2-disk, with the same name as the VM. >> >> When I want to migrate a VM, I check if there is an qcow2 image on the >> other host with that name. When that's not the case, I copy the image >> using rsync first. If the image excist, I don't do that, and I think >> that "--copy-storage-inc" will do it. > > Note that using the 'inc' or incremental mode will copy only the data in > the top level image rather than a full copy. This means that you need to> pre-create empty qcow2 files which point to the correct backing store. Hmm, I don't know what's a "top level image", I cannot find how to create an empty qcow2 file, and I don't know what's a "backing store". I miss some information, and I don't know where to find this info. >> But I don't know how intelligent "--copy-storage-inc" is. I use LVM >> inside the VM's, and it's possible that I have changed the size of a >> volume for example. > > Non shared storage migration preserves the guest visible state. > >> >> My questions: >> Is "--copy-storage-inc" intelligent enough for such tasks? > > If used with --tunelled you can only use it if you wish to migrate ALL > disks in such a VM and need to pre-create the correct files. > > If you wish to migrate only certain disks you need to stop using > --tunelled. > >> Is there documentation what is done during migration? Is it using rsync? > > Normally (if --tunneled is not used) it's using blockdev-mirror or > drive-mirror in qemu over an NBD connection to destination. > > In your case it's using the old storage migration protocol. > >> Is it possible to make the migration process more verbose? > > What do you mean by this? In case if --tunelled there's nothing we can > do though. Everything is done inside qemu. When I understand you well, it would be better to not-use "tunneled". >> Is what I do a good way? >> >> With regards, >> Paul van der Vlis >> >> BTW: this is what I do, sometimes the lines are broken wrong: >> ----------- >> # Rsync image when not on the other host: >> if test `ssh $other "if test -e /data/$vm.qcow2; then echo ja; else echo >> nee; fi"` = "nee"; then >> echo "rsync..." >> rsync /data/$vm.qcow2 $other://data/$vm.qcow2 >> if test $? = 0; then echo "gelukt"; else echo "niet gelukt"; exit; fi >> fi >> >> # migrate >> echo "migrate..." >> virsh migrate --live --p2p --tunnelled --copy-storage-inc --persistent > > As said above this implies the old storage migration protocol which > transports the data in the migration stream. This stream is then > tunelled over the libvirt connection. This is very inefficient and also > uses the old storage migration protocol which is obsolete and qemu will > attempt to remove it in the future. Thanks for your help, I will test how migration work without "tunneled". I guess I do not need a tunnel, I use allready SSH and a safe network connection. With regards, Paul van der Vlis >> --undefinesource --verbose $vm qemu+ssh://$other/system >> if test $? = 0; then echo "gelukt"; else echo "niet gelukt"; exit; fi >> ----------- >> >> >> -- >> Paul van der Vlis Linux systeembeheer Groningen >> https://www.vandervlis.nl/ >> >> _______________________________________________ >> libvirt-users mailing list >> libvirt-users@xxxxxxxxxx >> https://www.redhat.com/mailman/listinfo/libvirt-users -- Paul van der Vlis Linux systeembeheer Groningen https://www.vandervlis.nl/ _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users