]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
documentation: add osd erasure-code-profile {set,rm,get,ls} 1909/head
authorLoic Dachary <loic@dachary.org>
Tue, 3 Jun 2014 11:47:51 +0000 (13:47 +0200)
committerLoic Dachary <loic@dachary.org>
Tue, 3 Jun 2014 12:53:56 +0000 (14:53 +0200)
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>
doc/rados/operations/erasure-code-profile.rst [new file with mode: 0644]
doc/rados/operations/index.rst

diff --git a/doc/rados/operations/erasure-code-profile.rst b/doc/rados/operations/erasure-code-profile.rst
new file mode 100644 (file)
index 0000000..b863034
--- /dev/null
@@ -0,0 +1,113 @@
+=====================
+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
+
index 508e88f420aed6f655088caef44a9a7e04f136e7..96bbdda4d158d0d75157575282b47ad9902f2bbc 100644 (file)
@@ -33,6 +33,7 @@ CRUSH algorithm.
 
        data-placement
        pools
+       erasure-code-profile
        cache-tiering
        placement-groups
        crush-map