just knowing that local disks prevent a migration is not very helpful, so be a bit more verbose here. --- PVE/QemuMigrate.pm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm index 1305b5c..3b861a5 100644 --- a/PVE/QemuMigrate.pm +++ b/PVE/QemuMigrate.pm @@ -246,7 +246,7 @@ sub sync_disks { PVE::Storage::foreach_volid($dl, sub { my ($volid, $sid, $volname) = @_; - $volhash->{$volid} = 1; + $volhash->{$volid} = 'storage'; }); } @@ -272,6 +272,8 @@ sub sync_disks { $sharedvm = 0; + $volhash->{$volid} = defined($snapname) ? 'snapshot' : 'config'; + die "can't migrate local cdrom '$volid'\n" if $is_cdrom; my ($path, $owner) = PVE::Storage::path($self->{storecfg}, $volid); @@ -286,14 +288,11 @@ sub sync_disks { my $format = PVE::QemuServer::qemu_img_format($scfg, $volname); if (($scfg->{type} eq 'zfspool') || ($format eq 'qcow2')) { - $volhash->{$volid} = 1; return; } die "can't migrate snapshot of local volume '$volid'\n"; - } else { - $volhash->{$volid} = 1; } }; @@ -310,6 +309,18 @@ sub sync_disks { PVE::QemuServer::foreach_drive($conf->{snapshots}->{$snapname}, $test_drive, $snapname); } + foreach my $vol (sort keys %$volhash) { + if ($volhash->{$vol} eq 'storage') { + $self->log('info', "found local disk '$vol' (via storage)\n"); + } elsif ($volhash->{$vol} eq 'config') { + $self->log('info', "found local disk '$vol' (in current VM config)\n"); + } elsif ($volhash->{$vol} eq 'snapshot') { + $self->log('info', "found local disk '$vol' (referenced by snapshot(s))\n"); + } else { + $self->log('info', "found local disk '$vol'\n"); + } + } + if ($self->{running} && !$sharedvm) { die "can't do online migration - VM uses local disks\n"; } -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel