Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-12
○Not yet marked complete on this device.
HA incidents have a characteristic shape: something moved, or something
rebooted, and no human did either. Part XII explains how the HA stack is meant
to work. This lesson is about reading what it actually did.
The single most useful framing to bring: the HA stack almost never fails. It
does what it is specified to do, in response to something else that failed.
The diagnosis is therefore rarely “what is wrong with HA” and nearly always
“what did HA see”.
Read the state first
Read-only / Safethe three views of HA state— Read-only. ha-manager status is the summary; adding --verbose includes the full manager status. The two files are the raw state the CRM and each node LRM publish, and they are worth reading directly when the summary is ambiguous.
ha-manager status
ha-manager status --verbose
ha-manager config
cat /etc/pve/ha/manager_status
cat "/etc/pve/nodes/$(hostname)/lrm_status"
Read-only / Safe
$ ha-manager status
quorum OK
master pve-a1 (active, Tue Aug 12 03:14:02 2026)
lrm pve-a1 (active, Tue Aug 12 03:14:05 2026)
lrm pve-a2 (active, Tue Aug 12 03:14:03 2026)
lrm pve-a3 (idle, Tue Aug 12 03:14:04 2026)
service vm:141 (pve-a3, started)
service vm:142 (pve-a1, error)
service ct:205 (pve-a2, started)
The requested states
These are what you asked for, set with ha-manager set <sid> --state <state>:
State
Meaning
started
Keep it running; restart on failure, relocate if needed
stopped
Keep it stopped, but still relocate it on node failure
disabled
Stop it and do not relocate. This is the state you use for error recovery
ignored
Take it out of HA entirely; API calls bypass the HA stack
The CRM service states
These are what the cluster resource manager currently believes, and they are the
vocabulary of any HA incident:
State
What it tells you
stopped
LRM has confirmed it is stopped
request_stop
CRM has asked; it is waiting for the LRM to confirm
starting
Start requested, awaiting LRM confirmation
started
Running
fence
Waiting for a node to be fenced — the node lost quorum and its services cannot be recovered until it is known to be dead
recovery
Trying to place the service on an available node
freeze
State deliberately left unchanged, during a node reboot or an LRM restart
migrate
Live migration in progress
relocate
Stop-and-start on another node in progress
error
Repeatedly failed; disabled until a human intervenes
The node that rebooted with nothing in its logs
The classic watchdog reset, and its signature is an absence rather than a
presence.
Read-only / Safedid this node shut down, or was it reset?— Read-only. A clean shutdown leaves a trail: systemd stopping units, a final journal entry, a recorded reason. A watchdog reset leaves the previous boot ending mid-sentence. Compare the last entries of the previous boot against the first of the current one.
Aug 12 03:11:58.204 pve-a2 corosync[1841]: [KNET ] link: host: 1 link: 0 is down
Aug 12 03:11:58.205 pve-a2 corosync[1841]: [KNET ] link: host: 3 link: 0 is down
Aug 12 03:12:03.912 pve-a2 corosync[1841]: [QUORUM] This node is within the non-primary component and will NOT provide any services.
Aug 12 03:12:03.913 pve-a2 pve-ha-lrm[2210]: lost lock 'ha_agent_pve-a2_lock - cluster had no quorum
Aug 12 03:12:14.001 pve-a2 pmxcfs[1799]: [status] notice: node lost quorum
Aug 12 03:12:44.117 pve-a2 pve-ha-lrm[2210]: status change active => lost_agent_lock
Recovering a service from error
The documented sequence, in order, and the order matters:
Bring the resource back into a safe and consistent state — for example,
kill its process if the service could not be stopped.
Disable the resource to remove the error flag.
Fix the error that led to the failures.
Request that the service starts again once all errors are fixed.
Service impact possiblerecover a service stuck in error— Affects a guest. Step one is inspection; the disable clears the error flag and stops HA from acting; the final set returns it to HA management. Do not skip straight to --state started, which re-enters the same failure loop.
SID="vm:142"
ha-manager status
qm status 142
ha-manager set "$SID" --state disabled
qm start 142
qm stop 142
ha-manager set "$SID" --state started
ha-manager status
Key takeaways
HA rarely fails; it reacts. Diagnose upward from the fencing event to the
quorum loss to the network cause.
Requested states are started, stopped, disabled, ignored. CRM service
states include fence (waiting for a node to be confirmed dead), recovery
(placing the service), freeze, migrate, relocate and error.
Documented timings: a node whose LRM or CRM is not scheduled reboots after
the watchdog times out, which happens after 60 seconds, and typical error
detection plus failover is about two minutes.
A watchdog reset is identified by absence: the previous boot ends mid-sentence
with no shutdown sequence. journalctl -b -1 is the command.
The trigger is above the fence. Read corosync on every node, and look for
retransmits in the preceding week — fencing events usually have warning.
Recover from error in the documented order: make it safe, --state disabled, fix the cause, then --state started. Confirm the guest is really
down first.
A fenced node reboots without flushing. Treat it as a power-loss event for its
guests, not just an availability event.
Never disable HA to stop fencing. Suspend specific services with ignored,
record it, and keep the underlying instability as an open incident.
Knowledge check
Knowledge check · 5 questions
Q1. A node rebooted at 03:12 with no shutdown sequence in its logs, and came back on its own. The last entries of the previous boot show corosync links going down, then the LRM losing its agent lock. What is the finding?
Q2. A service is in the error state. What is the correct recovery sequence?
Q3. Which statements about the fence and recovery CRM service states are correct? Select all that apply.
Q4. Because a fenced node reboots automatically and its guests restart elsewhere, a fencing event is purely an availability event with no data-integrity implications.
Q5. A guest under HA appears briefly on two different nodes and then lands in error. Its disks are on a node-restricted storage. What is happening and what is the best fix?
Passing score: 75%. Answers are checked in this browser.