Two-Node Cluster (experimental)¶
This guide provides installation instructions for setting up a two-node Kubernetes cluster with Rook using DRBD (Distributed Replicated Block Device) for storage replication for one of the Ceph mons.
For architecture details and design rationale, see the Two-Node Fencing Design Document.
Prerequisites¶
Before starting the installation:
- 2-node Kubernetes cluster with fencing configured (e.g., OpenShift with DualReplica topology)
- Raw block devices on each node (SSD-class, same size, no filesystem)
Installation Steps¶
Step 1: Install DRBD Kernel Modules¶
DRBD kernel modules must be installed and loaded on both nodes before running the setup script.
Follow the DRBD installation documentation for your distribution and install drbd & drbd_transport_tcp:
- DRBD 9.0 Installation Guide - Official installation guide
- DRBD User's Guide - Complete documentation
- DRBD GitHub Repository - Source code and build instructions
Verify Installation¶
On both nodes, verify DRBD modules are loaded:
Step 2: Identify Block Devices¶
Use the setup script to list available block devices on both nodes:
Example output:
Requirements for backing devices:
- Must be SSD/NVMe (ROTA=0, non-rotational)
- Can be a partition of the disk
- Same size on both nodes
- No existing filesystem (FSTYPE empty)
- Writable (not read-only)
- Volume or partition is not larger than 10Gi
Step 3: Run DRBD Setup Script¶
The setup script configures DRBD, performs initial sync, and creates the auto-start DaemonSet.
Same Device Path on Both Nodes¶
Different Device Paths Per Node¶
Available options:
./deploy/examples/drbd-setup-experimental.sh -h
Note
Network connectivity on DRBD replication port (default: 7794) between nodes, we can customise this in the script.
Step 4: Verify DRBD Setup¶
Check auto-start DaemonSet:
Check for the drbd-configure configmap
Step 5: Deploy Rook CephCluster¶
Create the CephCluster CR with floating monitor configuration:
Apply the cluster:
Step 6: Verify Ceph Cluster¶
Check monitor pods:
Expected: 3 monitor pods (mon-a, mon-b, mon-c)
Check Ceph status:
Expected output:
Configuration Summary¶
The setup creates:
- DRBD resource (
r0) with Protocol C synchronous replication - DRBD device (
/dev/drbd0) with XFS filesystem - Auto-start DaemonSet (
drbd-autostart) inrook-cephnamespace - Configuration ConfigMap (
drbd-configure) inrook-cephnamespace - Two pinned monitors (one per node) with local storage
- One floating monitor (
mon-c) backed by DRBD
Two-Node Cluster Recommendations¶
Configure pools with replica-2, pool-tnf.yaml
Troubleshooting¶
DRBD Modules Not Loaded¶
Check:
Fix: Install DRBD kernel modules (see Step 1)
DRBD Sync Not Progressing¶
Check network connectivity:
Check DRBD status:
Floating Monitor Not Starting¶
Check DRBD is Secondary on both nodes:
Check ConfigMap:
Re-run Setup Script¶
The script is idempotent and safe to re-run: