Creating a new erasure-code-profile

Learn how to create a new erasure code profile.

To create a new erasure code profile, use the following syntax, with the value information provided in Table 1.
ceph osd erasure-code-profile set NAME \
         [<directory=DIRECTORY>] \
         [<plugin=PLUGIN>] \
         [<stripe_unit=STRIPE_UNIT>] \
         [<CRUSH_DEVICE_CLASS>]\
         [<CRUSH_FAILURE_DOMAIN>]\
         [<key=value> ...] \
         [--force]
Table 1. Erasure code profile values
Value Description Type Required Default
directory Set the directory name from which the erasure code plug-in is loaded. String No. /usr/lib/ceph/erasure-code
plugin Use the erasure code plug-in to compute coding chunks and recover missing details. For more information, see Erasure code plugins. String No. isa (for new clusters created on Ceph 9.0 or later),

jerasure (for clusters upgraded from earlier versions)

Jerasure

stripe_unit The amount of data in a data chunk, per stripe. For example, a profile with 2 data chunks and stripe_unit=4K would put the range 0-4K in chunk 0, 4K-8K in chunk 1, then 8K-12K in chunk 0 again. This should be a multiple of 4K for best performance. The default value is taken from the monitor config option osd_pool_erasure_code_stripe_unit when a pool is created. The stripe_width of a pool using this profile will be the number of data chunks multiplied by this stripe_unit. String No. 4K
crush-device-class The device class, such as hdd or ssd. String No. none, meaning CRUSH uses all devices regardless of class.
crush-failure-domain The failure domain, such as host or rack. String No. host
key The semantic of the remaining key-value pairs is defined by the erasure code plug-in. String No. N/A
--force Override an existing profile by the same name. String No. N/A
Note: The plugin default depends on how the cluster was created. New 9.0 clusters use ISA-L; upgraded clusters continue with Jerasure unless specified otherwise.