mirror of
git://git.proxmox.com/git/qemu-server.git
synced 2025-02-03 13:47:15 +03:00
migrate: syncdisk : avoid scanning shared storage
Currently we get list from PVE::Storage (for unused volumes), from all storage. If something goes wrong with the network on host and thenwe can't communicate with a network shared storage(sheepdog,rbd,..), the vdisk_list die (timeout) and we cannot migrate the vm on another kvm host.(online or offline). We don't need to scan shared storage, as they are no disk to sync. Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
parent
a05b47a8a8
commit
80b2cbd1b9
@ -177,19 +177,21 @@ sub sync_disks {
|
||||
my $volhash = {};
|
||||
my $cdromhash = {};
|
||||
|
||||
# get list from PVE::Storage (for unused volumes)
|
||||
my $dl = PVE::Storage::vdisk_list($self->{storecfg}, undef, $vmid);
|
||||
PVE::Storage::foreach_volid($dl, sub {
|
||||
my ($volid, $sid, $volname) = @_;
|
||||
my $ids = $self->{storecfg}->{ids};
|
||||
foreach my $storeid (keys %$ids) {
|
||||
next if $ids->{$storeid}->{shared};
|
||||
# get list from PVE::Storage (for unused volumes)
|
||||
my $dl = PVE::Storage::vdisk_list($self->{storecfg}, $storeid, $vmid);
|
||||
PVE::Storage::foreach_volid($dl, sub {
|
||||
my ($volid, $sid, $volname) = @_;
|
||||
|
||||
# check if storage is available on both nodes
|
||||
my $scfg = PVE::Storage::storage_check_node($self->{storecfg}, $sid);
|
||||
PVE::Storage::storage_check_node($self->{storecfg}, $sid, $self->{node});
|
||||
# check if storage is available on both nodes
|
||||
my $scfg = PVE::Storage::storage_check_node($self->{storecfg}, $sid);
|
||||
PVE::Storage::storage_check_node($self->{storecfg}, $sid, $self->{node});
|
||||
|
||||
return if $scfg->{shared};
|
||||
|
||||
$volhash->{$volid} = 1;
|
||||
});
|
||||
$volhash->{$volid} = 1;
|
||||
});
|
||||
}
|
||||
|
||||
# and add used,owned/non-shared disks (just to be sure we have all)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user