ODF & Metro-DR: Multi-Cluster RPO=0 Resilience and Synchronous Storage on OpenShift
Briefing Summary
In production cloud-native environments, high availability for stateless architectures is well-mastered through multi-zone pod spreading. Conversely, for mission-critical stateful services—transactional databases, Kafka brokers, KubeVirt virtual machine disks, or generative AI vector databases (Milvus, Qdrant)—the sudden loss of an entire datacenter represents the ultimate platform engineering challenge: state corruption, irreversible data loss (RPO > 0), or extended downtime (high RTO).
While asynchronous periodic snapshot backups (CSI / OADP / Velero) are ideal for regional, long-distance disaster recovery, they fall short of meeting zero-data-loss business continuity mandates across metropolitan distances. This is precisely where OpenShift Data Foundation (ODF) in a Metro-DR topology delivers: combining the Rook-Ceph distributed storage engine, block-level synchronous replication (Ceph RBD Mirroring), and the RamenDR multi-cluster orchestration operator governed by Red Hat Advanced Cluster Management (RHACM) to guarantee RPO = 0 and automated failover within minutes.
1. Two Disaster Recovery Architectures in ODF: Metro-DR vs Regional-DR
Building a resilient enterprise storage architecture requires distinguishing between the two primary DR modes available in OpenShift Data Foundation:
- Regional-DR (Asynchronous — RPO > 0): Deployed across two OpenShift clusters separated by hundreds of kilometers, where wide-area network latency makes synchronous replication impractical. RBD mirroring operates via differential snapshots scheduled at fixed intervals (e.g., every 5 to 15 minutes). In the event of a datacenter disaster, writes committed after the latest snapshot are lost.
- Metro-DR (Synchronous — RPO = 0): Deployed across a metropolitan area connecting two data centers via dark fiber with round-trip network latency (RTT < 10 ms). Every block write operation is acknowledged simultaneously across both sites before returning success to the application layer. In a complete site outage, zero data is lost (RPO = 0).
In enterprise two-cluster Metro-DR setups, two independent OpenShift clusters each host a dedicated local ODF/Ceph storage instance, synchronously mirrored over encrypted inter-cluster tunnels managed by Submariner. A lightweight third site hosts the RHACM hub cluster to act as an independent arbiter and prevent split-brain scenarios.
2. Under the Hood: Rook-Ceph RBD Mirroring and Submariner
At the storage layer, ODF relies on the open-source Rook-Ceph operator:
- Synchronous rbd-mirror Daemon: Ceph RADOS Block Device (RBD) pools backing Persistent Volume Claims (PVCs) operate with journaled synchronous replication. Every I/O write request is recorded in Ceph’s journal and committed to the peer cluster prior to completing the POSIX call.
- Secure Networking with Submariner: Storage replication traffic between OpenShift clusters flows across dedicated IPSec/WireGuard tunnels established at the CNI layer (OVN-Kubernetes) by Submariner, eliminating any requirement to expose Ceph MON or OSD daemons to external networks.
- Fault Domain Isolation: Unlike a single stretch cluster, a two-cluster Metro-DR model fully decouples the Kubernetes control planes and etcd instances. Network instability or API Server failure on Site A has zero blast radius on Cluster B.
3. Declarative Orchestration with RamenDR and RHACM
The operational power of this architecture lies in declarative orchestration driven by Kubernetes Custom Resource Definitions (CRDs) from the open-source RamenDR project, integrated natively into Red Hat Advanced Cluster Management (RHACM):
DRPolicyCRD: Specifies the protection policy, replication scheduling interval (0m for strict synchronous Metro-DR), and participating cluster pairs:
apiVersion: ramendr.openshift.io/v1alpha1
kind: DRPolicy
metadata:
name: metro-dr-sync-policy
spec:
drClusters:
- ocp-cluster-primary
- ocp-cluster-secondary
schedulingInterval: 0m # Strict synchronous mode (RPO=0)
DRPlacementControl(DRPC) CRD: Binds application workloads (managed via RHACMPlacementor ArgoCDApplicationSet) to theDRPolicy. RamenDR continuously reconciles replication health across all PVCs bound to the target namespace.- Failover vs Relocate:
- Relocate (Planned Switchover): Used for maintenance windows. RamenDR cleanly pauses the application on the primary cluster, drains pods, flushes I/O buffers, unmounts Ceph PVCs, demotes the primary RBD mirror, promotes the peer volume to primary, and boots workloads on the target cluster with zero data loss.
- Failover (Unplanned Outage): When the primary cluster suffers an unrecoverable failure, RHACM triggers emergency failover. RamenDR promotes the secondary RBD volumes to read/write mode and immediately deploys pods on the surviving cluster.
4. Enterprise Workloads: KubeVirt and AI Vector Databases
This resilient storage architecture addresses two cornerstone challenges in platform engineering:
- KubeVirt Virtual Machines (OpenShift Virtualization): VM disks run on raw Block PVCs backed by RBD StorageClasses. With Metro-DR, critical legacy virtual machines running inside KubeVirt can fail over between datacenters without reprovisioning, preserving total disk state and filesystem integrity.
- AI Pipelines & RAG Vector Databases (Milvus / Qdrant): Production vector stores supporting enterprise LLM applications demand high-throughput, low-latency persistence for dense vector indexes. Metro-DR protects persistent vector indexes and metadata from split-brain corruption and datacenter loss, ensuring uninterrupted sovereign AI operations.
5. Curriculum Alignment at Aperta Scientia
- AS200 Track (DevOps Platform Engineer — 399h): Advanced modules DO380 (OpenShift Automation and Integration) and DO370 (Enterprise Storage with OpenShift Data Foundation)—deploying and tuning Rook-Ceph pools, configuring RBD/CephFS StorageClasses, establishing multi-cluster tunnels with Submariner, and automating declarative DR failover workflows with RHACM and RamenDR.
- AS300 Track (AI Platform Engineer — 399h): High-availability storage infrastructure for AI data pipelines and LLM inference—vector database persistence (Milvus, Qdrant), managing stateful cache volumes and model weights with zero-data-loss guarantees across multi-zone sovereign platforms.
Technical Sources & References
- Red Hat Developer Blog — Disaster recovery for stateful applications on OpenShift: developers.redhat.com/articles/2025/08/14/disaster-recovery-stateful-applications-openshift
- Red Hat Documentation — Configuring OpenShift Data Foundation Disaster Recovery for OpenShift Workloads (Metro-DR): docs.redhat.com/en/documentation/red_hat_openshift_data_foundation/4.16/html/configuring_openshift_data_foundation_disaster_recovery_for_openshift_workloads/
- Rook-Ceph Documentation — Ceph Cluster CRD & Synchronous Mirroring: rook.io/docs/rook/latest-release/CRDs/Cluster/ceph-cluster-crd/
- RamenDR Project (CNCF Sandbox) — Disaster Recovery for Kubernetes Stateful Applications: ramendr.github.io/ramen/
- Red Hat Advanced Cluster Management (RHACM) — Multi-Cluster Application Lifecycle & DRPolicy Automation: access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/
Apply these technologies in production
Explore our intensive 3-month AS200 (DevOps) and AS300 (AI Platform Engineer) curriculums.