Chapter 34. Erasure Code Profiles
Ceph defines an erasure-coded pool with a profile. Ceph uses a profile when creating an erasure-coded pool and the associated crush ruleset.
Ceph creates a default erasure code profile when initializing a cluster, and it provides the same level of redundancy as two copies in a replicated pool, but uses 25% less storage capacity. The default profiles defines k=2 and m=1, meaning Ceph will spread the object data over three OSDs (k+m == 3) and Ceph can lose one of those OSDs without losing data.
You can create a new profile to improve redundancy without increasing raw storage requirements. For instance, a profile with k=10 and m=4 can sustain the loss of four (m=4) OSDs by distributing an object on fourteen (k+m=14) OSDs. Ceph divides the object into 10 chunks (if the object is 10MB, each chunk is 1MB) and computes 4 coding chunks for recovery (each coding chunk has the same size as the data chunk, i.e. 1MB). The raw space overhead is only 40% and the object will not be lost even if four OSDs fail simultaneously.
34.1. osd erasure-code-profile set
To create a new erasure code profile:
ceph osd erasure-code-profile set <name> \ [<directory=directory>] \ [<plugin=plugin>] \ [<key=value> ...] \ [--force]
Where:
<directory=directory>
- Description
- Set the directory name from which the erasure code plugin is loaded.
- Type
- String
- Required
- No.
- Default
- /usr/lib/ceph/erasure-code
<plugin=plugin>
- Description
- Use the erasure code plugin to compute coding chunks and recover missing chunks. See the list of available plugins_ for more information.
- Type
- String
- Required
- No.
- Default
- jerasure
<key=value>
- Description
- The semantic of the remaining key/value pairs is defined by the erasure code plugin.
- Type
- String
- Required
- No.
--force
- Description
- Override an existing profile by the same name.
- Type
- String
- Required
- No.
34.2. osd erasure-code-profile rm
To remove an erasure code profile:
ceph osd erasure-code-profile rm <name>
If the profile is referenced by a pool, the deletion will fail.
34.3. osd erasure-code-profile get
To display an erasure code profile:
ceph osd erasure-code-profile get <name>
34.4. osd erasure-code-profile ls
To list the names of all erasure code profiles:
ceph osd erasure-code-profile ls