Erasure Coding

Erasure coding uses a set of algorithms (similar to RAID 6) to allow the recovery of missing data using a subset of original data. In theory, EC techniques uses less storage capacity than standard replication, but keeping the same durability guarantees. Erasure coding is transparent from the application perspective.

Prerequisites

In this guide we suppose you have an OpenIO SDS namespace that is ready to use, in version 7.0.0.

Configuration

To use erasure coding, you must have a storage policy with an erasure coding data security policy configured.

Here is an example of a storage policy using erasure coding:

[STORAGE_POLICY]
EC=NONE:EC_ISA_6_3

[DATA_SECURITY]
EC_ISA_6_3=ec/k=6,m=3,algo=isa_l_rs_vand,distance=1

This describes a storage policy named EC configured with a data security policy called EC_ISA_6_3 that uses the erasure coding backend ISA-L with the following parameters:

  • algo: code of the erasure coding backend.
  • k: number of data chunks.
  • m: number of parity chunks.
  • distance: distance between chunks.
Erasure Code Backends
Name Code Description
ISA-L isa_l_rs_vand Intel Storage Acceleration Library
Liberasurecode liberasurecode_rs_vand Software only EC Library that supports a Reed-Solomon backend.
Jerasure jerasure_rs_vand EC Library that supports Reed-Solomon backends.
Jerasure (Cauchy) jerasure_rs_cauchy EC Library that supports Cauchy backend.
Flat XOR HD flat_xor_hd Flat XOR backend.
SHSS shss NTT Lab hybrid EC backend.

Additional notes