From 962bc4523a4ff7af766de3f22433012a395fd50b Mon Sep 17 00:00:00 2001 From: Vlastimil Holer Date: Mon, 29 May 2017 11:36:14 +0200 Subject: [PATCH] B #5145: Drop domain snapshots before live-migrate Otherwise the migration fails on existing snapshots: "error: Requested operation is not valid: cannot migrate domain with 3 snapshots" --- src/vmm_mad/remotes/kvm/migrate | 11 +++++++++++ src/vmm_mad/remotes/kvm/migrate_local | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/vmm_mad/remotes/kvm/migrate b/src/vmm_mad/remotes/kvm/migrate index 7f3a76c499..5a9911f92d 100755 --- a/src/vmm_mad/remotes/kvm/migrate +++ b/src/vmm_mad/remotes/kvm/migrate @@ -22,5 +22,16 @@ source $(dirname $0)/../../scripts_common.sh deploy_id=$1 dest_host=$2 +# migration can't be done with domain snapshots, drop them first +snaps=$(monitor_and_log \ + "virsh --connect $LIBVIRT_URI snapshot-list $deploy_id --name 2>/dev/null" \ + "Failed to get snapshots for $deploy_id") + +for snap in $snaps; do + exec_and_log \ + "virsh --connect $LIBVIRT_URI snapshot-delete $deploy_id --snapshotname $snap --metadata" \ + "Failed to delete snapshot $snap from $deploy_id" +done + exec_and_log "virsh --connect $LIBVIRT_URI migrate --live $MIGRATE_OPTIONS $deploy_id $QEMU_PROTOCOL://$dest_host/system" \ "Could not migrate $deploy_id to $dest_host" diff --git a/src/vmm_mad/remotes/kvm/migrate_local b/src/vmm_mad/remotes/kvm/migrate_local index bbe60aa1ed..d30fbc2c63 100755 --- a/src/vmm_mad/remotes/kvm/migrate_local +++ b/src/vmm_mad/remotes/kvm/migrate_local @@ -17,11 +17,23 @@ #--------------------------------------------------------------------------- # source $(dirname $0)/kvmrc +source $(dirname $0)/../../scripts_common.sh deploy_id=$1 dest_host=$2 src_host=$3 +# migration can't be done with domain snapshots, drop them first +snaps=$(monitor_and_log \ + "virsh --connect $QEMU_PROTOCOL://$src_host/system snapshot-list $deploy_id --name 2>/dev/null" \ + "Failed to get snapshots for $deploy_id") + +for snap in $snaps; do + exec_and_log \ + "virsh --connect $QEMU_PROTOCOL://$src_host/system snapshot-delete $deploy_id --snapshotname $snap --metadata" \ + "Failed to delete snapshot $snap from $deploy_id" +done + virsh --connect $QEMU_PROTOCOL://$src_host/system \ migrate --live $deploy_id $MIGRATE_OPTIONS $QEMU_PROTOCOL://$dest_host/system