collect and log origin of found local volumes

just knowing that local disks prevent a migration is not
very helpful, so be a bit more verbose here.
This commit is contained in:
Fabian Grünbichler 2016-06-24 09:46:34 +02:00
parent 0622ddfbbe
commit d62fcf74a7

View File

@ -246,7 +246,7 @@ sub sync_disks {
PVE::Storage::foreach_volid($dl, sub { PVE::Storage::foreach_volid($dl, sub {
my ($volid, $sid, $volname) = @_; my ($volid, $sid, $volname) = @_;
$volhash->{$volid} = 1; $volhash->{$volid} = 'storage';
}); });
} }
@ -272,6 +272,8 @@ sub sync_disks {
$sharedvm = 0; $sharedvm = 0;
$volhash->{$volid} = defined($snapname) ? 'snapshot' : 'config';
die "can't migrate local cdrom '$volid'\n" if $is_cdrom; die "can't migrate local cdrom '$volid'\n" if $is_cdrom;
my ($path, $owner) = PVE::Storage::path($self->{storecfg}, $volid); 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); my $format = PVE::QemuServer::qemu_img_format($scfg, $volname);
if (($scfg->{type} eq 'zfspool') || ($format eq 'qcow2')) { if (($scfg->{type} eq 'zfspool') || ($format eq 'qcow2')) {
$volhash->{$volid} = 1;
return; return;
} }
die "can't migrate snapshot of local volume '$volid'\n"; 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); 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) { if ($self->{running} && !$sharedvm) {
die "can't do online migration - VM uses local disks\n"; die "can't do online migration - VM uses local disks\n";
} }