From: "Dominik Rusovac" <d.rusovac@proxmox.com>
To: "Thomas Lamprecht" <t.lamprecht@proxmox.com>,
<pve-devel@lists.proxmox.com>
Subject: Re: [PATCH ha-manager v2 0/4] fix #2751: implement disarm/arm HA for safer cluster maintenance
Date: Mon, 23 Mar 2026 14:05:00 +0100 [thread overview]
Message-ID: <DHA6M37JECAA.36Q71BWTK0QM0@proxmox.com> (raw)
In-Reply-To: <20260321234350.2158438-1-t.lamprecht@proxmox.com>
Thx for coming up with a v2 so quickly!
On Sun Mar 22, 2026 at 12:42 AM CET, Thomas Lamprecht wrote:
> The biggest change compared to v1 is how ignore mode handles the service
> status: instead of clearing it entirely, the relevant parts of service
> status are now preserved across the disarm/arm cycle. This allows
> runtime state like maintenance_node to survive, so services correctly
> migrate back to their original node after maintenance ends, even if the
> disarm happened while maintenance was active. Thanks @Dominik R. for
> noticing this.
Alongside repeating the tests conducted for v1, which again were OK,
I also conducted tests resembling test-disarm-maintenance{1,2,3}
in a real cluster, which were also OK.
>
> To keep the preserved state clean, stale runtime data (failed_nodes,
> cmd, target, ...) is pruned from service entries on disarm - both in
> freeze and ignore mode - so the state machine starts fresh on re-arm.
> The status API overrides the displayed service state to 'ignore' during
> disarm-ignore mode, while the internal state stays untouched for
> seamless resume.
>
> On arm-ha from ignore mode, the CRM now rechecks the previous resource's
> node against the resource service config, picking up any manual
> migrations the admin performed while HA tracking was suspended.
>
> First patch 1/4 is new and adds a manual-migrate simulator command as a
> preparatory patch, since it is independently useful for testing the
> per-service 'ignored' state handling.
>
> Previous discussion and v1:
> https://lore.proxmox.com/pve-devel/20260309220128.973793-1-t.lamprecht@proxmox.com/
>
[snip]
lgtm, consider this series.
Reviewed-by: Dominik Rusovac <d.rusovac@proxmox.com>
Tested-by: Dominik Rusovac <d.rusovac@proxmox.com>
next prev parent reply other threads:[~2026-03-23 13:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-21 23:42 Thomas Lamprecht
2026-03-21 23:42 ` [PATCH ha-manager v2 1/4] sim: hardware: add manual-migrate command for ignored services Thomas Lamprecht
2026-03-21 23:42 ` [PATCH ha-manager v2 2/4] api: status: add fencing status entry with armed/standby state Thomas Lamprecht
2026-03-21 23:42 ` [PATCH ha-manager v2 3/4] fix #2751: implement disarm-ha and arm-ha for safe cluster maintenance Thomas Lamprecht
2026-03-23 13:04 ` Dominik Rusovac
2026-03-25 15:50 ` Fiona Ebner
2026-03-27 1:17 ` Thomas Lamprecht
2026-03-26 16:02 ` Daniel Kral
2026-03-26 23:15 ` Thomas Lamprecht
2026-03-27 10:21 ` Daniel Kral
2026-03-21 23:42 ` [PATCH ha-manager v2 4/4] api: status: add disarm-ha and arm-ha endpoints and CLI wiring Thomas Lamprecht
2026-03-23 13:05 ` Dominik Rusovac [this message]
2026-03-25 12:06 ` applied: [PATCH ha-manager v2 0/4] fix #2751: implement disarm/arm HA for safer cluster maintenance Thomas Lamprecht
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=DHA6M37JECAA.36Q71BWTK0QM0@proxmox.com \
--to=d.rusovac@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
--cc=t.lamprecht@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox