Metric | Value |
---|---|
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) }}
|
Ceph stores objects across many nodes using replication or erasure coding to survive failures while distributing load. Usable capacity differs from raw capacity because space is reserved for redundancy, metadata, and rebalancing. Planning therefore requires converting node-level figures into protected efficiency, then applying operational headroom so recovery can complete within your fault-tolerance goals.
This tool models that process from first principles. You enter homogeneous or heterogeneous node capacities, choose a protection scheme, and set operational factors such as nearfull safety, service overhead, placement skew, and failure tolerance. The reactive engine calculates raw post-overhead capacity, recommends a safe nearfull threshold, and derives usable capacity plus a concise breakdown.
Use it when designing a new cluster, validating an expansion, or explaining trade-offs to stakeholders. For example, five 8 TB nodes at 3× replication often yield roughly 10 TB usable after headroom. Caution: it estimates space, not performance; leave margin for background repairs, snapshots, and upgrades.
Replication stores r full copies of each object; erasure coding splits data into k data and m parity chunks, reconstructable from any k. Protected efficiency expresses payload as a fraction of consumed raw space. Operational factors include filesystem/OSD overhead, a nearfull ratio limiting usable raw to preserve recovery headroom, and placement skew reflecting CRUSH imbalance. A failure domain defines the blast radius considered in headroom.
Metric | Meaning | Implication |
---|---|---|
Usable | Estimated payload space after protection and headroom. | Primary figure for planning dataset growth. |
Redundancy | Raw consumed to achieve durability. | Grows with higher replication or parity. |
Reserved | Raw left unused due to nearfull headroom. | Enables rebalance and repair after failures. |
Protected efficiency | Payload divided by consumed raw. | Equals 1/replicas or k/(k+m). |
Efficiency @ min_size | Payload efficiency when operating at the minimum healthy size. | Repairs may temporarily reduce efficiency. |
Recommended nearfull | Ceiling ensuring enough free space to heal tolerated failures. | Lower when domains are large or many. |
Use the protected efficiency and recommended nearfull together; raising one typically lowers the other. A higher headroom percentage trades capacity for faster, safer recovery.
Parameter | Meaning | Unit/Datatype | Typical Range | Notes |
---|---|---|---|---|
Capacity per node | Homogeneous node size. | MB/GB/TB/PB or MiB/GiB/TiB/PiB | 1–100 TB | Use manual list for mixed nodes. |
Total nodes | Node count when homogeneous. | Integer | 3–1000 | Minimum depends on chosen protection. |
Node capacities | Comma/space list for heterogeneous clusters. | Numbers | Varies | Parsed as a set of node sizes. |
Protection mode | Replication or erasure coding. | Enum | — | Choose to match pools. |
Replicas (r ) | Full copies stored. | Integer ≥ 1 | 2–4 | Efficiency = 1/r . |
Rep min_size | Minimum healthy copies. | Integer | 2–3 | Lower implies degraded risk. |
EC k , m | Data and parity chunks. | Integers | k=4–12, m=2–6 | Efficiency = k/(k+m) . |
EC min_size | Minimum chunks to serve IO. | Integer ≥ k | k–k+m | Lower increases risk under failures. |
Nearfull | Allowed fullness before backoff. | Fraction | 0.50–0.95 | Clamped to recommendation unless overridden. |
OSD/metadata overhead | Non-payload storage. | Fraction | 0–0.15 | Accounts for filesystems and metadata. |
CRUSH skew | Imbalance across devices. | Fraction | 0–0.15 | Reduces usable to reflect hot/overfull nodes. |
Failure domain | Unit used for headroom. | Host, OSD, or custom | — | Domain capacity multiplies tolerated failures. |
Domains to tolerate | Failures healed without reweighting. | Integer ≥ 0 | 0–2 | Higher values reduce nearfull. |
Accept degraded | Allow operating above recommendation. | Boolean | Off/On | Risky under multiple failures. |
Example (5 nodes × 8 TB, replication r=3, overhead o=0.05, nearfull request 0.80, tolerate f=1 host, domain D=8 TB, skew s=0):
Redundancy ≈ 20 TB; reserved headroom ≈ 8 TB.
Equations align with standard Ceph concepts for replica count, erasure coding parameters, placement via CRUSH, nearfull thresholds, and pool min_size. See the Ceph documentation on replication, erasure coding profiles, and cluster fullness thresholds, and the “CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data” paper by Weil et al. for placement theory.
This calculator processes non-personal infrastructure data and performs all computations client-side; organizational policies and data-handling rules may still apply.
Follow these steps to estimate usable space and export results for planning.
Warning Aggressively raising nearfull or lowering min_size increases operational risk during drive or host failures.
No. Calculations run in your browser, and nothing is sent to a server.
A safety cap on raw usage that preserves enough free space to heal the number of failures you plan to tolerate at your chosen domain size.
During repair or degraded states, fewer replicas or chunks serve IO; payload per raw temporarily aligns with the min_size efficiency.
Yes. Paste capacities as a list. Headroom is sized by the largest domain, so heterogeneity can reduce usable space.
It models a generic failure domain by capacity. For rack-aware planning, use a domain that reflects the largest independent blast radius.
Yes. You can use decimal (MB, GB, TB, PB) or binary (MiB, GiB, TiB, PiB) units consistently across inputs and outputs.