Locally repairable erasure code plugin
======================================
-With the *jerasure* plugin, when an erasure coded object is stored on
+With the *isa* plugin, when an erasure coded object is stored on
multiple OSDs, recovering from the loss of one OSD requires reading
-from *k* others. For instance if *jerasure* is configured with
+from *k* others. For instance if *isa* is configured with
*k=8* and *m=4*, recovering from the loss of one OSD requires reading
from eight others.
---------------
It is strictly equivalent to using a *K=2* *M=1* erasure code profile. The *DD*
-implies *K=2*, the *c* implies *M=1* and the *jerasure* plugin is used
+implies *K=2*, the *c* implies *M=1* and the *isa* plugin is used
by default.:
.. prompt:: bash $
Testing with different Erasure Code backends
--------------------------------------------
-LRC now uses jerasure as the default EC backend. It is possible to
+LRC now uses ISA as the default EC backend. It is possible to
specify the EC backend/algorithm on a per layer basis using the low
level configuration. The second argument in layers='[ [ "DDc", "" ] ]'
is actually an erasure code profile to be used for this level. The
-example below specifies the ISA backend with the cauchy technique to
+example below specifies the Jerasure backend with the cauchy technique to
be used in the lrcpool.:
.. prompt:: bash $
ceph osd erasure-code-profile set LRCprofile \
plugin=lrc \
mapping=DD_ \
- layers='[ [ "DDc", "plugin=isa technique=cauchy" ] ]'
+ layers='[ [ "DDc", "plugin=jerasure technique=cauchy" ] ]'
ceph osd pool create lrcpool erasure LRCprofile
You could also use a different erasure code profile for each
* version 2.1 of the License, or (at your option) any later version.
*
*/
-
#include <cerrno>
#include <algorithm>
if (layer.profile.find("m") == layer.profile.end())
layer.profile["m"] = stringify(layer.coding.size());
if (layer.profile.find("plugin") == layer.profile.end())
- layer.profile["plugin"] = "jerasure";
+ layer.profile["plugin"] = "isa";
if (layer.profile.find("technique") == layer.profile.end())
layer.profile["technique"] = "reed_sol_van";
int err = registry.factory(layer.profile["plugin"],
EXPECT_EQ(0, lrc.layers_init(&cerr));
EXPECT_EQ("5", lrc.layers.front().profile["k"]);
EXPECT_EQ("2", lrc.layers.front().profile["m"]);
- EXPECT_EQ("jerasure", lrc.layers.front().profile["plugin"]);
+ EXPECT_EQ("isa", lrc.layers.front().profile["plugin"]);
EXPECT_EQ("reed_sol_van", lrc.layers.front().profile["technique"]);
}
}