Qemu migration from precise -> trusty

Description

There are two problems which have inhibited live migration of qemu images from 12.04 precise hosts to 14.04 trusty hosts.

Up through 12.04 (precise), Ubuntu shipped qemu packages coming from the qemu-kvm source tree, which was a fork of the qemu source tree. During 12.10 (raring), we switched to the qemu source tree. One of the differences between the source trees was that the machine types were actually somewhat different. When qemu is started to accept an incoming VM migration, the machine type must be identical to the original VM. But when qemu from 14.04 sees "pc-1.0", it cannot know whether this is the pc-1.0 from qemu-kvm in precise, or the pc-1.0 from qemu in a later release. In addition, there currently is no machine type which is identical to the pc-1.0 from precise.

Secondly, a VM running on precise using roms from precise, when migrated to trusty, needs to continue using roms the same (at least log(n)) size as those with which they were started.

Solutions

To solve these problems, the following steps are taken. All are now implemented in the archive.

* qemu-kvm in precise adds a pc-1.0-precise machine type, which becomes the default. It is identical to its pc-1.0 machine type. The reason for adding this is so that VMs created under precise in the future can be uniquely identified, avoiding the need to tell libvirt to change the incoming machine type

* a new ipxe-precise source package (kvm-ipxe-precise is added to trusty, which contains the ipxe roms built from precise source. This will also go into U and beyond.

* qemu in trusty adds a pc-1.0-precise machine type which is identical to the qemu-kvm pc-1.0 machine type, and NOT the same as the pc-1.0 machine type in 14.04's qemu. This machine type can be used to accept incoming migration from precise's pc-1.0 machine type. This machine type will also need to exist in U and beyond (just as the trusty and utopic machine types do).

* libvirt in trusty adds an option called "incoming_assume_qemukvm" to say "if an incoming migration starts for machine type pc-1.0, assume it is really pc-1.0-precise." This will not be needed after trusty, because we will insist that users migrate VMs from P->T and then from T->(beyond). This setting is not needed if the precise VM is already identified as pc-1.0-precise machine type.

QemuPTMigration (last edited 2015-12-01 15:49:52 by serge-hallyn)