[pve-devel] [PATCH qemu-server] Fix live migration with replicated unused volumes
Fabian Ebner
f.ebner at proxmox.com
Mon Apr 20 10:31:55 CEST 2020
by counting only local volumes that will be live-migrated via qemu_drive_mirror,
i.e. those listed in $self->{online_local_volumes}.
Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
Also (correctly) would not count vmstate volumes anymore,
but live migration with snapshots is currently not allowed anyways.
PVE/QemuMigrate.pm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 97fd994..b596a92 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -708,8 +708,14 @@ sub phase2 {
# TODO change to 'spice_ticket: <ticket>\n' in 7.0
my $input = $spice_ticket ? "$spice_ticket\n" : "\n";
$input .= "nbd_protocol_version: $nbd_protocol_version\n";
- foreach my $volid (keys %{$self->{replicated_volumes}}) {
- $input .= "replicated_volume: $volid\n";
+
+ my $number_of_online_replicated_volumes = 0;
+ if ($self->{online_local_volumes}) {
+ foreach my $volid (keys %{$self->{replicated_volumes}}) {
+ next if !(grep { $volid eq $_ } @{$self->{online_local_volumes}});
+ $number_of_online_replicated_volumes++;
+ $input .= "replicated_volume: $volid\n";
+ }
}
my $target_replicated_volumes = {};
@@ -773,7 +779,7 @@ sub phase2 {
die "unable to detect remote migration address\n" if !$raddr;
- if (scalar(keys %$target_replicated_volumes) != scalar(keys %{$self->{replicated_volumes}})) {
+ if (scalar(keys %$target_replicated_volumes) != $number_of_online_replicated_volumes) {
die "number of replicated disks on source and target node do not match - target node too old?\n"
}
--
2.20.1
More information about the pve-devel
mailing list