Skip to contentSkip to conversation

Is it possible to live migrate guest OS'es between different versions of kvm/qemu-kvm?

DISCUSSION Nils Cant 3 participants 7 messages Aug 26, 2010 – Sep 7, 2010 KVM

lore
Share & tools
lore

Nils Cant

author
#0 lore raw

Hi,

I currently have a couple of Debian KVM servers with all a different version of kvm or qemu-kvm.

I can live migrate a guest OS from one server to the other just fine, as long as the version of qemu-kvm is the same. (Thanks to Gleb Natapov who helped me solve my ARP announce problem yesterday)

However, when I try to migrate a guest to a server running a newer (or older) version of qemu-kvm, I run into problems. I think this is because the xml configuration differs slightly between version.

For example, if I try to migrate from a server running qemu-kvm 0.11.0 to one running qemu-kvm 0.12.4, I get the following error:

virt01:~# virsh migrate --live testserver qemu+ssh://192.168.1.7/system
error: internal error unable to reserve PCI address 0:0:3

When migrating from kvm 85 to qemu-kvm 0.11.0:

virt02:~# virsh migrate --live testserver qemu+ssh://192.168.1.2/system
error: Unknown failure

Migrating one from 0.12.4 to 0.11.0 just completely breaks libvirt, forcing me to kill -9 libvirtd and the kvm instance, etc.

I believe this is caused in part because different versions of qemu-kvm need different xml configurations. To run my testserver on 0.12.4 for example, I need to delete the lines with the PCI id's, just to be able to start the it.

So, is there a way to make this work? Perhaps without libvirt? Or tell libvirt to not send the config file when doing a live migrate, and use the xml in /etc/libvirt/qemu instead somehow?

Thanks in advance,

Nils

author
#1 lore raw

Hey guys,

next try is without libvirt, but still no joy.

After issuing 'migrate -d <url>' on my sending host (qemu-kvm 0.11.0), I get the following output on the receiving host (qemu-kvm 0.12.4):

(qemu) Unknown savevm section or instance 'slirp' 0 load of migration failed

... leaving my vm broken.

Am I doing something wrong, or is the format of the savevm file just different and should I abandon all hope of ever doing a live migration to a newer version of qemu-kvm?

Thanks in advance,

Nils

---

Here are my upstart options on the 'sender':

/usr/bin/kvm -S \
        -M pc-0.11 \
        -enable-kvm \
        -m 512 \
        -smp 2,sockets=2,cores=1,threads=1 \
        -name testserver \
        -uuid 890a0156-0542-32d8-66d7-b36a711084cc \
        -monitor 
unix:/var/lib/libvirt/qemu/testserver.monitor,server,nowait \
        -boot c \
        -drive 
file=/dev/disk/by-path/ip-192.168.3.100:3260-iscsi-iqn.2003-10.com.lefthandnetworks:lefthand0:64:testserver-lun-0,if=virtio,boot=on \
        -drive media=cdrom \
        -usb \
        -vnc 0.0.0.0:10 \
        -k en-us \
        -vga cirrus &

And the 'receiver':

/usr/bin/kvm -S \
        -M pc-0.11 \
        -enable-kvm \
        -m 512 \
        -smp 2,sockets=2,cores=1,threads=1 \
        -name testserver \
        -uuid 890a0156-0542-32d8-66d7-b36a711084cc \
        -nodefaults \
        -chardev 
socket,id=monitor,path=/var/lib/libvirt/qemu/testserver.monitor,server,nowait \
        -mon chardev=monitor,mode=readline \
        -boot c \
        -drive 
file=/dev/disk/by-path/ip-192.168.3.100:3260-iscsi-iqn.2003-10.com.lefthandnetworks:lefthand0:64:testserver-lun-0,if=none,id=drive-virtio-disk0,boot=on \
        -drive if=none,media=cdrom,id=drive-ide0-1-0 \
        -device 
ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
        -device 
virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 \
        -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
        -chardev pty,id=serial0 \
        -device isa-serial,chardev=serial0 \
        -usb \
        -vnc 0.0.0.0:0 \
        -k en-us \
        -vga cirrus \
        -incoming tcp:0:4444 &
#2 lore raw
Quoted 6 lines · Nils Cant

Hey guys,

next try is without libvirt, but still no joy.

After issuing 'migrate -d <url>' on my sending host (qemu-kvm 0.11.0), I get the following output on the receiving host (qemu-kvm 0.12.4):

A quick search of this and/or the qemu mailing lists would have told you this is unsupported.

Quoted 74 lines

(qemu) Unknown savevm section or instance 'slirp' 0 load of migration failed

... leaving my vm broken.

Am I doing something wrong, or is the format of the savevm file just different and should I abandon all hope of ever doing a live migration to a newer version of qemu-kvm?

Thanks in advance,

Nils

---

Here are my upstart options on the 'sender':

/usr/bin/kvm -S \
         -M pc-0.11 \
         -enable-kvm \
         -m 512 \
         -smp 2,sockets=2,cores=1,threads=1 \
         -name testserver \
         -uuid 890a0156-0542-32d8-66d7-b36a711084cc \
         -monitor
unix:/var/lib/libvirt/qemu/testserver.monitor,server,nowait \
         -boot c \
         -drive
file=/dev/disk/by-path/ip-192.168.3.100:3260-iscsi-iqn.2003-10.com.lefthand
networks:lefthand0:64:testserver-lun-0,if=virtio,boot=on \
         -drive media=cdrom \
         -usb \
         -vnc 0.0.0.0:10 \
         -k en-us \
         -vga cirrus &

And the 'receiver':

/usr/bin/kvm -S \
         -M pc-0.11 \
         -enable-kvm \
         -m 512 \
         -smp 2,sockets=2,cores=1,threads=1 \
         -name testserver \
         -uuid 890a0156-0542-32d8-66d7-b36a711084cc \
         -nodefaults \
         -chardev
socket,id=monitor,path=/var/lib/libvirt/qemu/testserver.monitor,server,nowa
it \
         -mon chardev=monitor,mode=readline \
         -boot c \
         -drive
file=/dev/disk/by-path/ip-192.168.3.100:3260-iscsi-iqn.2003-10.com.lefthand
networks:lefthand0:64:testserver-lun-0,if=none,id=drive-virtio-disk0,boot=o
n \
         -drive if=none,media=cdrom,id=drive-ide0-1-0 \
         -device

ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
-device
virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ -chardev

pty,id=serial0 \
         -device isa-serial,chardev=serial0 \
         -usb \
         -vnc 0.0.0.0:0 \
         -k en-us \
         -vga cirrus \
         -incoming tcp:0:4444 &

--
To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 11 lines · Brian Jackson
Quoted 6 lines · Nils Cant

Hey guys,

next try is without libvirt, but still no joy.

After issuing 'migrate -d<url>' on my sending host (qemu-kvm 0.11.0), I get the following output on the receiving host (qemu-kvm 0.12.4):

A quick search of this and/or the qemu mailing lists would have told you this is unsupported.

It should work between 0.12 and 0.13, though.

Signature · 1 line
error compiling committee.c: too many arguments to function
author
#4 lore raw

Is this something we can depend on for future releases then?

If we decide now to build a virtual hosting farm on 0.12, will we be able to use live migration in the future if we decide we want to upgrade to 0.13 or later?

N.

Quoted 3 lines · Avi Kivity

It should work between 0.12 and 0.13, though.

#5 lore raw

On 09/03/2010 02:35 PM, Nils Cant wrote:

First, don't trim the cc list. It's evil.

Quoted 3 lines

Is this something we can depend on for future releases then?

If we decide now to build a virtual hosting farm on 0.12, will we be able to use live migration in the future if we decide we want to upgrade to 0.13 or later?

I believe so. Juan, can you confirm?

Signature · 1 line
error compiling committee.c: too many arguments to function
author
#6 lore raw

Hey Juan,

do you also think future releases of kvm will have support for live migration from older versions? We're quite keen on knowing this, as we need to make a decision on what to build our stuff on. Being able to transparently move virtual servers onto a host running a newer version is definitely a feature we need...

Thanks in advance,

Nils

Quoted 12 lines · Avi Kivity

On 09/03/2010 02:35 PM, Nils Cant wrote:

First, don't trim the cc list. It's evil.

Quoted 5 lines

Is this something we can depend on for future releases then?

If we decide now to build a virtual hosting farm on 0.12, will we be able to use live migration in the future if we decide we want to upgrade to 0.13 or later?

I believe so. Juan, can you confirm?