Proxmox VEII · Production PlanningReference architectures
Failure-domain modelling
What you'll learn
- Identify the failure domains in a given design
- Distinguish correlated failures from independent ones
- Place infrastructure components so that a single failure domain cannot take down the critical path
- Model correlated risks rack, power, switch, network uplink
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-07
Why this matters in production
A “highly available” cluster with all three nodes in the same rack, fed from the same PDU, on the same network switch is not highly available — it has one failure domain. The moment that rack, PDU, or switch fails, the entire cluster goes with it.
Mental model
A failure domain is the set of components that fail together when a single underlying cause occurs. Common domains:
| Domain | What can take it down |
|---|---|
| Server | Hardware fault, OS crash |
| Rack | Rack tipping, top-of-rack switch failure, PDU failure |
| Row / suite | Power distribution failure, HVAC failure |
| Datacentre | Flood, fire, civil emergency |
| Region | Network provider outage, regional disaster |
| Operator | A misconfigured change |
flowchart TB
subgraph R1[Rack 1 - failure domain A]
S1[pve-01] --- SW1[ToR switch 1]
end
subgraph R2[Rack 2 - failure domain B]
S2[pve-02] --- SW2[ToR switch 2]
end
subgraph R3[Rack 3 - failure domain C]
S3[pve-03] --- SW3[ToR switch 3]
end
SW1 --- NET[Network fabric]
SW2 --- NET
SW3 --- NET
Failure-domain analysis for a Proxmox cluster
For each component, list the failure domains it shares:
| Component | Likely failure domain |
|---|---|
| Three Proxmox nodes in one rack | Single rack |
| Three Proxmox nodes across three racks | One rack at most |
| One top-of-rack switch for the cluster network | That switch |
| Two top-of-rack switches with MLAG/stacking | Both switches (correlated) |
| One NAS in the same rack | That rack |
| PBS in the same rack as primary | That rack — dangerous |
| PBS in a different building/site | Geographic separation |
Designing against correlated failure
The goal is to make every critical path cross at least two independent failure domains. For the cluster quorum path (Corosync), this means:
- Two independent switches (or LACP across one switch’s two supervisor modules).
- Two independent paths between any pair of nodes.
- Distinct uplinks.
For storage (Ceph), this means:
- OSDs placed across failure domains (hosts, racks, rooms).
- CRUSH rules that keep replicas in different domains.
- Network paths that use distinct switches from the cluster network.
For backups, this means:
- PBS in a separate rack or site from the primary cluster.
- PBS datastore on disks that are not in the same chassis as the cluster nodes.
Worked example: a 5-node hyperconverged cluster
flowchart TB
subgraph R1[Rack A]
N1[pve-01]
N2[pve-02]
SW1[ToR-A]
end
subgraph R2[Rack B]
N3[pve-03]
N4[pve-04]
SW2[ToR-B]
end
subgraph DR[DR site]
N5[pve-05]
PBS[PBS]
end
N1 --- SW1
N2 --- SW1
N3 --- SW2
N4 --- SW2
SW1 --- NET[Fabric]
SW2 --- NET
NET --- N5
NET --- PBS
N1 -. Ceph replication .-> N3
N2 -. Ceph replication .-> N4
Failure analysis:
| Event | Effect | Recovery |
|---|---|---|
| Rack A loses power | pve-01, pve-02 down | Ceph survives (3 replicas on pve-03, pve-04, pve-05); VMs restart on survivors |
| ToR-A switch fails | pve-01, pve-02 lose network | They lose quorum if ToR-B is down; otherwise cluster survives |
| DR site isolated | pve-05 down; PBS unreachable | Primary site survives, but backups fail |
The operator as a failure domain
The most underrated failure domain is the operator. A change-management mistake applied to all nodes simultaneously takes down the entire cluster. Mitigations:
- Change windows that apply rolling changes to one node at a time.
- Pre-change snapshots of the cluster config (
pmxcfs-tool versions+ a tar of/etc/pve). - Documented rollback in every change ticket.
- Two-person review for high-risk changes (firmware, kernel, cluster membership).
Common mistakes
- “Three servers in one rack is high availability.” No, it is not — the rack is a single failure domain.
- Backups in the same rack as the cluster. They share the rack, the power, and the network.
- Ignoring the operator. A solo admin applying a bad change to every node simultaneously is a real failure mode.
Key takeaways
- Failure domains are the units that fail together. Identify them, then ensure no single domain holds the entire critical path.
- The most common overlooked failure domain in Proxmox deployments is the network switch and the operator.
- Backups must live in a separate failure domain from the cluster they protect.
Knowledge check
Knowledge check · 3 questions
Q1. Three Proxmox nodes connected to a single top-of-rack switch — what failure domain do they share?
Q2. Backups should live in a separate failure domain from the cluster they protect.
Q3. Name two non-obvious failure domains commonly overlooked in design.
Passing score: 75%. Answers are checked in this browser.