1 ============================
2 Jerasure erasure code plugin
3 ============================
5 The *jerasure* plugin is the most generic and flexible plugin, it is
6 also the default for Ceph erasure coded pools.
8 The *jerasure* plugin encapsulates the `Jerasure
9 <http://jerasure.org>`_ library. It is
10 recommended to read the *jerasure* documentation to get a better
11 understanding of the parameters.
13 Create a jerasure profile
14 =========================
16 To create a new *jerasure* erasure code profile::
18 ceph osd erasure-code-profile set {name} \
22 technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion} \
24 [crush-failure-domain={bucket-type}] \
25 [crush-device-class={device-class}] \
26 [directory={directory}] \
33 :Description: Each object is split in **data-chunks** parts,
34 each stored on a different OSD.
42 :Description: Compute **coding chunks** for each object and store them
43 on different OSDs. The number of coding chunks is also
44 the number of OSDs that can be down without losing data.
50 ``technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion}``
52 :Description: The more flexible technique is *reed_sol_van* : it is
53 enough to set *k* and *m*. The *cauchy_good* technique
54 can be faster but you need to chose the *packetsize*
55 carefully. All of *reed_sol_r6_op*, *liberation*,
56 *blaum_roth*, *liber8tion* are *RAID6* equivalents in
57 the sense that they can only be configured with *m=2*.
61 :Default: reed_sol_van
63 ``packetsize={bytes}``
65 :Description: The encoding will be done on packets of *bytes* size at
66 a time. Chosing the right packet size is difficult. The
67 *jerasure* documentation contains extensive information
76 :Description: The name of the crush bucket used for the first step of
77 the ruleset. For intance **step take default**.
83 ``crush-failure-domain={bucket-type}``
85 :Description: Ensure that no two chunks are in a bucket with the same
86 failure domain. For instance, if the failure domain is
87 **host** no two chunks will be stored on the same
88 host. It is used to create a ruleset step such as **step
95 ``crush-device-class={device-class}``
97 :Description: Restrict placement to devices of a specific class (e.g.,
98 ``ssd`` or ``hdd``), using the crush device class names
105 ``directory={directory}``
107 :Description: Set the **directory** name from which the erasure code
112 :Default: /usr/lib/ceph/erasure-code
116 :Description: Override an existing profile by the same name.