ToDo/pseries migration compatibility

From QEMU
Revision as of 14:18, 19 February 2016 by Laurent (talk | contribs)

pseries migration compatibility matrix

This page tracks cross-version migration compatiblity for pseries.

Test case

The test is just to migrate a machine to another with a different qemu version.

The first machine is booted until the login prompt, and then migrated.

We check the migrated machine is responsive and login prompt appears.

No functional test is done.

The following parameters are used:

       -L /usr/share/qemu-kvm/ \
       -machine $MACHINE,accel=kvm,usb=off -m 2048 -realtime mlock=off \
       -smp 1 \
       -chardev stdio,id=conmon,mux=on,signal=off \
       -mon conmon \
       -device spapr-vty,chardev=conmon \
       -nodefaults \
       -rtc base=localtime,clock=host \
       -boot strict=on \
       -msg timestamp=on \
       -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
       -usb \
       -netdev bridge,id=hostnet1,br=virbr0 \
       -device virtio-net-pci,id=net1,netdev=hostnet1,mac=52:54:00:22:ab:40, \
       -device virtio-blk-pci,id=blk0,drive=drive-blk0 \
       -device spapr-vscsi,id=scsi0,reg=0x2000 \
       -device virtio-scsi-pci,id=scsi1 \
       -drive file=$IMAGE,if=none,id=drive-blk0,format=qcow2,cache=none,snapshot=on \
       -vga std -g 1680x1050 \
       -vnc :1$INDEX \
       -cdrom /home/lvivier/ISO/cdrom.iso \
       -boot c \

MACHINE is one of: pseries-2.2, pseries-2.3, pseries-2.4, pseries-2.5, pseries-2.6

Test results

master is "b527c9b qcow2: Write full header on image creation"

pseries-2.2

Migration Matrix for pseries-2.2 machine
from/to qemu-2.2.0 qemu-2.2.1 qemu-2.3.0 qemu-2.3.1 qemu-2.4.0 qemu-2.4.1 qemu-2.5.0 qemu-master
qemu-2.2.0 E1 E1 E1 E1 E2 E2 E2 E2
qemu-2.2.1 E1 E1 E1 E1 E2 E2 E2 E2
qemu-2.3.0 E3 E3 OK OK E2 E2 E2 E2
qemu-2.3.1 E3 E3 OK OK E2 E2 E2 E2
qemu-2.4.0 E4 E4 E4 E4 OK OK OK OK
qemu-2.4.1 E4 E4 E4 E4 OK OK OK OK
qemu-2.5.0 E4 E4 E4 E4 OK OK OK OK
qemu-master E4 E4 E4 E4 OK OK OK OK

E1:

   Error writing KVM hash table: Invalid argument
   qemu: warning: error while loading state section id 26
   load of migration failed: Operation not permitted

E2:

   Configuration section missing
   load of migration failed: Invalid argument

E3:

   qemu: warning: error while loading state for instance 0x0 of device 'cpu'
   load of migration failed: Invalid argument

E4:

   Unknown savevm section type 7
   load of migration failed: Invalid argument

pseries-2.3

Migration Matrix for pseries-2.3 machine
from/to qemu-2.3.0 qemu-2.3.1 qemu-2.4.0 qemu-2.4.1 qemu-2.5.0 qemu-master
qemu-2.3.0 OK OK E2 E2 E2 E2
qemu-2.3.1 OK OK E2 E2 E2 E2
qemu-2.4.0 E4 E4 OK OK OK OK
qemu-2.4.1 E4 E4 OK OK OK OK
qemu-2.5.0 E4 E4 OK OK OK OK
qemu-master E4 E4 OK OK OK OK

E2:

   Configuration section missing
   load of migration failed: Invalid argument

E4:

   Unknown savevm section type 7
   load of migration failed: Invalid argument

pseries-2.4

Migration Matrix for pseries-2.4 machine
from/to qemu-2.4.0 qemu-2.4.1 qemu-2.5.0 qemu-master
qemu-2.4.0 OK OK OK OK
qemu-2.4.1 OK OK OK OK
qemu-2.5.0 OK OK OK OK
qemu-master OK OK OK OK

pseries-2.5

Migration Matrix for pseries-2.5 machine
from/to qemu-2.5.0 qemu-master
qemu-2.5.0 OK OK
qemu-master OK OK

pseries-2.6

Migration Matrix for pseries-2.6 machine
from/to qemu-master
qemu-master OK

With Fix for pseries-2.3

There is a wall that cannot be crossed for the pseries-2.3 machine between qemu-2.3 and qemu-2.4.

Greg Kurz has proposed some fixes. The following tables are the result of the tests with these patches applied.

spapr: skip configuration section during migration of older machines [1]

migration: allow machine to enforce configuration section migration [2]

Tests have only be replayed with qemu-master, other results are copied from previous tables (new results are in bold).

pseries-2.2

Migration Matrix for pseries-2.2 machine
from/to qemu-2.2.0 qemu-2.2.1 qemu-2.3.0 qemu-2.3.1 qemu-2.4.0 qemu-2.4.1 qemu-2.5.0 qemu-master
qemu-2.2.0 E1 E1 E1 E1 E2 E2 E2 E5
qemu-2.2.1 E1 E1 E1 E1 E2 E2 E2 E5
qemu-2.3.0 E3 E3 OK OK E2 E2 E2 OK
qemu-2.3.1 E3 E3 OK OK E2 E2 E2 OK
qemu-2.4.0 E4 E4 E4 E4 OK OK OK OK1
qemu-2.4.1 E4 E4 E4 E4 OK OK OK OK1
qemu-2.5.0 E4 E4 E4 E4 OK OK OK OK1
qemu-master E6 E6 OK OK OK1 OK1 OK1 OK

OK1:

   qemu-master is started with "-machine enforce-config-section=on"
   or later from the QEMU monitor: qom-set /machine enforce-config-section on

E5:

   error while loading state section id 26(spapr/htab)
   load of migration failed: Operation not permitted

E6:

   warning: error while loading state for instance 0x0 of device 'cpu'
   load of migration failed: Invalid argument

pseries-2.3

Migration Matrix for pseries-2.3 machine
from/to qemu-2.3.0 qemu-2.3.1 qemu-2.4.0 qemu-2.4.1 qemu-2.5.0 qemu-master
qemu-2.3.0 OK OK E2 E2 E2 OK
qemu-2.3.1 OK OK E2 E2 E2 OK
qemu-2.4.0 E4 E4 OK OK OK OK1
qemu-2.4.1 E4 E4 OK OK OK OK1
qemu-2.5.0 E4 E4 OK OK OK OK1
qemu-master OK OK OK1 OK1 OK1 OK

pseries-2.4

Migration Matrix for pseries-2.4 machine
from/to qemu-2.4.0 qemu-2.4.1 qemu-2.5.0 qemu-master
qemu-2.4.0 OK OK OK OK
qemu-2.4.1 OK OK OK OK
qemu-2.5.0 OK OK OK OK
qemu-master OK OK OK OK

pseries-2.5

Migration Matrix for pseries-2.5 machine
from/to qemu-2.5.0 qemu-master
qemu-2.5.0 OK OK
qemu-master OK OK

pseries-2.6

Migration Matrix for pseries-2.6 machine
from/to qemu-master
qemu-master OK