Enabling coding optimizations

Enable erasure coding (EC) optimizations, also known as Fast EC, on a pool to improve performance for small I/O operations and reduce capacity usage.

Before you begin

Before you begin, make sure that you have the following prerequisites in place:
  • All monitors and OSDs are upgraded to IBM Storage Ceph 9.9.0 or later.
  • The erasure-coded pool is configured using one of the following supported combinations:
    Plugin
    Jerasure — Technique: reed_sol_van
    Plugin

    ISA-L — Technique: reed_sol_van or cauchy

    Note: Any EC pool created with the above plugins and technique will support EC enhancements, irrespective of k, m values. The appropriate technique is automatically selected based on the k,m configuration.
  • Gateways and clients do not require upgrading.

Procedure

  1. Run the following command to enable EC optimizations on a pool.
    ceph osd pool set EC_POOL allow_ec_optimizations true
  2. Configure optimizations as the default for new pools by setting the osd_pool_default_flag_ec_optimizations configuration parameter.
    Note: Starting with IBM Storage Ceph 9.9.0, this parameter is set to true by default. This enables EC optimizations automatically for newly created pools that use supported erasure-coded configurations.
    For example,
    ceph config set global osd_pool_default_flag_ec_optimizations true

Results

The pool is optimized for workloads with small objects or random read/write operations. EC pools become more suitable for Ceph Block Device and CephFS workloads. Ceph Object Gateway workloads with many small objects benefit, while large sequential objects see minimal improvement.

Note:
  • Once enabled, EC optimizations cannot be disabled because they change how data is stored.
  • EC optimizations are supported only with the Jerasure and ISA-L plugins using the reed_sol_van or cauchy technique. Unsupported combinations are blocked with an error.