[pve-devel] [PATCH] add with-local-disks option for live storage migration

Alexandre Derumier aderumier at odiso.com
Fri Jan 6 10:15:07 CET 2017


As Fabian as required,
add an extra flag "with-local-disks"  to enable live storage migration with localdisk.

default target storage is same sid than source, this can be overrided with
"targetstorage" option.

I will try improve this later, with optionnal mapping, disk by disk.

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/API2/Qemu.pm   | 12 +++++++++---
 PVE/QemuMigrate.pm |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 288a9cd..33b8f5a 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -2723,10 +2723,16 @@ __PACKAGE__->register_method({
 		description => "CIDR of the (sub) network that is used for migration.",
 		optional => 1,
 	    },
-	    targetstorage => get_standard_option('pve-storage-id', {
-		description => "Target storage.",
+	    "with-local-disks" => {
+		type => 'boolean',
+		description => "Enable live storage migration for local disk",
 		optional => 1,
-	    }),
+	    },
+            targetstorage => get_standard_option('pve-storage-id', {
+		description => "Default target storage.",
+		optional => 1,
+		completion => \&PVE::QemuServer::complete_storage,
+            }),
 	},
     },
     returns => {
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index a5de8d0..cd1fc2b 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -348,6 +348,7 @@ sub sync_disks {
 	    if ($local_volumes->{$vol} eq 'storage') {
 		$self->log('info', "found local disk '$vol' (via storage)\n");
 	    } elsif ($local_volumes->{$vol} eq 'config') {
+		die "can't live migrate attached local disks without with-local-disks option\n" if $self->{running} && !$self->{opts}->{"with-local-disks"};
 		$self->log('info', "found local disk '$vol' (in current VM config)\n");
 	    } elsif ($local_volumes->{$vol} eq 'snapshot') {
 		$self->log('info', "found local disk '$vol' (referenced by snapshot(s))\n");
-- 
2.1.4



More information about the pve-devel mailing list