Proxmox VEXIV · Disaster RecoveryDR architecture
Site failure design and DR site architecture
What you'll learn
- Design a DR site architecture that meets RPO/RTO targets
- Choose between PBS off-site sync and a secondary cluster
- Plan the network and DNS cutover
- Identify the operational gaps in a DR design
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
Why this matters in production
Most DR architectures fail when activated, not when designed. People forget passwords. DNS doesn’t update. Networks are misconfigured. This lesson teaches the design that survives real disasters.
Site architecture options
flowchart LR
subgraph PRIMARY[Primary site]
P1[Cluster A]
PBSP[Primary PBS]
end
subgraph DR[DR site]
P2[Cluster B standby]
PBSR[Remote PBS]
end
PBSP -->|sync hourly| PBSR
P1 -. replication .-> P2
| Option | Recovery RTO | Cost | Use |
|---|---|---|---|
| PBS off-site only | Hours (manual restore) | Low | RTO > 4 h acceptable |
| PBS off-site + DR cluster (cold) | 1-4 h | Medium | RTO 1-4 h |
| PBS off-site + DR cluster (warm) | < 30 min | High | Mission critical |
| Multi-site active/active | Seconds | Very high | True zero-downtime |
Choosing the right option
For most businesses:
- PBS off-site only covers ransomware and accidental deletion.
- PBS + cold DR cluster covers site failure with RTO 1-4 h.
- PBS + warm DR cluster covers site failure with RTO < 30 min.
- Active/active is the rarest; reserved for the most critical workloads.
DR site components
A useful DR site needs:
- Compute: at least enough capacity to run critical VMs.
- Storage: PBS datastores with synced backups.
- Network: IPs, VLANs, firewall rules matching production.
- DNS: ability to redirect external traffic.
- Identity: restored or sync’d from primary.
- Credentials: vault of administrative credentials.
- Documentation: offline access to runbooks and IPs.
The components people forget, and what each costs when missing
Compute and storage are on everyone’s list. These are the ones that turn a designed DR site into a working one, and each has a specific failure when absent.
| Component | Missing it means | Cost to have it |
|---|---|---|
| A resolver at the DR site | The DR cluster cannot reach PBS by name, because the resolver was at the primary | One small VM, or a forwarder |
| Time source | TLS validation fails estate-wide and looks like a credential problem | An NTP config that does not point at the dead site |
| The PBS server’s TLS fingerprint | You cannot add the storage; the fingerprint is verified | One line in a printed document |
| Platform configuration | Storage definitions, users, ACLs, firewall, SDN all rebuilt from memory | A PBS host backup - see rebuilding the platform |
| Backup encryption keys | The intact offsite backups cannot be decrypted | Key escrow - see DR for the backup server |
| A credential that works without identity | The restore tooling authenticates against a system you have not restored | One local account, documented |
| Bridge names matching production | Guests restore and come up on the wrong network, or none | A naming standard, applied |
| Out-of-band access to DR hardware | Cold nodes that will not POST need hands, at a site nobody is at | IPMI on a network that survives |
The pattern: every dependency that the primary site quietly supplied is a dependency the DR site must supply itself. The ones that hurt are invisible in normal operation precisely because the primary always provided them.
set -euo pipefail
PBS_HOST=pbs-dr.example.com
NODES='dr-01 dr-02 dr-03'
echo '--- can we resolve, without the primary site ---'
getent hosts "$PBS_HOST" || echo "FAIL cannot resolve $PBS_HOST"
grep -E '^nameserver' /etc/resolv.conf
echo '--- is the clock right, from a source that survives ---'
timedatectl show -p NTPSynchronized -p TimeUSec
grep -rhE '^(NTP|FallbackNTP)=' /etc/systemd/timesyncd.conf* 2>/dev/null || true
echo '--- is the backup server reachable and is its fingerprint known ---'
pvesm status --storage pbs-dr || echo 'FAIL pbs-dr storage not usable'
echo '--- do the bridges production expects exist here ---'
for BR in vmbr0 vmbr1 vmbr2; do
ip link show "$BR" >/dev/null 2>&1 \
&& printf '%s present\n' "$BR" \
|| printf '%s MISSING\n' "$BR"
done
echo '--- can we reach every DR node out of band ---'
for N in $NODES; do
printf '%-8s ' "$N"
ping -c1 -W2 "${N}-ipmi" >/dev/null 2>&1 && echo 'IPMI OK' || echo 'IPMI UNREACHABLE'
doneCold vs warm DR cluster
| Cold DR | Warm DR | |
|---|---|---|
| Power on | On demand | Always on |
| Capacity | Minimum for critical VMs | Matches primary |
| Recovery time | Hours | Minutes |
| Cost | Lower | Higher |
| Testing | Easy (spin up on demand) | Needs scheduled windows |
A warm DR cluster can run a subset of services continuously. A cold DR cluster spins up on demand.
Network and DNS cutover
When activating DR:
- Update DNS records to point to the DR site’s public IPs (if applicable).
- Activate firewall rules allowing external traffic to DR.
- Bring up DR cluster nodes and PBS.
- Restore VMs in dependency order.
- Verify each tier before moving to the next.
Production considerations
Common mistakes
- DR site without documented credentials.
- Long DNS TTLs that delay cutover.
- DR cluster hardware that hasn’t been booted in months.
- DR exercises that “work on paper” but fail in practice.
Key takeaways
- PBS off-site is the minimum.
- Warm DR for tight RTO; cold DR for moderate RTO.
- DNS TTL is a recovery-time floor.
Knowledge check
Knowledge check · 5 questions
Q1. Which option provides the fastest recovery from site failure?
Q2. A long DNS TTL accelerates DR cutover.
Q3. What is the minimum viable DR architecture for a small business?
Q4. The DR cluster is powered on after a site loss and cannot attach the offsite PBS storage. Networking is up and the PBS server is running. What should you check first?
Q5. Which of these degrade a cold DR site over time, without generating any alert? Select all that apply.
Passing score: 75%. Answers are checked in this browser.