[libvirt] [PATCH v3 02/14] Add public APIs for post-copy migration
Pavel Hrdina
phrdina at redhat.com
Fri Mar 18 09:51:55 UTC 2016
On Wed, Mar 02, 2016 at 12:42:23PM +0100, Jiri Denemark wrote:
> From: Cristian Klein <cristiklein at gmail.com>
>
> To use post-copy one has to start the migration with
> VIR_MIGRATE_POSTCOPY flag and, while migration is in progress, call
> virDomainMigrateStartPostCopy() to switch from pre-copy to post-copy.
>
> Signed-off-by: Cristian Klein <cristiklein at gmail.com>
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
>
> Notes:
> Version 3:
> - VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED will only be emitted on
> the destination host
>
> Version 2:
> - POSTCOPY_AFTER_PRECOPY flag removed
>
[...]
> @@ -9165,6 +9200,96 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
>
>
> /**
> + * virDomainMigrateStartPostCopy:
> + * @domain: a domain object
> + * @flags: extra flags; not used yet, so callers should always pass 0
> + *
> + * Starts post-copy migration. This function has to be called while
> + * migration (initiated with VIR_MIGRATE_POSTCOPY flag) is in progress.
> + *
> + * Traditional post-copy migration iteratively walks through guest memory
s/post-copy/pre-copy/
> + * pages and migrates those that changed since the previous iteration. The
> + * iterative phase stops when the number of dirty pages is low enough so that
> + * the virtual CPUs can be paused, all dirty pages transferred to the
> + * destination, where the virtual CPUs are unpaused, and all this can happen
> + * within a predefined downtime period. It's clear that this process may never
> + * converge if downtime is too short and/or the guest keeps changing a lot of
> + * memory pages.
> + *
[...]
> @@ -725,4 +725,8 @@ LIBVIRT_1.2.19 {
> virDomainRename;
> } LIBVIRT_1.2.17;
>
> +LIBVIRT_1.3.2 {
> + virDomainMigrateStartPostCopy;
> +} LIBVIRT_1.2.19;
> +
There should be 1.3.3 and all other cases also uses global:, but I'm not sure
how this works :)
Pavel
More information about the libvir-list
mailing list