Features/Migration/Troubleshooting: Difference between revisions

From QEMU
(Start)
 
No edit summary
Line 7: Line 7:
QEMU's migration is like lifting the state out of one machine and dumping it into another - the (emulated) hardware of the two machines have to match pretty much exactly for this to succeed.
QEMU's migration is like lifting the state out of one machine and dumping it into another - the (emulated) hardware of the two machines have to match pretty much exactly for this to succeed.


Note that QEMU supports migrating forward between QEMU versions but in general not backwards, although some distros support this on their packages QEMU versions.
Note that QEMU supports migrating forward between QEMU versions but in general not backwards, although some distros support this on their packaged QEMU versions.


== Machine types ==
== Machine types ==
Line 13: Line 13:
QEMU's machine types (the parameter to -M or --machine) is a definition of the basic shape of the emulated machine; the closest analogy is to the model of motherboard in a system.  Migration requires you to have the same machine type on the source and destination machines.  Architectures tend to have a variety of machine types (e.g. on x86 there is the 'pc' and the 'q35' family) that correspond to different generations of system.  In addition some architectures ''version'' the machine types - e.g. pc-i440fx-2.5, pc-i440fx-2.6.  Newer QEMUs normally keep (most of) the older machine types around so that you can migrate.
QEMU's machine types (the parameter to -M or --machine) is a definition of the basic shape of the emulated machine; the closest analogy is to the model of motherboard in a system.  Migration requires you to have the same machine type on the source and destination machines.  Architectures tend to have a variety of machine types (e.g. on x86 there is the 'pc' and the 'q35' family) that correspond to different generations of system.  In addition some architectures ''version'' the machine types - e.g. pc-i440fx-2.5, pc-i440fx-2.6.  Newer QEMUs normally keep (most of) the older machine types around so that you can migrate.
So for example, a 2.6 release of QEMU should be able to migrate from a 2.5 release using the pc-i440fx-2.5 or pc-i440fx-2.4 machine types; Note it's not heavily tested!
So for example, a 2.6 release of QEMU should be able to migrate from a 2.5 release using the pc-i440fx-2.5 or pc-i440fx-2.4 machine types; Note it's not heavily tested!
Note that some machine types are aliases; on x86 the 'pc' and 'q35' machine types are aliases to whatever the latest version is on that version of qemu, and thus migrating between two different qemu versions both started with machine type 'pc' often won't work - use the full machine type.


== ROMs ==
== ROMs ==
The ROM images used on the two hosts should be approximately (within a page size) the same size; if the ROMs do not match in size the migration is normally refused;  care should be taken when packaging or upgrading BIOS, net boot roms etc to ensure this constraint is met.


== Devices ==
== Devices ==
=== Block storage ===
To do: cache=none, all the different ways to migrate block


= Reporting bugs =
= Reporting bugs =


== Finding logs ==
== Finding logs ==
= Types of failure =
== Migrations that never finish ==
== Migrations that fail with an error ==
== Migrations that fail with a guest hang or crash ==

Revision as of 16:41, 9 June 2016

You're probably looking at this page because migration has just failed; sorry about that, but hopefully this page will give you some idea of how to figure out why and importantly what to include in any bug report.


Basics

QEMU's migration is like lifting the state out of one machine and dumping it into another - the (emulated) hardware of the two machines have to match pretty much exactly for this to succeed.

Note that QEMU supports migrating forward between QEMU versions but in general not backwards, although some distros support this on their packaged QEMU versions.

Machine types

QEMU's machine types (the parameter to -M or --machine) is a definition of the basic shape of the emulated machine; the closest analogy is to the model of motherboard in a system. Migration requires you to have the same machine type on the source and destination machines. Architectures tend to have a variety of machine types (e.g. on x86 there is the 'pc' and the 'q35' family) that correspond to different generations of system. In addition some architectures version the machine types - e.g. pc-i440fx-2.5, pc-i440fx-2.6. Newer QEMUs normally keep (most of) the older machine types around so that you can migrate. So for example, a 2.6 release of QEMU should be able to migrate from a 2.5 release using the pc-i440fx-2.5 or pc-i440fx-2.4 machine types; Note it's not heavily tested!

Note that some machine types are aliases; on x86 the 'pc' and 'q35' machine types are aliases to whatever the latest version is on that version of qemu, and thus migrating between two different qemu versions both started with machine type 'pc' often won't work - use the full machine type.

ROMs

The ROM images used on the two hosts should be approximately (within a page size) the same size; if the ROMs do not match in size the migration is normally refused; care should be taken when packaging or upgrading BIOS, net boot roms etc to ensure this constraint is met.

Devices

Block storage

To do: cache=none, all the different ways to migrate block

Reporting bugs

Finding logs

Types of failure

Migrations that never finish

Migrations that fail with an error

Migrations that fail with a guest hang or crash