[pve-devel] [PATCH-SERIES container/ha-manager/manager/qemu-server v2 00/15] HA node affinity blockers (#1497)
Daniel Kral
d.kral at proxmox.com
Tue Jan 20 16:27:32 CET 2026
Changes v1 -> v2 (Thanks @Fiona!):
- rebase on master
- fix initial node assignments in test case descriptions
- make get_resource_motion_info(...) only read files once (introducing 3
additional patches)
Tested changes with strict & non-strict HA node affinity rules and manual
migrations (in the CLI & web interface) as well as failback set and cleared.
This patch series implements node affinity rule migration blockers
similar to the blockers introduced with resource affinity rules.
The node affinity rule migraton blockers prevent users from migrating HA
resources to nodes, which would make them migrate somewhere else
immediately afterwards. This includes:
- online nodes, which are not part of the strict node affinity rule's
allowed node set at all, or
- if the HA resource has failback set, online nodes, which are not in the
currently highest priority group of the strict or non-strict node
affinity rule.
The first few patches are some overall cleanup for things the series
touches + deduplicating the resource_motion_info logic and sharing it
between the Manager and the public
PVE::HA::Config::get_resource_motion_info(...), as well as exposing these
in the relevant VM/LXC API handlers and web interface.
ha-manager:
Daniel Kral (12):
ha: put source files on individual new lines
d/pve-ha-manager.install: remove duplicate Config.pm
config: group and sort use statements
manager: group and sort use statements
manager: report all reasons when resources are blocked from migration
config, manager: factor out resource motion info logic
tests: add test cases for migrating resources with node affinity rules
handle strict node affinity rules in manual migrations
config: improve variable names in read_and_check_resources_config
config: factor out checked_resources_config helper
handle node affinity rules with failback in manual migrations
config: remove duplicate config reads in get_resource_motion_info
debian/pve-ha-manager.install | 2 +-
src/PVE/API2/HA/Resources.pm | 4 +-
src/PVE/CLI/ha_manager.pm | 14 +--
src/PVE/HA/Config.pm | 88 ++++++++-----------
src/PVE/HA/Helpers.pm | 63 +++++++++++++
src/PVE/HA/Makefile | 16 +++-
src/PVE/HA/Manager.pm | 61 +++++++------
.../test-node-affinity-nonstrict1/log.expect | 16 +---
src/test/test-node-affinity-nonstrict7/README | 9 ++
.../test-node-affinity-nonstrict7/cmdlist | 9 ++
.../hardware_status | 5 ++
.../test-node-affinity-nonstrict7/log.expect | 65 ++++++++++++++
.../manager_status | 1 +
.../rules_config | 7 ++
.../service_config | 4 +
.../test-node-affinity-strict1/log.expect | 16 +---
.../test-node-affinity-strict2/log.expect | 16 +---
src/test/test-node-affinity-strict7/README | 9 ++
src/test/test-node-affinity-strict7/cmdlist | 9 ++
.../hardware_status | 5 ++
.../test-node-affinity-strict7/log.expect | 51 +++++++++++
.../test-node-affinity-strict7/manager_status | 1 +
.../test-node-affinity-strict7/rules_config | 9 ++
.../test-node-affinity-strict7/service_config | 4 +
src/test/test-recovery4/log.expect | 2 +-
25 files changed, 349 insertions(+), 137 deletions(-)
create mode 100644 src/PVE/HA/Helpers.pm
create mode 100644 src/test/test-node-affinity-nonstrict7/README
create mode 100644 src/test/test-node-affinity-nonstrict7/cmdlist
create mode 100644 src/test/test-node-affinity-nonstrict7/hardware_status
create mode 100644 src/test/test-node-affinity-nonstrict7/log.expect
create mode 100644 src/test/test-node-affinity-nonstrict7/manager_status
create mode 100644 src/test/test-node-affinity-nonstrict7/rules_config
create mode 100644 src/test/test-node-affinity-nonstrict7/service_config
create mode 100644 src/test/test-node-affinity-strict7/README
create mode 100644 src/test/test-node-affinity-strict7/cmdlist
create mode 100644 src/test/test-node-affinity-strict7/hardware_status
create mode 100644 src/test/test-node-affinity-strict7/log.expect
create mode 100644 src/test/test-node-affinity-strict7/manager_status
create mode 100644 src/test/test-node-affinity-strict7/rules_config
create mode 100644 src/test/test-node-affinity-strict7/service_config
qemu-server:
Daniel Kral (1):
api: migration preconditions: add node affinity as blocking cause
src/PVE/API2/Qemu.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
container:
Daniel Kral (1):
api: migration preconditions: add node affinity as blocking cause
src/PVE/API2/LXC.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
manager:
Daniel Kral (1):
ui: migrate: display precondition messages for ha node affinity
www/manager6/window/Migrate.js | 10 ++++++++++
1 file changed, 10 insertions(+)
Summary over all repositories:
28 files changed, 361 insertions(+), 139 deletions(-)
--
Generated by murpp 0.9.0
More information about the pve-devel
mailing list