[pve-devel] [PATCH storage v6 7/7] storage migrate: avoid ssh when moving a volume locally
Fiona Ebner
f.ebner at proxmox.com
Thu Feb 13 18:21:06 CET 2025
Am 20.01.25 um 12:28 schrieb Filip Schauer:
> Avoid the overhead of SSH when moving a volume between storages on the
> same node.
>
> Signed-off-by: Filip Schauer <f.schauer at proxmox.com>
> ---
> src/PVE/Storage.pm | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm
> index 761f612..a2bef55 100755
> --- a/src/PVE/Storage.pm
> +++ b/src/PVE/Storage.pm
> @@ -823,8 +823,6 @@ sub storage_migrate {
>
> my $target_volid = "${target_storeid}:${target_volname}";
>
> - my $target_ip = $target_sshinfo->{ip};
> -
> my $ssh = PVE::SSHInfo::ssh_info_to_command($target_sshinfo);
> my $ssh_base = PVE::SSHInfo::ssh_info_to_command_base($target_sshinfo);
> local $ENV{RSYNC_RSH} = PVE::Tools::cmd2string($ssh_base);
> @@ -844,7 +842,9 @@ sub storage_migrate {
> $import_fn = "tcp://$net";
> }
>
> - my $recv = [ @$ssh, '--', $volume_import_prepare->($target_volid, $format, $import_fn, $opts)->@* ];
> + my $recv = [];
> + push @$recv, (@$ssh, '--') if $target_sshinfo->{ip} ne "localhost";
Instead of having a special value for the target IP, we could make the
$target_sshinfo parameter optional. Because right now, you still do the
lookup/command building with the PVE::SSHInfo calls above that are not
required in this case.
If you go for that, the patch is better ordered first.
> + push @$recv, ($volume_import_prepare->($target_volid, $format, $import_fn, $opts)->@*);
>
> my $new_volid;
> my $pattern = volume_imported_message(undef, 1);
More information about the pve-devel
mailing list