]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | ======================= |
2 | ISA erasure code plugin | |
3 | ======================= | |
4 | ||
5 | The *isa* plugin encapsulates the `ISA | |
6 | <https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version/>`_ | |
f67539c2 | 7 | library. |
7c673cae FG |
8 | |
9 | Create an isa profile | |
10 | ===================== | |
11 | ||
12 | To create a new *isa* erasure code profile:: | |
13 | ||
14 | ceph osd erasure-code-profile set {name} \ | |
15 | plugin=isa \ | |
16 | technique={reed_sol_van|cauchy} \ | |
17 | [k={data-chunks}] \ | |
18 | [m={coding-chunks}] \ | |
224ce89b WB |
19 | [crush-root={root}] \ |
20 | [crush-failure-domain={bucket-type}] \ | |
21 | [crush-device-class={device-class}] \ | |
7c673cae FG |
22 | [directory={directory}] \ |
23 | [--force] | |
24 | ||
25 | Where: | |
26 | ||
27 | ``k={data chunks}`` | |
28 | ||
29 | :Description: Each object is split in **data-chunks** parts, | |
30 | each stored on a different OSD. | |
31 | ||
32 | :Type: Integer | |
33 | :Required: No. | |
34 | :Default: 7 | |
35 | ||
36 | ``m={coding-chunks}`` | |
37 | ||
38 | :Description: Compute **coding chunks** for each object and store them | |
39 | on different OSDs. The number of coding chunks is also | |
40 | the number of OSDs that can be down without losing data. | |
41 | ||
42 | :Type: Integer | |
43 | :Required: No. | |
44 | :Default: 3 | |
45 | ||
46 | ``technique={reed_sol_van|cauchy}`` | |
47 | ||
48 | :Description: The ISA plugin comes in two `Reed Solomon | |
49 | <https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction>`_ | |
50 | forms. If *reed_sol_van* is set, it is `Vandermonde | |
51 | <https://en.wikipedia.org/wiki/Vandermonde_matrix>`_, if | |
52 | *cauchy* is set, it is `Cauchy | |
53 | <https://en.wikipedia.org/wiki/Cauchy_matrix>`_. | |
54 | ||
55 | :Type: String | |
56 | :Required: No. | |
57 | :Default: reed_sol_van | |
58 | ||
224ce89b | 59 | ``crush-root={root}`` |
7c673cae FG |
60 | |
61 | :Description: The name of the crush bucket used for the first step of | |
9f95a23c | 62 | the CRUSH rule. For instance **step take default**. |
7c673cae FG |
63 | |
64 | :Type: String | |
65 | :Required: No. | |
66 | :Default: default | |
67 | ||
224ce89b | 68 | ``crush-failure-domain={bucket-type}`` |
7c673cae FG |
69 | |
70 | :Description: Ensure that no two chunks are in a bucket with the same | |
71 | failure domain. For instance, if the failure domain is | |
72 | **host** no two chunks will be stored on the same | |
b32b8144 | 73 | host. It is used to create a CRUSH rule step such as **step |
7c673cae FG |
74 | chooseleaf host**. |
75 | ||
76 | :Type: String | |
77 | :Required: No. | |
78 | :Default: host | |
79 | ||
224ce89b WB |
80 | ``crush-device-class={device-class}`` |
81 | ||
82 | :Description: Restrict placement to devices of a specific class (e.g., | |
83 | ``ssd`` or ``hdd``), using the crush device class names | |
84 | in the CRUSH map. | |
85 | ||
86 | :Type: String | |
87 | :Required: No. | |
88 | :Default: | |
89 | ||
7c673cae FG |
90 | ``directory={directory}`` |
91 | ||
92 | :Description: Set the **directory** name from which the erasure code | |
93 | plugin is loaded. | |
94 | ||
95 | :Type: String | |
96 | :Required: No. | |
97 | :Default: /usr/lib/ceph/erasure-code | |
98 | ||
99 | ``--force`` | |
100 | ||
101 | :Description: Override an existing profile by the same name. | |
102 | ||
103 | :Type: String | |
104 | :Required: No. | |
105 |