Erasure coding optimizations
Erasure coding (EC) optimizations improve performance for small I/O operations and reduce storage overhead in erasure-coded pools by eliminating padding.
Starting with the IBM Storage Ceph 9.9.0 release, EC optimizations are enabled by default for newly created pools. This behavior is controlled by the global flag described below.
EC optimizations affect workloads differently depending on how applications store and access data:
- RADOS Block Device (RBD) and Ceph File System (CephFS)
- Gain higher performance and reduced capacity usage.
- Ceph Object Gateway with large sequential objects
- Experience minimal benefit.
- Ceph Object Gateway with many small objects or random access
- Gain improved performance and reduced capacity usage.
When you enable EC optimizations, you cannot disable them because they change how data is stored. You can configure EC optimizations at either the pool level or the global level:
- Pool level
- Use the
allow_ec_optimizationsoption to enable EC optimizations for a specific pool.
- Global level
- Use the
osd_pool_default_flag_ec_optimizationsoption to set EC optimizations as the default for all newly created erasure-coded pools.
You must meet the following requirements before you enable EC optimizations:
- Upgrade all Monitors and OSDs to IBM Storage Ceph 9.9.0 or later.
- Clients and gateways do not require upgrading.
- Supported with the following EC config combinations:
- Plugin
- Jerasure — Technique:
reed_sol_van
- Plugin
- ISA-L — Technique:
reed_sol_vanorcauchy
Note: Any EC pool created with the above plugins and technique will support EC enhancements, irrespective ofk, mvalues. The appropriate technique is automatically selected based on thek,mconfiguration.
Before enabling EC optimizations, review the following limitations to avoid configuration errors:
- IBM Storage Ceph blocks the operation with an error if you attempt to enable EC optimizations with an unsupported plugin or technique.