[libvirt PATCH 51/80] Introduce VIR_MIGRATE_POSTCOPY_RESUME flag

Jiri Denemark posted 80 patches 3 years, 9 months ago
There is a newer version of this series
[libvirt PATCH 51/80] Introduce VIR_MIGRATE_POSTCOPY_RESUME flag
Posted by Jiri Denemark 3 years, 9 months ago
This flag can be used to restart post-copy migration once it failed
because of a broken connection.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 include/libvirt/libvirt-domain.h | 5 +++++
 src/libvirt-domain.c             | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 34b8adc2bf..aee2b49114 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -1084,6 +1084,11 @@ typedef enum {
       */
     VIR_MIGRATE_NON_SHARED_SYNCHRONOUS_WRITES = (1 << 18),
 
+    /* Resume migration which failed in post-copy phase.
+     *
+     * Since: 8.4.0
+     */
+    VIR_MIGRATE_POSTCOPY_RESUME = (1 << 19),
 } virDomainMigrateFlags;
 
 
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 2e39687e27..41ba4aa39c 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -9762,6 +9762,12 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
  * in such case. Because of this, libvirt will refuse to cancel post-copy
  * migration via virDomainAbortJob.
  *
+ * Failed post-copy migration can be recovered once the cause for the failure
+ * (e.g., a network issue) is resolved by repeating the migration with an
+ * additional VIR_MIGRATE_POSTCOPY_RESUME flag. This will recreate the
+ * connection and resume migration from the point where it failed. This step
+ * can be repeated in case the migration breaks again.
+ *
  * The following domain life cycle events are emitted during post-copy
  * migration:
  *  VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY (on the source) -- migration entered
-- 
2.35.1
Re: [libvirt PATCH 51/80] Introduce VIR_MIGRATE_POSTCOPY_RESUME flag
Posted by Peter Krempa 3 years, 9 months ago
On Tue, May 10, 2022 at 17:21:12 +0200, Jiri Denemark wrote:
> This flag can be used to restart post-copy migration once it failed
> because of a broken connection.
> 
> Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
> ---
>  include/libvirt/libvirt-domain.h | 5 +++++
>  src/libvirt-domain.c             | 6 ++++++
>  2 files changed, 11 insertions(+)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>