]> git.proxmox.com Git - qemu-server.git/commitdiff
collect and log origin of found local volumes
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Fri, 24 Jun 2016 07:46:34 +0000 (09:46 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Thu, 30 Jun 2016 09:55:21 +0000 (11:55 +0200)
just knowing that local disks prevent a migration is not
very helpful, so be a bit more verbose here.

PVE/QemuMigrate.pm

index 1305b5ca3803b7e09fcd0141aec6f5861cebbe3a..3b861a57c1cadb77d386941ce241e0add7625514 100644 (file)
@@ -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";
        }