CephL · Cluster DeploymentCluster Deployment
Network design for a production cluster
What you'll learn
- Enumerate the networks a deployment needs
- Size each against its traffic
- Design for isolation and manageability
- Verify the design before deployment
Prerequisites
None — start here.
Verified against Ceph Tentacle 20.2.x · Ceph Squid 19.2.x (supported previous) · cephadm matches the verified Ceph release · podman 4.x · csi-rbd and csi-cephfs current · RBD / CephFS / RGW current (matches Ceph release) · Linux kernel 5.15+ (5.10 minimum) · Ubuntu 24.04 LTS (Ceph host baseline) · Debian 12 (Bookworm) (Ceph host baseline) · Rocky Linux / RHEL / AlmaLinux 9.x (Ceph host baseline) · Proxmox VE 9.x (cross-course integration) · Kubernetes 1.31+ (cross-course integration) · 2026-08-18
Why this matters in production
Networks are decided at build time and are expensive to change. Getting the count and the sizing right means understanding what each carries, which is a short list.
The networks
| Network | Carries | Required? |
|---|---|---|
| Public | client I/O, monitor traffic, RGW and MDS to OSDs | yes |
| Cluster | OSD replication, recovery, heartbeats | optional |
| Management | SSH, orchestration, monitoring scrape, IPMI | recommended |
Ceph itself uses the first two. A management network is an operational choice: it keeps administrative access working when the storage networks are saturated, which is precisely when you need it.
ceph config set global public_network 10.20.0.0/16
ceph config set global cluster_network 10.30.0.0/16
There is no separate network for credentials or authentication — cephx traffic rides the public network with everything else.
Sizing
Public network — sized against client demand, remembering that RGW and MDS traffic to OSDs also rides it:
client read demand + client write demand + RGW-to-OSD + MDS-to-OSD
Cluster network — sized against replication and recovery:
replication: (size − 1) × client write rate
recovery: bounded only by throttles; the peak driver
Recovery is what sizes the cluster network. Compute the traffic for rebuilding your largest OSD and divide by the acceptable window.
Without a cluster network, everything shares the public link and the sum is what matters:
size-3 pool, 1 GB/s of client writes
→ 1 GB/s client + 2 GB/s replication = 3 GB/s on one network
Whether to separate
Separate when: recovery demonstrably affects client latency; the cluster is large; EC multiplies recovery volume; two fabrics are operationally manageable.
Do not separate when: a single faster network has ample headroom; the team cannot troubleshoot two paths; the cluster is small.
A single well-provisioned 25 or 100 Gb network frequently beats two congested 10 Gb ones, and it has one failure mode instead of three.
Verifying before deployment
# between every pair of storage hosts, on every network
iperf3 -c 10.30.0.21 -P 8 -t 30
# MTU, if jumbo frames are in use
ping -M do -s 8972 -c 3 10.30.0.21
# latency baseline
ping -c 1000 -i 0.01 10.30.0.21 | tail -2
Record the results. They are the baseline every future investigation compares against, and they are impossible to reconstruct later.
Quiz
Knowledge check · 4 questions
Q1. What should the cluster network be sized against?
Q2. Ceph requires a separate network for authentication and credential traffic.
Q3. Decide on network separation for a new cluster.
A 40-host cluster with 20 TB HDDs will use EC 8+3 for object storage. Budget allows either two 25 Gb networks or one 100 Gb network per host. The operations team has limited network troubleshooting experience.
Q4. Why is a management network worth an interface per host?
Passing score: 75%. Answers are checked in this browser.
Production discipline
Size the cluster network against recovery rather than replication;
replication is bounded by client demand and recovery is not. Record
iperf3, MTU, and latency baselines at commissioning — they are the
reference every later investigation needs and cannot be reconstructed
afterwards.
Cross-course references
- Kubernetes: separating control-plane, data, and management networks addresses the same concerns
- Linux: out-of-band management exists precisely for the saturated-network case