From: Jamie Pryde Date: Wed, 11 Sep 2024 09:36:52 +0000 (+0000) Subject: erasure-code/lrc: Change LRC default plugin from Jerasure to ISA X-Git-Tag: v20.0.0~349^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=25cac0fea2d4a4cd40ea74e9c823e4410a7d3c10;p=ceph.git erasure-code/lrc: Change LRC default plugin from Jerasure to ISA Signed-off-by: Jamie Pryde --- diff --git a/doc/rados/operations/erasure-code-lrc.rst b/doc/rados/operations/erasure-code-lrc.rst index 5329603b9cb..accd5d0ba36 100644 --- a/doc/rados/operations/erasure-code-lrc.rst +++ b/doc/rados/operations/erasure-code-lrc.rst @@ -2,9 +2,9 @@ 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. @@ -195,7 +195,7 @@ Minimal testing --------------- 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 $ @@ -253,11 +253,11 @@ the same rack as the lost chunk. **WARNING: PROMPTS ARE SELECTABLE** 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 $ @@ -265,7 +265,7 @@ be used in the lrcpool.: 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 diff --git a/src/erasure-code/lrc/ErasureCodeLrc.cc b/src/erasure-code/lrc/ErasureCodeLrc.cc index eb8ebd81045..b05df07c614 100644 --- a/src/erasure-code/lrc/ErasureCodeLrc.cc +++ b/src/erasure-code/lrc/ErasureCodeLrc.cc @@ -14,7 +14,6 @@ * version 2.1 of the License, or (at your option) any later version. * */ - #include #include @@ -232,7 +231,7 @@ int ErasureCodeLrc::layers_init(ostream *ss) 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"], diff --git a/src/test/erasure-code/TestErasureCodeLrc.cc b/src/test/erasure-code/TestErasureCodeLrc.cc index 22caef3396d..6bfc25e7f0c 100644 --- a/src/test/erasure-code/TestErasureCodeLrc.cc +++ b/src/test/erasure-code/TestErasureCodeLrc.cc @@ -417,7 +417,7 @@ TEST(ErasureCodeLrc, layers_init) 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"]); } }