[pve-devel] [PATCH qemu-server master+stable-bookworm] migration: check if target supports nets-host-mtu parameter up front

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Sep 8 16:49:22 CEST 2025


Am 08.09.25 um 15:48 schrieb Fiona Ebner:
> Avoid blocking backwards migration to nodes that do not support the
> new 'nets-host-mtu' parameter yet for local cluster migrations.0

Please add a short rationale about the approach used to detect that.

Further, for 8.X <-> 8.Y this is now fine, but for 8.X to 9.Y (with 9.Y
being to old to know about the new parameter) it still can cause a VM
crash, or?

> Suggested-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
> ---
>  src/PVE/QemuMigrate.pm | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/src/PVE/QemuMigrate.pm b/src/PVE/QemuMigrate.pm
> index 4381b542..f01c7907 100644
> --- a/src/PVE/QemuMigrate.pm
> +++ b/src/PVE/QemuMigrate.pm
> @@ -958,6 +958,18 @@ sub phase1_cleanup {
>      }
>  }
>  
> +my sub target_supports_nets_host_mtu {
> +    my ($self, $forcemachine) = @_;
> +
> +    return 1 if PVE::QemuServer::Machine::is_machine_version_at_least($forcemachine, 10, 0, 1);
> +
> +    my $cmd = [$self->{rem_ssh}->@*, 'qm', 'start', 0, '--nets-host-mtu'];

Could be nice to have a comment that this depends on the unknown parameter
error getting checked earlier compared to the fixed 0 parameter not being a
valid VMID.

> +
> +    my $err = '';
> +    eval { PVE::Tools::run_command($cmd, outfunc => sub { }, errfunc => sub { $err .= shift }) };
> +    return $err =~ m/^Unknown option: nets-host-mtu/ ? 0 : 1;
> +}
> +
>  sub phase2_start_local_cluster {
>      my ($self, $vmid, $params) = @_;
>  
> @@ -998,7 +1010,7 @@ sub phase2_start_local_cluster {
>          push @$cmd, '--force-cpu', $start->{forcecpu};
>      }
>  
> -    if ($start->{'nets-host-mtu'}) {
> +    if ($start->{'nets-host-mtu'} && target_supports_nets_host_mtu($self, $start->{forcemachine})) {
>          push @$cmd, '--nets-host-mtu', $start->{'nets-host-mtu'};
>      }
>  





More information about the pve-devel mailing list