]> git.proxmox.com Git - ceph.git/blob - ceph/doc/rados/operations/erasure-code-jerasure.rst
b0e6020cdf27a33fd7c26b1851cc56fc2ce5e6f0
[ceph.git] / ceph / doc / rados / operations / erasure-code-jerasure.rst
1 ============================
2 Jerasure erasure code plugin
3 ============================
4
5 The *jerasure* plugin is the most generic and flexible plugin, it is
6 also the default for Ceph erasure coded pools.
7
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.
12
13 Create a jerasure profile
14 =========================
15
16 To create a new *jerasure* erasure code profile::
17
18 ceph osd erasure-code-profile set {name} \
19 plugin=jerasure \
20 k={data-chunks} \
21 m={coding-chunks} \
22 technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion} \
23 [ruleset-root={root}] \
24 [ruleset-failure-domain={bucket-type}] \
25 [directory={directory}] \
26 [--force]
27
28 Where:
29
30 ``k={data chunks}``
31
32 :Description: Each object is split in **data-chunks** parts,
33 each stored on a different OSD.
34
35 :Type: Integer
36 :Required: Yes.
37 :Example: 4
38
39 ``m={coding-chunks}``
40
41 :Description: Compute **coding chunks** for each object and store them
42 on different OSDs. The number of coding chunks is also
43 the number of OSDs that can be down without losing data.
44
45 :Type: Integer
46 :Required: Yes.
47 :Example: 2
48
49 ``technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion}``
50
51 :Description: The more flexible technique is *reed_sol_van* : it is
52 enough to set *k* and *m*. The *cauchy_good* technique
53 can be faster but you need to chose the *packetsize*
54 carefully. All of *reed_sol_r6_op*, *liberation*,
55 *blaum_roth*, *liber8tion* are *RAID6* equivalents in
56 the sense that they can only be configured with *m=2*.
57
58 :Type: String
59 :Required: No.
60 :Default: reed_sol_van
61
62 ``packetsize={bytes}``
63
64 :Description: The encoding will be done on packets of *bytes* size at
65 a time. Chosing the right packet size is difficult. The
66 *jerasure* documentation contains extensive information
67 on this topic.
68
69 :Type: Integer
70 :Required: No.
71 :Default: 2048
72
73 ``ruleset-root={root}``
74
75 :Description: The name of the crush bucket used for the first step of
76 the ruleset. For intance **step take default**.
77
78 :Type: String
79 :Required: No.
80 :Default: default
81
82 ``ruleset-failure-domain={bucket-type}``
83
84 :Description: Ensure that no two chunks are in a bucket with the same
85 failure domain. For instance, if the failure domain is
86 **host** no two chunks will be stored on the same
87 host. It is used to create a ruleset step such as **step
88 chooseleaf host**.
89
90 :Type: String
91 :Required: No.
92 :Default: host
93
94 ``directory={directory}``
95
96 :Description: Set the **directory** name from which the erasure code
97 plugin is loaded.
98
99 :Type: String
100 :Required: No.
101 :Default: /usr/lib/ceph/erasure-code
102
103 ``--force``
104
105 :Description: Override an existing profile by the same name.
106
107 :Type: String
108 :Required: No.
109