From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH-SERIES qemu-server/guest-common/container v2 00/14] migration: strict config check for intra-cluster migration
Date: Wed, 25 Feb 2026 16:18:23 +0100 [thread overview]
Message-ID: <20260225151931.176335-1-f.ebner@proxmox.com> (raw)
Changes in v2:
* add patches for container
* log when skipping strict configuration check
For remote migration, we already check that the config can be parsed
on the target. Do the same for intra-cluster migration, to avoid
issues like [0] for future new settings, with settings being
unexpectedly ignored on the target, and in the case of qemu-server
even relatively silently dropped (there are warnings in the target's
system logs). In case of containers, an example is migrating a
container with a mountpoint with 'keepattrs' to a node with a too old
pve-container version, resulting in the mountpoint not being mounted
on the target.
The first few patches for each repository are cleanups/tiny
improvements that would be nice to have in any case.
Unfortunately, before patch "qm: mtunnel: reply when a command is
unknown", when a command is unknown, mtunnel did not reply at all.
Therefore, this delays VM backwards migrations to qemu-server versions
less than the next bumped version (at the time of this writing
expected to be 9.1.5) by 3 seconds.
I opted for 3 seconds, since config parsing should be very quick and
5 seconds would still be very noticeable for a bulk migration of VMs
on a shared storage with a fast network. Right now, the option won't
help anyways, only once we add a new config option (at which point
we could bump it to 5 seconds).
For containers, an 'mtunnel' endpoint is added and changes to stderr
handling for the tunnel are useful, see guest-common patch "tunnel:
redirect stderr to log function".
[0]: https://bugzilla.proxmox.com/show_bug.cgi?id=7341
Dependency bump pve-container -> guest-common needed!
qemu-server:
Fiona Ebner (6):
d/control: bump versioned build dependency for libpve-common-perl to
9.0.12
tests: migration: get rid of mocking for removed
PVE::QemuMigrate::read_tunnel()
qm: mtunnel: avoid using deprecated check_running() helper
mtunnel: add 'conf' command to do strict configuration parsing
qm: mtunnel: reply when a command is unknown
migration: intra-cluster: check config can be parsed on target node
debian/control | 2 +-
src/PVE/API2/Qemu.pm | 4 +++-
src/PVE/CLI/qm.pm | 21 +++++++++++++++---
src/PVE/QemuMigrate.pm | 27 +++++++++++++++++++++++
src/test/MigrationTest/QemuMigrateMock.pm | 14 ++++++++----
5 files changed, 59 insertions(+), 9 deletions(-)
guest-common:
Fiona Ebner (3):
tunnel: add missing IO::File module import
tunnel: end module with true value as recommended by perlcritic
tunnel: redirect stderr to log function
src/PVE/Tunnel.pm | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
container:
Fiona Ebner (5):
pct: add missing module imports and group according to style guide
migrate: add missing module imports
pct: introduce mtunnel command
d/control: bump versioned build dependency for libpve-common-perl to
9.0.12
migration: intra-cluster: check config can be parsed on target node
debian/control | 2 +-
src/PVE/API2/LXC.pm | 11 ++++++++
src/PVE/CLI/pct.pm | 64 +++++++++++++++++++++++++++++++++++++++++-
src/PVE/LXC/Migrate.pm | 41 +++++++++++++++++++++++++++
4 files changed, 116 insertions(+), 2 deletions(-)
Summary over all repositories:
10 files changed, 192 insertions(+), 14 deletions(-)
--
Generated by git-murpp 0.5.0
next reply other threads:[~2026-02-25 15:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-25 15:18 Fiona Ebner [this message]
2026-02-25 15:18 ` [PATCH qemu-server v2 01/14] d/control: bump versioned build dependency for libpve-common-perl to 9.0.12 Fiona Ebner
2026-02-25 15:18 ` [PATCH qemu-server v2 02/14] tests: migration: get rid of mocking for removed PVE::QemuMigrate::read_tunnel() Fiona Ebner
2026-02-25 15:18 ` [PATCH qemu-server v2 03/14] qm: mtunnel: avoid using deprecated check_running() helper Fiona Ebner
2026-02-25 15:18 ` [PATCH qemu-server v2 04/14] mtunnel: add 'conf' command to do strict configuration parsing Fiona Ebner
2026-02-25 15:18 ` [PATCH qemu-server v2 05/14] qm: mtunnel: reply when a command is unknown Fiona Ebner
2026-02-25 15:18 ` [PATCH qemu-server v2 06/14] migration: intra-cluster: check config can be parsed on target node Fiona Ebner
2026-02-25 15:18 ` [PATCH guest-common v2 07/14] tunnel: add missing IO::File module import Fiona Ebner
2026-02-25 15:18 ` [PATCH guest-common v2 08/14] tunnel: end module with true value as recommended by perlcritic Fiona Ebner
2026-02-25 15:18 ` [PATCH guest-common v2 09/14] tunnel: redirect stderr to log function Fiona Ebner
2026-02-25 15:18 ` [PATCH container v2 10/14] pct: add missing module imports and group according to style guide Fiona Ebner
2026-02-25 15:18 ` [PATCH container v2 11/14] migrate: add missing module imports Fiona Ebner
2026-02-25 15:18 ` [PATCH container v2 12/14] pct: introduce mtunnel command Fiona Ebner
2026-02-25 15:18 ` [PATCH container v2 13/14] d/control: bump versioned build dependency for libpve-common-perl to 9.0.12 Fiona Ebner
2026-02-25 15:18 ` [PATCH container v2 14/14] migration: intra-cluster: check config can be parsed on target node Fiona Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260225151931.176335-1-f.ebner@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.