qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] live migration between different qemu versions


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] live migration between different qemu versions
Date: Tue, 12 Jan 2016 10:04:45 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

* Alexey (address@hidden) wrote:
> Hello,
> 
> On 2016-01-12 12:19, Dr. David Alan Gilbert wrote:
> >* Alexey (address@hidden) wrote:
> >>Hi David.
> >>
> >>On 2016-01-11 22:51, Dr. David Alan Gilbert wrote:
> >>>* Alexey (address@hidden) wrote:
> >>>>Hello.
> >>>
> >>>Hi,
> >>>
> >>>>I have two servers between which I need have live migration.
> >>>>
> >>>>First server have QEMU emulator version 2.3.0
> >>>>Second server have QEMU emulator version 2.5.0
> >>>>
> >>>>Migration command look like this:
> >>>>/usr/bin/virsh migrate --live DOMAIN_NAME --migrateuri
> >>>>tcp://second.server
> >>>>qemu+ssh://second.server/system --verbose
> >>>>
> >>>>I got next error on console:
> >>>>error: operation failed: migration job: unexpectedly failed
> >>>>
> >>>>And next error in log on second server:
> >>>>2016-01-11T15:07:12.888647Z qemu-system-x86_64: Length too large:
> >>>>/address@hidden/efi-virtio.rom: 0x32000 > 0x2d000: Invalid argument
> >>>>2016-01-11T15:07:12.888685Z qemu-system-x86_64: error while loading
> >>>>state
> >>>>for instance 0x0 of device 'ram'
> >>>>2016-01-11T15:07:12.889733Z qemu-system-x86_64: load of migration
> >>>>failed:
> >>>>Invalid argument
> >>>>
> >>>>In my libvirt domain I have option <rom bar="off"/>.
> >>>>
> >>>>I need to do a live migration in any possible way. How can I do this
> >>>>one?
> >>
> >>>Is the efi-virtio ROM that you're using on the two versions the same
> >>>identical size?
> >
> >>No, I have different efi-virtio.rom files, and I try to find a way which
> >>allows me not to copy the same efi-virtio.rom to all servers.
> >
> >Right, the error does look like it's just complaining about the ROM size:
> >
> >  2016-01-11T15:07:12.888647Z qemu-system-x86_64: Length too large:
> >  /address@hidden/efi-virtio.rom: 0x32000 > 0x2d000: Invalid argument
> >
> >It copes with small variations, but as soon as it flips over a 4K (?)
> >boundary then it has nowhere to put the extra data coming from the
> >larger ROM.
> old server with qemu 2.3.0:
> -rw-r--r-- 1 root root 203264 Nov 21  2014 /usr/lib/ipxe/qemu/efi-virtio.rom
> 
> new server with qemu 2.5.0:
> -rw-r--r-- 1 root root 184320 Oct 19  2014 /usr/lib/ipxe/qemu/efi-virtio.rom
> 
> See, that destination server has smaller rom than source.
> I interested in way which I could do live migration between different ROMs.

You can't do it if the ROMs dont approximately match in size;  what happens here
is that the 2.3.0 machine allocates just over 203k for the ROM (203264=0x31A00
and it's rounded that upto 0x32000).
On the destination it's size is based on the 184320 (=0x2d000), so it hasn't
got room to receive the larger ROM.
One way to fix this is to pad the ROMs; so just adding blank space to the end
of the newer efi-virtio.rom to make it the same size as the old one.

> Also I interested in migration in both side: from old to new and from new to
> old.

OK, but note that backwards migration isn't tested much in
upstream qemu.

> >>>Also, can you post the commandline that you're using please.
> >>I already done this in my first email: virsh migrate...
> >>>>/usr/bin/virsh migrate --live DOMAIN_NAME --migrateuri
> >>>>tcp://second.server
> >>>>qemu+ssh://second.server/system --verbose
> >Do you mean running domain command line?
> >I meant for the QEMU itself; but if we've already found the ROMs are
> >different sizes, lets fix that first and see how you go.
> Do you mean command line of running domain?
> 
> qemu-system-x86_64 -enable-kvm -name 208664-73 -S -machine
> pc-i440fx-1.7,accel=kvm,usb=off -cpu
> kvm64,+lahf_lm,+popcnt,+sse4.2,+sse4.1,+ssse3,+ss,-mca,-mce -m 1024
> -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid
> 08cf6bf2-a701-4a00-a0cb-4ecbe514c3d7 -no-user-config -nodefaults -chardev 
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/208664-73.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown
> -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device
> virtio-scsi-pci,id=scsi0,num_queues=4,bus=pci.0,addr=0x4 -device
> virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive 
> file=/dev/disk/vbd/208664-73,if=none,id=drive-scsi0-0-0-0,format=raw,cache=none,discard=unmap,aio=native
> -device 
> scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2
> -netdev tap,fd=53,id=hostnet0,vhost=on,vhostfd=54 -device 
> virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:00:40:b9,bus=pci.0,addr=0x3,rombar=0
> -chardev pty,id=charserial0 -device
> isa-serial,chardev=charserial0,id=serial0 -chardev 
> socket,id=charchannel0,path=/var/lib/libvirt/qemu/208664-73.agent,server,nowait
> -device 
> virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0
> -device usb-mouse,id=input0 -device usb-kbd,id=input1 -vnc [::]:12,password
> -device VGA,id=video0,vgamem_mb=16,bus=pci.0,addr=0x2 -device
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -object
> rng-random,id=objrng0,filename=/dev/random -device 
> virtio-rng-pci,rng=objrng0,id=rng0,max-bytes=1024,period=2000,bus=pci.0,addr=0x7
> -msg timestamp=on

OK, nothing too unusual there.

Dave

> >
> >Dave
> >
> >>
> >>Regards,
> >>Alexey Mochkin.
> >--
> >Dr. David Alan Gilbert / address@hidden / Manchester, UK
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

[Prev in Thread] Current Thread [Next in Thread]