ceph/doc/rados/operations/erasure-code-profile.rst
Loic Dachary 5569d40bb4 documentation: add osd erasure-code-profile {set,rm,get,ls}
And a link from rados/operations.

http://tracker.ceph.com/issues/8514 Fixes: #8514

Reported-by: Kenneth Waegeman <Kenneth.Waegeman@UGent.be>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-06-03 14:53:56 +02:00

114 lines
2.9 KiB
ReStructuredText

=====================
Erasure code profiles
=====================
Erasure code is defined by a **profile** and is used when creating an
erasure coded pool and the associated crush ruleset.
The **default** erasure code profile (which is created when the Ceph
cluster is initialized) provides the same level of redundancy as two
copies but requires 25% less disk space. It is described as a profile
with **k=2** and **m=1**, meaning the information is spread over three
OSD (k+m == 3) and one of them can be lost.
To improve redundancy without increasing raw storage requirements, a
new profile can be created. 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. The object is first divided in
**10** chunks (if the object is 10MB, each chunk is 1MB) and **4**
coding chunks are computed, 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 break at the
same time.
osd erasure-code-profile set
============================
To create a new erasure code profile::
ceph osd erasure-code-profile set {name} \
[{k=data-chunks}] \
[{m=coding-chunks}] \
[{directory=directory}] \
[{plugin=plugin}] \
[{key=value} ...] \
[--force]
Where:
``{k=data-chunks}``
:Description: Each object is split in **data-chunks** parts,
each stored on a different OSD.
:Type: Integer
:Required: No.
:Default: 2
``{m=coding-chunks}``
:Description: Compute **coding chunks** for each object and store them
on different OSDs. The number of coding chunks is also
the number of OSDs that can be down without losing data.
:Type: Integer
:Required: No.
:Default: 1
``{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.
: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.
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.
osd erasure-code-profile get
============================
To display an erasure code profile::
ceph osd erasure-code-profile get {name}
osd erasure-code-profile ls
===========================
To list the names of all erasure code profiles::
ceph osd erasure-code-profile ls