mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-06-24 21:01:24 +00:00
Revert "Integrate replica in the qemu migration."
This reverts commit 63d02c7074
.
The commit changes the configuration before the VM is actually
migrated, so it is possible to have a wrong configuration when
migration fails for some reason. Also, I am quite unsure if
this automatic target change is really wanted. The patch also
contains wrong refereces to $self->{opts}->{node}.
This commit is contained in:
parent
b1c12185fb
commit
46883f80f6
@ -10,7 +10,6 @@ use PVE::INotify;
|
|||||||
use PVE::Tools;
|
use PVE::Tools;
|
||||||
use PVE::Cluster;
|
use PVE::Cluster;
|
||||||
use PVE::Storage;
|
use PVE::Storage;
|
||||||
use PVE::ReplicationTools;
|
|
||||||
use PVE::QemuServer;
|
use PVE::QemuServer;
|
||||||
use Time::HiRes qw( usleep );
|
use Time::HiRes qw( usleep );
|
||||||
use PVE::RPCEnvironment;
|
use PVE::RPCEnvironment;
|
||||||
@ -438,16 +437,6 @@ sub phase1 {
|
|||||||
|
|
||||||
sync_disks($self, $vmid);
|
sync_disks($self, $vmid);
|
||||||
|
|
||||||
# set new replica_target if we migrate to replica target.
|
|
||||||
if ($conf->{replica}) {
|
|
||||||
$self->log('info', "change replica target to Node: $self->{opts}->{node}");
|
|
||||||
if ($conf->{replica_target} eq $self->{node}) {
|
|
||||||
$conf->{replica_target} = $self->{opts}->{node};
|
|
||||||
}
|
|
||||||
|
|
||||||
PVE::ReplicationTools::job_remove($vmid);
|
|
||||||
PVE::QemuConfig->write_config($vmid, $conf);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sub phase1_cleanup {
|
sub phase1_cleanup {
|
||||||
@ -855,22 +844,13 @@ sub phase3 {
|
|||||||
my $volids = $self->{volumes};
|
my $volids = $self->{volumes};
|
||||||
return if $self->{phase2errors};
|
return if $self->{phase2errors};
|
||||||
|
|
||||||
my $synced_volumes = PVE::ReplicationTools::get_syncable_guestdisks($self->{vmconf}, 'qemu')
|
|
||||||
if $self->{vmconf}->{replica};
|
|
||||||
|
|
||||||
|
|
||||||
# destroy local copies
|
# destroy local copies
|
||||||
foreach my $volid (@$volids) {
|
foreach my $volid (@$volids) {
|
||||||
|
eval { PVE::Storage::vdisk_free($self->{storecfg}, $volid); };
|
||||||
# do not destroy if new target is local_host
|
if (my $err = $@) {
|
||||||
if (!($self->{vmconf}->{replica} && defined($synced_volumes->{$volid})
|
$self->log('err', "removing local copy of '$volid' failed - $err");
|
||||||
&& $self->{vmconf}->{replica_target} eq $self->{opts}->{node}) ) {
|
$self->{errors} = 1;
|
||||||
eval { PVE::Storage::vdisk_free($self->{storecfg}, $volid); };
|
last if $err =~ /^interrupted by signal$/;
|
||||||
if (my $err = $@) {
|
|
||||||
$self->log('err', "removing local copy of '$volid' failed - $err");
|
|
||||||
$self->{errors} = 1;
|
|
||||||
last if $err =~ /^interrupted by signal$/;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -984,11 +964,6 @@ sub phase3_cleanup {
|
|||||||
# clear migrate lock
|
# clear migrate lock
|
||||||
my $cmd = [ @{$self->{rem_ssh}}, 'qm', 'unlock', $vmid ];
|
my $cmd = [ @{$self->{rem_ssh}}, 'qm', 'unlock', $vmid ];
|
||||||
$self->cmd_logerr($cmd, errmsg => "failed to clear migrate lock");
|
$self->cmd_logerr($cmd, errmsg => "failed to clear migrate lock");
|
||||||
|
|
||||||
if ($self->{vmconf}->{replica}) {
|
|
||||||
my $cmd = [ @{$self->{rem_ssh}}, 'qm', 'set', $vmid, '--replica'];
|
|
||||||
$self->cmd_logerr($cmd, errmsg => "failed to activate replica");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub final_cleanup {
|
sub final_cleanup {
|
||||||
|
Loading…
Reference in New Issue
Block a user