KVM versions, machine types and failed migrations

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

 



Hello,

I'd like to ask a few questions about the way migrations work in KVM
among different emulated machine types and different versions of the
qemu-kvm package. I am sending to both the kvm@ and qemu-devel@ lists,
please redirect me if I was wrong in doing so.

In a nutshell: while trying to live-migrate a VM on ~okeanos [1], we
see VM migrations fail silently if going from kvm 1.0 to kvm 1.1.
The source VM is frozen, "info migrate" on the source monitor reports
success, but the VM is dead upon arrival on the destination process.
Please see [3] for the exact package versions for qemu-kvm we have
tested with.

Migration works if the destination kvm has been started with the same
machine type as the source VM, e.g., using "-M pc-1.0" specifically on
the destination, when migrating a pc-1.0 machine from kvm 1.0 to
kvm 1.1.

How does the machine type specified with -M work in the case of
migrations? Are migrations expected to fail if the machine type is
different between source and destination process? If yes, shouldn't KVM be
able to detect this and abort the migration instead of failing silently?

For every (src, dst) pair of "package version / machine type",
we saw the following:

     dst:       1.0/pc-0.12      1.0/pc-1.0      1.1/pc-1.1
src:
1.0/pc-0.12     ok               ok              fails silently
1.0/pc-1.0      fails silently   ok              fails silently
1.1/pc-1.1      fails silently   fails silently  ok

Machine types pc-0.12 and pc-1.0 were run with qemu-kvm package version
1.0, machine type pc-1.1 with qemu-kvm package version 1.1.

Also, the migration 1.0/pc-0.12 to 1.0/pc-1.0 seems to work... How can
it work or even be allowed, given that the guest finds itself running on
a different hardware configuration after the migration?

Regarding different package versions of qemu-kvm, it seems migrations do
not work from source 0.12.5 to any other version *even* if -M pc-0.12 is
specified at the incoming KVM process. For versions >= 1.0 everything
works provided the machine type on the destination is the same as on the
source.

Our goal is to patch Ganeti [2] so that it sets the destination machine
type to that of the source specifically, ensuring migrations work
seamlessly after a KVM upgrade. Is there a way to retrieve the machine
type of a running KVM process through a monitor command?

Thank you,
Vangelis.

[1] ~okeanos IaaS: http://okeanos.io
[2] Ganeti: https://code.google.com/p/ganeti/
[3] We tested on Debian Squeeze with package versions:

kvm 0.12: qemu-kvm_0.12.5+dfsg-5+squeeze8_amd64.deb
kvm 1.0: qemu-kvm_1.0+dfsg-8~bpo60+1_amd64.deb
kvm 1.1: qemu-kvm_1.1.2+dfsg-2~bpo60+1_amd64.deb

-- 
Vangelis Koukis
vkoukis@xxxxxxxx
OpenPGP public key ID:
pub  1024D/1D038E97 2003-07-13 Vangelis Koukis <vkoukis@xxxxxxxxxxxxxxxxx>
     Key fingerprint = C5CD E02E 2C78 7C10 8A00  53D8 FBFC 3799 1D03 8E97

Only those who will risk going too far
can possibly find out how far one can go.
        -- T.S. Eliot

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux