Migration fails between QEMU 1.5 and QEMU 2.0
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Cloud Archive |
Fix Released
|
Undecided
|
Unassigned | ||
libvirt (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Trusty |
Fix Released
|
High
|
Unassigned | ||
qemu (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Trusty |
Fix Released
|
High
|
Unassigned |
Bug Description
=======
SRU Justification:
Note: This fix is not applicable to vivid, because we only support migration from LTS->LTS, so from 12.04 to 14.04. Therefore a fix is only needed for 14.04
Impact: live migration of VMS from a 12.04+UCA host to 14.04 fail.
Regression potential: the patches to fix this are very similar in nature to those already in the archive for bug 1291321. Therefore we are reasonable sure they should be safe.
Test case: See below. (Start a VM of machine type pc-i440fx-1.5 on a 12.04+UCA host, and migrate it to a 14.04 host)
Note, for the fix to work, both qemu and libvirt must have the fix.
=======
This bug looks to be very similar to bug #1291321.
The source host runs 12.04 Precise with Ubuntu Cloud Archive. This means we have access to more recent QEMU packages.
The source host has QEMU 1.5 installed. (the package looks to be backported from 13.10 Saucy by UCA)
The destination host is running 14.04 Trusty with QEMU 2.0.
The machine type used by the instance I tried to live migrate is 'pc-i440fx-1.5'. (which looks to be the new default in QEMU 1.5)
When performing a live migration from QEMU 1.5 to QEMU 2.0, the migration fails with this error on the destination host:
Length mismatch: 0000:00:
qemu: warning: error while loading state for instance 0x0 of device 'ram'
My hypothesis is that QEMU 1.5 was built against the qemu-kvm source tree. As mentionned in bug #1291321, the machine types defined in qemu-kvm are not compatible with the ones defined in qemu. This means the source 'pc-i440fx-1.5' mahine type is not compatible with the destination 'pc-i440fx-1.5' machine type.
A workaround has been introduced in QEMU 2.0 to allow incoming qemu-kvm instances (pc-1.0) to be properly translated to pc-1.0-precise) using the allow_incoming_
But since the default machine type changed between QEMU 1.0 (pc-1.0) and 1.5 (pc-i440fx-1.5), the above workaround doesn't work for people running QEMU 1.5 introduced by UCA.
This means people with QEMU 1.5 on 12.04 Precise are stuck with instances they cannot migrate to a host running the latest LTS without destructive steps.
Changed in qemu (Ubuntu): | |
importance: | Undecided → High |
Changed in qemu (Ubuntu Trusty): | |
importance: | Undecided → High |
status: | New → Confirmed |
Changed in libvirt (Ubuntu Trusty): | |
importance: | Undecided → High |
Changed in libvirt (Ubuntu): | |
importance: | Undecided → High |
status: | New → Fix Released |
Changed in libvirt (Ubuntu Trusty): | |
status: | New → Confirmed |
Changed in qemu (Ubuntu): | |
status: | Confirmed → Fix Released |
description: | updated |
description: | updated |
Status changed to 'Confirmed' because the bug affects multiple users.