Skip to main content
RunBook Academy

Proxmox VEXIX · TroubleshootingEvidence and escalation

HA and fencing incidents

Advanced⏱ ~30 minha-managerjournalctl

What you'll learn

  • Read ha-manager status and the manager_status and lrm_status files after an incident
  • Name the CRM service states and say what each one means about where the service is
  • Recognise a watchdog reset from the absence of shutdown evidence, and confirm it
  • Recover a service from the error state in the documented order
  • Distinguish an HA fault from a quorum fault from a storage fault presenting as an HA symptom

Prerequisites

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
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>:

StateMeaning
startedKeep it running; restart on failure, relocate if needed
stoppedKeep it stopped, but still relocate it on node failure
disabledStop it and do not relocate. This is the state you use for error recovery
ignoredTake 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:

StateWhat it tells you
stoppedLRM has confirmed it is stopped
request_stopCRM has asked; it is waiting for the LRM to confirm
startingStart requested, awaiting LRM confirmation
startedRunning
fenceWaiting for a node to be fenced — the node lost quorum and its services cannot be recovered until it is known to be dead
recoveryTrying to place the service on an available node
freezeState deliberately left unchanged, during a node reboot or an LRM restart
migrateLive migration in progress
relocateStop-and-start on another node in progress
errorRepeatedly 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?
journalctl --list-boots | tail -5

journalctl -b -1 -n 60 -o short-precise

journalctl -b -1 -u pve-ha-lrm -u pve-ha-crm -u corosync -o short-precise | tail -60

journalctl -b -0 -n 20 -o short-precise
Read-only / Safe
$ journalctl -b -1 -n 8 -o short-precise
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:

  1. Bring the resource back into a safe and consistent state — for example, kill its process if the service could not be stopped.
  2. Disable the resource to remove the error flag.
  3. Fix the error that led to the failures.
  4. Request that the service starts again once all errors are fixed.
Service impact possiblerecover a service stuck in error
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

  1. 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?

  2. Q2. A service is in the error state. What is the correct recovery sequence?

  3. Q3. Which statements about the fence and recovery CRM service states are correct? Select all that apply.

  4. 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.

  5. 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.