Skip to main content
RunBook Academy

Proxmox VEXIV · Disaster RecoveryDR architecture

Site failure design and DR site architecture

Advanced⏱ ~26 min

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

Not yet marked complete on this device.

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
OptionRecovery RTOCostUse
PBS off-site onlyHours (manual restore)LowRTO > 4 h acceptable
PBS off-site + DR cluster (cold)1-4 hMediumRTO 1-4 h
PBS off-site + DR cluster (warm)< 30 minHighMission critical
Multi-site active/activeSecondsVery highTrue 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.

ComponentMissing it meansCost to have it
A resolver at the DR siteThe DR cluster cannot reach PBS by name, because the resolver was at the primaryOne small VM, or a forwarder
Time sourceTLS validation fails estate-wide and looks like a credential problemAn NTP config that does not point at the dead site
The PBS server’s TLS fingerprintYou cannot add the storage; the fingerprint is verifiedOne line in a printed document
Platform configurationStorage definitions, users, ACLs, firewall, SDN all rebuilt from memoryA PBS host backup - see rebuilding the platform
Backup encryption keysThe intact offsite backups cannot be decryptedKey escrow - see DR for the backup server
A credential that works without identityThe restore tooling authenticates against a system you have not restoredOne local account, documented
Bridge names matching productionGuests restore and come up on the wrong network, or noneA naming standard, applied
Out-of-band access to DR hardwareCold nodes that will not POST need hands, at a site nobody is atIPMI 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.

Read-only / SafeDR site readiness - each line either passes or names what is missing
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'
done

Cold vs warm DR cluster

Cold DRWarm DR
Power onOn demandAlways on
CapacityMinimum for critical VMsMatches primary
Recovery timeHoursMinutes
CostLowerHigher
TestingEasy (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:

  1. Update DNS records to point to the DR site’s public IPs (if applicable).
  2. Activate firewall rules allowing external traffic to DR.
  3. Bring up DR cluster nodes and PBS.
  4. Restore VMs in dependency order.
  5. 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

  1. Q1. Which option provides the fastest recovery from site failure?

  2. Q2. A long DNS TTL accelerates DR cutover.

  3. Q3. What is the minimum viable DR architecture for a small business?

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

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