so the migration code doesn't need to know how the volid on the targetstorage would look like (e.g. VM has disk mydir:123/vm-123-disk-0.raw and targetstorage is an LVM). Previously it would fail, because the current volname was passed to 'pvesm import' which is an invalid name for an LVM storage.
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- PVE/Storage.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/PVE/Storage.pm b/PVE/Storage.pm index d708c03..6aea2ef 100755 --- a/PVE/Storage.pm +++ b/PVE/Storage.pm @@ -561,7 +561,6 @@ sub storage_migrate { my ($cfg, $volid, $target_sshinfo, $target_storeid, $target_volname, $base_snapshot, $snapshot, $ratelimit_bps, $insecure, $with_snapshots, $logfunc) = @_; my ($storeid, $volname) = parse_volume_id($volid); - $target_volname = $volname if !$target_volname; my $scfg = storage_config($cfg, $storeid); @@ -570,7 +569,7 @@ sub storage_migrate { my $tcfg = storage_config($cfg, $target_storeid); - my $target_volid = "${target_storeid}:${target_volname}"; + my $target_volid_or_storeid = defined($target_volname) ? "${target_storeid}:${target_volname}" : "$target_storeid"; my $target_ip = $target_sshinfo->{ip}; @@ -601,7 +600,7 @@ sub storage_migrate { $with_snapshots = $with_snapshots ? 1 : 0; # sanitize for passing as cli parameter my $send = ['pvesm', 'export', $volid, $format, '-', '-with-snapshots', $with_snapshots]; - my $recv = [@$ssh, '--', 'pvesm', 'import', $target_volid, $format, $import_fn, '-with-snapshots', $with_snapshots]; + my $recv = [@$ssh, '--', 'pvesm', 'import', $target_volid_or_storeid, $format, $import_fn, '-with-snapshots', $with_snapshots]; if (defined($snapshot)) { push @$send, '-snapshot', $snapshot } @@ -609,6 +608,11 @@ sub storage_migrate { push @$recv, '-delete-snapshot', $snapshot; } + my $vmid = (parse_volname($cfg, $volid))[2]; + if (!defined($target_volname)) { + push @$recv, '-vmid', $vmid; + } + if (defined($base_snapshot)) { # Check if the snapshot exists on the remote side: push @$send, '-base', $base_snapshot; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel