On 10/30/19 10:54 AM, Fabian Ebner wrote:
> Doing an online migration with --targetstorage and two unused disks with the
> same name on different storages failed, because they would collide on the
> target storage. This patch makes sure that we don't use the same name twice.
> 
> Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
> ---
>  PVE/QemuMigrate.pm | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> index 045f3b0..94c5764 100644
> --- a/PVE/QemuMigrate.pm
> +++ b/PVE/QemuMigrate.pm
> @@ -10,6 +10,7 @@ use PVE::INotify;
>  use PVE::Tools;
>  use PVE::Cluster;
>  use PVE::Storage;
> +use PVE::Storage::Plugin;
>  use PVE::QemuServer;
>  use Time::HiRes qw( usleep );
>  use PVE::RPCEnvironment;
> @@ -466,9 +467,12 @@ sub sync_disks {
>               next if $rep_volumes->{$volid};
>               push @{$self->{volumes}}, $volid;
>  
> +             my $targetvolname = undef;
>               if (defined($override_targetsid) && $self->{running} && $ref eq 
> 'storage') {
> -                 my (undef, $targetvolname) = 
> PVE::Storage::parse_volume_id($volid);
> +                 my $scfg = PVE::Storage::storage_config($self->{storecfg}, 
> $targetsid);
> +                 $targetvolname = 
> PVE::Storage::Plugin::get_next_vm_diskname($self->{online_unused_volumes}, 
> $targetsid, $vmid, undef, $scfg, 0);
>                   push @{$self->{online_unused_volumes}}, 
> "${targetsid}:${targetvolname}";
> +                 $self->log('info', "$volid will become 
> ${targetsid}:${targetvolname} on the target node");

but isn't above racy? I only can assume that the new volid is
OK once I alloced the image on the target storage, or?
Or is it OK as we're protected by the migrate lock anyway?

>               }
>  
>               my $opts = $self->{opts};
> @@ -480,7 +484,7 @@ sub sync_disks {
>               $bwlimit = $bwlimit * 1024 if defined($bwlimit);
>  
>               PVE::Storage::storage_migrate($self->{storecfg}, $volid, 
> $self->{ssh_info}, $targetsid,
> -                                           undef, undef, undef, $bwlimit, 
> $insecure, $with_snapshots);
> +                                           $targetvolname, undef, undef, 
> $bwlimit, $insecure, $with_snapshots);
>           }
>       }
>      };
> 

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to