[pve-devel] [PATCH ha-manager 4/4] manager: group migration: bulk update changes to resource config
Daniel Kral
d.kral at proxmox.com
Mon Dec 15 11:18:37 CET 2025
The migration process from HA groups to HA rules might require a lot of
small updates to individual HA resource configs. These updates have been
done per-HA resource, which is quite inefficient and can cause the CRM
to fail to update its watchdog in time.
Even though this is a one-off procedure, it is part of the HA Manager
state machine and must be done in a single action to prevent reading
from an partially updated resource config, i.e., no forking or splitting
the task over multiple HA Manager rounds.
Therefore use the bulk capability of update_resources_config(...) to
remove the group fields and migrate the failback flag for all HA
resources in a single read-update-write operation.
Signed-off-by: Daniel Kral <d.kral at proxmox.com>
---
src/PVE/HA/Manager.pm | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/PVE/HA/Manager.pm b/src/PVE/HA/Manager.pm
index f55d5870..bf368efd 100644
--- a/src/PVE/HA/Manager.pm
+++ b/src/PVE/HA/Manager.pm
@@ -579,16 +579,15 @@ my $migrate_group_persistently = sub {
$haenv->log('notice', "ha groups migration: migration to rules config successful");
PVE::HA::Groups::migrate_groups_to_resources($groups, $resources);
+ my $changes = {};
for my $sid (keys %$resources) {
# prevent unnecessary updates for HA resources that do not change
next if !defined($resources->{$sid}->{group});
- my $changes = {};
$changes->{$sid} = {};
$changes->{$sid}->{failback} = 0 if !$resources->{$sid}->{failback};
-
- $haenv->update_service_config($changes, 'group');
}
+ $haenv->update_service_config($changes, 'group');
$haenv->log('notice', "ha groups migration: migration to resources config successful");
$haenv->delete_group_config();
--
2.47.3
More information about the pve-devel
mailing list