This flag can be used to restart post-copy migration once it failed
because of a broken connection.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
Reviewed-by: Pavel Hrdina <phrdina(a)redhat.com>
---
Notes:
Version 2:
- no change
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 caf99d41bc..e7020f19cc 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.5.0
+ */
+ VIR_MIGRATE_POSTCOPY_RESUME = (1 << 19),
} virDomainMigrateFlags;
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index b9f1d73d5a..5141174728 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -9775,6 +9775,12 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
* 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