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 <aderum...@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

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to