You can't have different EC profiles in the same pool either.  You have to
create the pool as either a specific EC profile or as Replica.  If you
choose EC you can't even change the EC profile later, however you can
change the amount of copies a Replica pool has.  An EC pool of 1:1 doesn't
do anything.  It's worse than a Replica 2 pool because you could never
change it to have more copies of the data.  I'm guessing this is why it
isn't possible to do.

If you meant to say that you can't have EC and Replica pools in the same
cluster on the same disks, then that isn't correct.  That is very common
and done regularly.

On Fri, Apr 28, 2017 at 9:27 AM Loic Dachary <[email protected]> wrote:

>
>
> On 04/28/2017 02:48 PM, David Turner wrote:
> > Wouldn't k=1, m=1 just be replica 2?
>
> Well yes. But Ceph does not support mixing replication and erasure code in
> the same pool.
>
> > EC will split the object into k pieces (1)... Ok, that's the whole
> object.
>
> I was just wondering if jerasure tolerates this degraded use case. Even
> though it's not useful in general it would solve Oleg issue.
>
> > And then you want to be able to lose m copies of the object (1)... Ok,
> that's an entire copy of that whole object.  That isn't erasure coding,
> that is full 2 copy replication. For erasure coding to work you need to
> split the object into at least 2 pieces (k) and then have at least one
> parity copy (m). With m=0  you have no redundancy and just made a super
> slow raid 0.
>
> :-D
>
> >
> >
> > On Thu, Apr 27, 2017, 6:49 PM Loic Dachary <[email protected] <mailto:
> [email protected]>> wrote:
> >
> >
> >
> >     On 04/27/2017 11:43 PM, Oleg Kolosov wrote:
> >     > Hi Loic,
> >     > Of course.
> >     > I'm implementing a version of Pyramid Code. In Pyramid you remove
> one of the global parities of Reed-Solomon and add one local parity for
> each local group. In my version, I'd like to add local parity to the global
> parity (meaning that for the case the global parity = 1, it would be
> replicated). This way in case of a failure in the global parity, you can
> reconstruct it using the replicated node instead of reconstructing it will
> all K nodes.
> >     >
> >     > This is my profile:
> >     > ceph osd erasure-code-profile set myprofile \
> >     > plugin=lrc \
> >     > mapping=DD_DD___ \
> >     > layers='[
> >     > [ "DD_DD_c_", "" ],
> >     > [ "DDc_____", "" ],
> >     > [ "___DDc__", "" ],
> >     > [ "______Dc", "" ],
> >     > ]' \
> >     > ruleset-steps='[
> >     > [ "chooseleaf", "osd",  8  ],
> >     > ]'
> >
> >     You could test and see if commenting out the sanity check at
> >
> >
> https://github.com/ceph/ceph/blob/master/src/erasure-code/jerasure/ErasureCodeJerasure.cc#L89
> >
> >     does the trick. I don't remember enough about this border case to be
> sure it won't work. You can also give it a try with
> >
> >
> https://github.com/ceph/ceph/blob/master/src/test/erasure-code/ceph_erasure_code_benchmark.cc
> >
> >     Cheers
> >
> >     > Regards,
> >     > Oleg
> >     >
> >     > On Fri, Apr 28, 2017 at 12:33 AM, Loic Dachary <[email protected]
> <mailto:[email protected]> <mailto:[email protected] <mailto:
> [email protected]>>> wrote:
> >     >
> >     >     Hi Oleg,
> >     >
> >     >     On 04/27/2017 11:23 PM, Oleg Kolosov wrote:
> >     >     > Hi,
> >     >     > I'm working on various implementation of LRC codes for study
> purposes. The layers implementation in the LRC module is very convenient
> for this, but I've came upon a problem in one of the cases.
> >     >     > I'm interested in having k=1, m=1 in one of the layers.
> However this gives out an error:
> >     >     > Error EINVAL: k=1 must be >= 2
> >     >     >
> >     >     > I should point out that my erasure code has additional
> layers which are fine, only this one has k=1, m=1.
> >     >     >
> >     >     > What was the reason for this issue?
> >     >     > Can replication be implemented in one of LRC's layers?
> >     >
> >     >     Could you provide the code for me to reproduce this problem ?
> Or a description of the layers ? I implemented this restriction because it
> made the code simpler. And also because I could not think of a valid use
> case.
> >     >
> >     >     Cheers
> >     >
> >     >     --
> >     >     Loïc Dachary, Artisan Logiciel Libre
> >     >
> >     >
> >
> >     --
> >     Loïc Dachary, Artisan Logiciel Libre
> >     _______________________________________________
> >     ceph-users mailing list
> >     [email protected] <mailto:[email protected]>
> >     http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> >
>
> --
> Loïc Dachary, Artisan Logiciel Libre
>
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to