Redundancy Overhead: Raw Space vs. User Space
When planning a MooseFS deployment, it's important to understand the difference between raw storage space and user-available space, especially in the context of redundancy. The method you choose to protect your data - replication or erasure coding - directly impacts how much physical storage is consumed compared to the amount of data your users actually store.
Raw Space vs. User Space
- Raw space refers to the total capacity of your storage cluster (i.e., the combined capacity of all Chunkserver disks).
- User space (also called effective capacity) is the portion of raw space actually available for storing user data, after accounting for redundancy overhead.
Because redundancy involves storing additional copies or parity data, the user space is always smaller than the raw space. The level of overhead depends on the chosen redundancy method.
Overhead with Replication
In replication mode, MooseFS stores full copies of each chunk. This provides strong redundancy and fast recovery, but at the cost of high storage overhead.
For example:
- 2 replicas → 50% of raw space is available as user space
- 3 replicas → ~33% of raw space is usable
- 4 replicas → 25% usable, and so on
This overhead scales linearly: the more copies you store, the less user space you have per TB of raw capacity.
Overhead with Erasure Coding
Erasure Coding (EC) is more storage-efficient, especially at higher redundancy levels. Instead of full copies, it splits each chunk into data parts and parity parts, and stores only the parts needed to reconstruct the data in case of failure.
For example:
- EC 4+2 → 66% of raw space is usable (4 out of 6 parts are data)
- EC 8+3 → ~73% usable
- EC 8+2 → 80% usable
This means that, for the same level of fault tolerance, EC typically offers more user space than replication - though at the cost of increased computational overhead and slightly more complex recovery logic.
Choosing the Right Balance
Understanding the trade-off between raw space and user space helps you:
- Optimize storage cost per usable terabyte
- Design the right balance between performance and efficiency
- Select redundancy policies (via Storage Classes) based on data type, access frequency, and criticality
For example, replication might be better for hot data that requires low latency, while erasure coding is ideal for archival or infrequently accessed datasets.
Summary
Redundancy adds overhead by design - but how much depends on the method used. MooseFS gives you the flexibility to choose between replication and erasure coding based on your space, performance, and durability requirements.
- Replication: simple, fast, high overhead
- Erasure Coding: efficient, scalable, with slightly higher complexity
In all cases, planning for redundancy means understanding that not all raw space translates directly into usable space - and designing accordingly.