[pve-devel] [RFC qemu-server stable-4] add workaround for pve 4.4 to 5.0 live migration
Stefan Priebe - Profihost AG
s.priebe at profihost.ag
Tue Jul 11 22:06:26 CEST 2017
Hello,
Am 11.07.2017 um 16:40 schrieb Thomas Lamprecht:
> commit 85909c04c49879f5fffa366fc3233eee2b157e97 switched from cirrus
> to vga for non windows OSs.
>
> This adds an artificial blocker on live migrations from PVE 4.X to
> PVE 5.0.
> Address it in PVE 4.4 by explicitly setting cirrus in the config if
> it would be used, so that a PVE 5.0 starts up the correct hardware in
> the case of a migration. Do it only on running VMs with online
> migration enabled.
> Do not clean it up, as this would then make live migration fail again
> until the VM had a real poweroff and power on cycle even from PVE 5.0
> to PVE 5.0.
> While not the nicest way it is a short and valid solution and doesn't
> adds hackery in new code. We may also touch the config only on the
> source site until migration phase 3 completes.
this is a pretty hacky approach i don't like.
What about doing something different which is a more general approach an
can be used for pve 6, 7 as well:
1.) write at each vm start pve-manager version to a field in the
vm conf f.e. pveversion: 4.4
2.) while doing an online migration check if there are special things to
consider f. e. default vga = cirrus if !defined($conf->{vga} &&
$conf->{pveversion} < 5;
Greets,
Stefan
$
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
>
> Another approach would be to check the machine type on the target side and if
> older than *-2.9 use cirrus, if not explicitly set already.
> But this would then add code on PVE 5.0 which we would need to maintain for a
> bit of time, so I'm not sure if that would be the nicer solution...
>
> PVE/QemuMigrate.pm | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> index e6f147e..6cfca0b 100644
> --- a/PVE/QemuMigrate.pm
> +++ b/PVE/QemuMigrate.pm
> @@ -429,6 +429,14 @@ sub phase1 {
>
> my $conf = $self->{vmconf};
>
> + # HACK: avoid migration failure to 5.0 as the VGA default has changed
> + if (!defined($conf->{vga}) && $self->{running} && $self->{opts}->{online}) {
> + my $winversion = PVE::QemuServer::windows_version($conf->{ostype});
> + if ($winversion < 6) {
> + $conf->{vga} = 'cirrus';
> + }
> + }
> +
> # set migrate lock in config file
> $conf->{lock} = 'migrate';
> PVE::QemuConfig->write_config($vmid, $conf);
>
More information about the pve-devel
mailing list