From 5569d40bb4a42d6614316fd70a5520c269b55469 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Tue, 3 Jun 2014 13:47:51 +0200 Subject: [PATCH] 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 Signed-off-by: Loic Dachary --- doc/rados/operations/erasure-code-profile.rst | 113 ++++++++++++++++++ doc/rados/operations/index.rst | 1 + 2 files changed, 114 insertions(+) create mode 100644 doc/rados/operations/erasure-code-profile.rst diff --git a/doc/rados/operations/erasure-code-profile.rst b/doc/rados/operations/erasure-code-profile.rst new file mode 100644 index 000000000000..b8630346f0b2 --- /dev/null +++ b/doc/rados/operations/erasure-code-profile.rst @@ -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 + diff --git a/doc/rados/operations/index.rst b/doc/rados/operations/index.rst index 508e88f420ae..96bbdda4d158 100644 --- a/doc/rados/operations/index.rst +++ b/doc/rados/operations/index.rst @@ -33,6 +33,7 @@ CRUSH algorithm. data-placement pools + erasure-code-profile cache-tiering placement-groups crush-map -- 2.47.3