Hi all, As I am doing some tests with qemu, I realized that the way it does 'migrate -i tcp:DEST:444' is not the same as 'libvirt migrate --copy-storage-inc'. Basically qemu uses the same stream as RAM migration and libvirt takes advantage of NBD transfer. With virsh migrate-setspeed I observed that one can only control the transfer throughput of RAM, but not disk synchronization. At least this is what I can see in bmon when doing a migration with incremental copy. The question is: Am I missing something or it is not implemented? Thank you guys!
Michal Privoznik
2014-Feb-14 10:58 UTC
Re: [libvirt-users] Adjust disk image migration (NBD)
On 14.02.2014 10:40, Joaquim Barrera wrote:> Hi all, > > As I am doing some tests with qemu, I realized that the way it does > 'migrate -i tcp:DEST:444' is not the same as 'libvirt migrate > --copy-storage-inc'. Basically qemu uses the same stream as RAM > migration and libvirt takes advantage of NBD transfer. > > With virsh migrate-setspeed I observed that one can only control the > transfer throughput of RAM, but not disk synchronization. At least this > is what I can see in bmon when doing a migration with incremental copy. > > The question is: Am I missing something or it is not implemented? > > Thank you guys! >I think this is actually a qemu bug. Libvirt passes the correct values: 2014-02-14 10:52:08.010+0000: 27701: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon=0x7f06cc00ea20 buf={"execute":"drive-mirror","arguments":{"device":"drive-virtio-disk0","target":"nbd:masina:49153:exportname=drive-virtio-disk0","speed":1048576,"sync":"full","mode":"existing"},"id":"libvirt-15"} ... 2014-02-14 10:53:51.169+0000: 27701: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon=0x7f06cc00ea20 buf={"execute":"migrate_set_speed","arguments":{"value":1048576},"id":"libvirt-221"} 2014-02-14 10:53:51.204+0000: 27701: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon=0x7f06cc00ea20 buf={"execute":"migrate","arguments":{"detach":true,"blk":false,"inc":false,"uri":"fd:migrate"},"id":"libvirt-223"} However I observe what you do - disk migration is not shaped, while internal state is. Michal
Stefan Hajnoczi
2014-Feb-24 15:16 UTC
Re: [libvirt-users] [Qemu-devel] Adjust disk image migration (NBD)
On Fri, Feb 14, 2014 at 11:58:56AM +0100, Michal Privoznik wrote:> On 14.02.2014 10:40, Joaquim Barrera wrote: > > Hi all, > > > > As I am doing some tests with qemu, I realized that the way it does > > 'migrate -i tcp:DEST:444' is not the same as 'libvirt migrate > > --copy-storage-inc'. Basically qemu uses the same stream as RAM > > migration and libvirt takes advantage of NBD transfer. > > > > With virsh migrate-setspeed I observed that one can only control the > > transfer throughput of RAM, but not disk synchronization. At least this > > is what I can see in bmon when doing a migration with incremental copy. > > > > The question is: Am I missing something or it is not implemented? > > > > Thank you guys! > > > > I think this is actually a qemu bug. Libvirt passes the correct values: > > > 2014-02-14 10:52:08.010+0000: 27701: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon=0x7f06cc00ea20 buf={"execute":"drive-mirror","arguments":{"device":"drive-virtio-disk0","target":"nbd:masina:49153:exportname=drive-virtio-disk0","speed":1048576,"sync":"full","mode":"existing"},"id":"libvirt-15"} > > > ... > > 2014-02-14 10:53:51.169+0000: 27701: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon=0x7f06cc00ea20 buf={"execute":"migrate_set_speed","arguments":{"value":1048576},"id":"libvirt-221"} > > > 2014-02-14 10:53:51.204+0000: 27701: debug : qemuMonitorIOWrite:504 : QEMU_MONITOR_IO_WRITE: mon=0x7f06cc00ea20 buf={"execute":"migrate","arguments":{"detach":true,"blk":false,"inc":false,"uri":"fd:migrate"},"id":"libvirt-223"} > > > However I observe what you do - disk migration is not shaped, while internal state is.Thanks for raising this. I noticed that mirror_run() does not throttle the first loop where it populates the dirty bitmap using bdrv_is_allocated_above(). The main copy loop does take the speed limit into account but perhaps that's broken too. Paolo, Jeff: Any ideas? Stefan
Reasonably Related Threads
- Re: [Qemu-devel] Adjust disk image migration (NBD)
- Adjust disk image migration (NBD)
- Bug in DOMINFO command when balloon driver is used on a vm with more then 8 GB of MaxMemory ?
- Fail in virDomainUpdateDeviceFlags (libvirt-4.0.0 + Qemu-kvm 2.9.0 + Ceph 10.2.10)
- Re: libvirt 1.2.10 and latest EL6 qemu-kvm