Projected Usable Capacity
{{ formatCap(usableTB) }} {{ unit }}
{{ formatCap(rawEffectiveTB) }} {{ unit }} Raw (post-overhead) {{ protectionLabel }} {{ (100 * totalEfficiency).toFixed(1) }} % Protected Eff.
Node {{ i }}
Filled: {{ manualValidCount }} / {{ Math.max(0, Math.floor(Number(nodeCount) || 0)) }} nodes, {{ formatCap(rawTB) }} {{ unit }} total (before overhead).
{{ (nearfull * 100).toFixed(0) }} %
OSDs / node
Cap {{ unit }}
{{ (osdOverhead*100).toFixed(1) }} %
{{ (skew*100).toFixed(1) }} %
Recommended nearfull ≤ {{ (recommendedNearfull * 100).toFixed(0) }}% to recover after {{ failNodes }} {{ failureDomain }} failure{{ failNodes===1?'':'s' }}. Using {{ (effectiveNearfull * 100).toFixed(0) }}%.
MetricValueCopy
Nodes {{ nodes.length }}
Raw storage ({{ unit }}) {{ formatCap(rawTB) }}
Overhead ({{ unit }}) {{ formatCap(rawTB - rawEffectiveTB) }}
Raw post-overhead ({{ unit }}) {{ formatCap(rawEffectiveTB) }}
OSD nearfull (used) {{ (effectiveNearfull*100).toFixed(0) }} %
Recommended nearfull {{ (recommendedNearfull*100).toFixed(0) }} %
Protection {{ protectionLabel }}
Protected efficiency {{ (100*totalEfficiency).toFixed(2) }} %
Efficiency @ min_size {{ (100*minEfficiency).toFixed(2) }} %
Usable capacity ({{ unit }}) {{ formatCap(usableTB) }}
Redundancy overhead ({{ unit }}) {{ formatCap(redundantRawTB) }}
Reserved / free raw ({{ unit }}) {{ formatCap(reservedRawTB) }}

                
:

Introduction:

Ceph stores objects with redundancy so a cluster can lose devices or nodes and keep data available. Capacity planning balances raw storage with protection costs and a safe fill level that leaves headroom for recovery work.

Choose replication or erasure coding, set how many copies or data and parity chunks you need, and enter node capacities. Pick a nearfull threshold that leaves space to reshape data when failures happen. The calculator shows usable capacity, redundancy overhead, and reserved space.

Use a higher headroom when you tolerate multiple node losses in the same failure domain. Adding nodes increases raw storage while also improving balance, which can increase effective headroom at the same threshold.

The model simplifies placement and assumes balanced data across devices. Use it to compare protection modes and to set a safe nearfull level for your environment.

Technical Details

Raw capacity is the sum of node capacities after subtracting per‑OSD or filesystem overhead and any skew factor. Usable capacity depends on the protection scheme and the portion of raw space you allow the cluster to use before marking OSDs nearfull.

Raw = nodesCi Raw′ = Raw×(1-o)×(1-s) Used raw = Raw′×f Efficiency = rep: 1r, EC: kk+m Usable = Used raw×Efficiency
Symbols and units
Symbol Meaning Unit/Datatype Source
CiCapacity of node iTBInput
oOverhead fraction0–0.95Input
sSkew fraction0–0.95Input
fNearfull fraction0–1Input/derived
rReplica sizeintegerInput
k, mEC data, parity chunksintegersInput

Input & validation

Validation rules
Field Type Accepted values Notes Placeholder
Nodesinteger≥ 0Manual per‑node caps optional6
UnitenumTBDisplay onlyTB
Modeenumrep | ecReplication or ECrep
replicasinteger≥ 1Size for replication3
ec k+mintegersk ≥ 1, m ≥ 0Chunks for EC4+2
nearfullnumber0–1Effective ≤ recommended0.85
Overhead, skewnumber0–0.95Applied multiplicatively0
Failure domainenumhost | osd | customHeadroom estimatehost

I/O formats

Inputs and outputs
Input Accepted Families Output Encoding/Precision
Node capacities, protection, thresholdsNumbers and enumsRaw, usable, redundancy, reserved2 decimals
CSV/JSON exportsPlain CSV; UTF‑8 JSON

Privacy & compliance

All inputs are processed locally. No cluster information is transmitted.