LinuxLXXX · Common Failure ScenariosCommon failures
Failure: cluster node loss, quorum loss and dependency outages
What you'll learn
- Separate a dead node from an unreachable node from a fenced node
- Recognise quorum loss and explain why resources freeze rather than move
- Identify a failed fencing action as the reason a service will not recover
- Diagnose a correlated outage caused by a shared dependency
Prerequisites
Verified against Ubuntu 24.04 LTS · Debian 12 (Bookworm) · RHEL 9.x · Rocky Linux 9.x · AlmaLinux 9.x · Linux kernel 6.1 LTS / 6.6 LTS · systemd 255+ · OpenSSH 8.7p1 (RHEL 9) / 9.6p1 (Ubuntu 24.04) · nftables 1.0.x · chrony 4.x · Pacemaker 2.1.x · Corosync 3.1.x · 2026-08-11
Cluster failures break the single-host habits. The host you are logged into may be the one that is wrong, the service may be down because the cluster is protecting it, and a healthy dashboard is not evidence of a healthy service.
Node loss: three different states
The cluster reports a node as “offline”. That single word covers three situations with different causes and different recoveries:
| State | What happened | Evidence |
|---|---|---|
| Dead | The node is powered off or kernel-panicked | No console, no BMC power-on state |
| Unreachable | The node is running, the cluster link is not | The node is up on another network; corosync-cfgtool -s shows a faulty ring |
| Fenced | The cluster killed it deliberately | A successful STONITH action in the fence history |
Always check from two nodes. A node that considers itself online while its peers consider it offline is the definition of a partition, and only comparing views reveals it:
# corosync-quorumtool -s; corosync-cfgtool -sQuorum information
------------------
Nodes: 1
Node ID: 1
Quorate: No
Ring ID: 1.1a2
Membership information
----------------------
Nodeid Votes Name
1 1 node1 (local)
LINK ID 0 udp
addr = 10.0.0.11
status = 1 3 3Illustrative output
Quorate: No with one member, while the other two nodes report
themselves quorate with two members, is a partition, not a
double node failure. Check the network before touching the
cluster.
Quorum loss: resources freeze, and that is correct
When a partition loses quorum, Pacemaker stops making
decisions. Resources are not moved and, depending on
no-quorum-policy, are stopped. Operators read the frozen
state as “the cluster is broken” and start forcing things.
The freeze is the safety mechanism. Two partitions that both believed they held quorum would both start the database on shared storage, and that is how a cluster corrupts data permanently rather than being down for twenty minutes.
The order that keeps the data:
- Establish, from outside the cluster, whether the missing nodes are running. BMC power state or a console session - not a ping from the surviving node, which is on the network you already suspect.
- If they are running, fix the network. The cluster recovers by itself when the rings come back.
- If they are genuinely down and cannot be recovered in the incident window, power them off at the BMC so they cannot rejoin unexpectedly.
- Only then relax quorum on the survivor, and record it as a deliberate act with a time and an owner.
- Restore the original quorum configuration as soon as the peers return.
A failed fence is why the service will not come back
This is the cluster failure most often misdiagnosed, because every dashboard is green.
When Pacemaker cannot fence a node, it cannot prove that node has stopped its resources. It therefore refuses to start them anywhere - starting a second copy of a database on shared storage is the outcome fencing exists to prevent. The cluster is quorate, no resource is “failed”, and the service is down indefinitely.
# pcs status --full | sed -n '/Failed Fencing Actions/,/^$/p'; pcs stonith history showFailed Fencing Actions:
* reboot of node3 failed: delegate=node1, client=pacemaker-controld, origin=node1,
last-failed='Mon Aug 10 04:19:55 2026'Illustrative output
Common causes, in the order they occur in practice: BMC credentials changed or expired, the BMC is on a management network the surviving node cannot reach, the fence device configuration names the wrong port or host, or the fence agent package was upgraded and the parameters changed.
Test the fence device directly before assuming the cluster is at fault:
pcs stonith status
stonith_admin --list-registered
# a status call, not a reboot - it proves credentials and reachability
Shared dependencies fail the whole cluster at once
A cluster removes single points of failure inside itself and then quietly acquires new ones outside itself. When every node fails at the same moment, stop looking at the nodes.
- DNS. Nodes resolve each other by name for the cluster
link, for storage, and for identity. A DNS outage can look
exactly like a total cluster failure. Cluster membership
should not depend on DNS: put the peers in
/etc/hosts. - Time. Corosync tolerates skew badly, Kerberos rejects it
outright (typically past five minutes), and TLS validation
fails against a wrong clock. Check
chronyc trackingon every node, and compare them to each other, not just to a server. - Identity. With LDAP or Active Directory unavailable,
sudoand ssh logins can hang for the NSS timeout on every node simultaneously. The service may still be serving traffic while no operator can log in to see it. That is why a local break-glass account exists. - Storage. A shared LUN or NFS export that disappears takes
every node with it.
dmesgon any node shows path or connection errors at the same timestamp.
Knowledge check
Knowledge check · 5 questions
Q1. A three-node cluster is quorate, `pcs status` shows no failed resources, and the database has been down for 45 minutes. What do you check first?
Q2. One node reports `Quorate: No` with one member; the other two report quorate with two members. What is this?
Q3. `pcs quorum unblock` is a reasonable first response to quorum loss, because it restores service quickly.
Q4. All three cluster nodes logged their first error within the same 10 seconds. What does that tell you?
Q5. Which design choices reduce shared-dependency risk in a cluster? Select all that apply.
Passing score: 75%. Answers are checked in this browser.