just knowing that local disks prevent a migration is not
very helpful, so be a bit more verbose here.
PVE::Storage::foreach_volid($dl, sub {
my ($volid, $sid, $volname) = @_;
PVE::Storage::foreach_volid($dl, sub {
my ($volid, $sid, $volname) = @_;
- $volhash->{$volid} = 1;
+ $volhash->{$volid} = 'storage';
+ $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);
die "can't migrate local cdrom '$volid'\n" if $is_cdrom;
my ($path, $owner) = PVE::Storage::path($self->{storecfg}, $volid);
my $format = PVE::QemuServer::qemu_img_format($scfg, $volname);
if (($scfg->{type} eq 'zfspool') || ($format eq 'qcow2')) {
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";
return;
}
die "can't migrate snapshot of local volume '$volid'\n";
- } else {
- $volhash->{$volid} = 1;
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) {
die "can't do online migration - VM uses local disks\n";
}
if ($self->{running} && !$sharedvm) {
die "can't do online migration - VM uses local disks\n";
}