[PATCH v1 25/25] docs/kbase: introduce migrationinternals.rst
Daniel Henrique Barboza
danielhb413 at gmail.com
Mon Jul 13 13:42:00 UTC 2020
On 7/13/20 10:20 AM, Michal Privoznik wrote:
> On 7/13/20 11:49 AM, Daniel Henrique Barboza wrote:
>> This document describes briefly how Libvirt migration internals
>> works, complementing the info available in migration.html.in.
>>
>> Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
>> ---
>> docs/kbase/migrationinternals.rst | 174 ++++++++++++++++++++++++++++++
>> 1 file changed, 174 insertions(+)
>> create mode 100644 docs/kbase/migrationinternals.rst
>>
>> diff --git a/docs/kbase/migrationinternals.rst b/docs/kbase/migrationinternals.rst
>> new file mode 100644
>> index 0000000000..869ee99bd7
>> --- /dev/null
>> +++ b/docs/kbase/migrationinternals.rst
>> @@ -0,0 +1,174 @@
>> +===========================
>> +Libvirt migration internals
>> +===========================
>> +
>> +.. contents::
>> +
>> +Migration is a multi-step operation with at least two distinct actors,
>> +the source and the destination libvirtd daemons, and a lot of failure
>> +points. This document describes the basic migration workflow in the
>> +code level, as a way to complement `the base migration docs <migration.html>`_
>> +and help developers to get up to speed quicker with the code.
>> +
>> +In this document, unless stated otherwise, these conventions are followed:
>> +
>> +* 'user' refers to any entity that initiates a migration, regardless of being
>> + an human using 'virsh' or a program consuming the Libvirt API;
>> +
>> +* 'source' refers to the source host of the migration, where the guest currently
>> + exists;
>> +
>> +* 'destination' refers to the destination host of the migration. As of
>> + Libvirt 6.5.0 local migration isn't supported, thus source and destination
>> + refers to different hosts;
>
> Is this right? What commit is reponsible for this change?
I guess my wording here is unclear. What I wanted to say is that, at least up to the
current release we're at now (6.5.0), localhost migration (i.e. source and destination
is the same host) isn't supported. I wanted to mention it this way because there's always
the chance that Libvirt comes around and implements it.
If you want a commit id, the error message warning about localhost migration appeared
first here:
commit 8654175c5b0c3db9e5f70907f102f0f900355d28
Author: Daniel P. Berrange <berrange at redhat.com>
Date: Mon Jan 24 18:06:16 2011 +0000
Introduce migration cookies to QEMU driver
(...)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -46,0 +196,10 @@
+ qemuReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("missing hostuuid element in migration data"));
+ goto error;
+ }
+ virUUIDFormat(mig->hostuuid, uuidstr);
+ if (STREQ(tmp, uuidstr)) {
+ qemuReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Attempt to migrate guest to the same host %s"),
+ tmp);
+ goto error;
>
> Michal
>
More information about the libvir-list
mailing list