Hi,

"  In erasure coding pool, how do we know which OSDs keeping the data chunk
and which one the keep the encoding chunk?"

There was this question yesterday on  ceph irc channel on erasure code.
http://ceph.com/docs/giant/dev/erasure-coded-pool/,
 we  really have a  difference between k and m  chunks (supposing that m is
the number of split and k the number of code chunk),  data  is splitting
 in m chunk, and we generate k chunks code based on   the previous m
chunks. So these chunks are differents, right?

1) first in all documentations about erasure, it says  that the number of
coding is greater than the number of data splitted , but  seeing
https://wiki.ceph.com/Planning/Blueprints/Dumpling/Erasure_encoding_as_a_storage_backend,
I see that the coding chunk number is  not greater than the number of
splits. What is the goal,  reducing the used space?

2) We allow the loss of k chunks between (n+k) chunks,
  What's happening  when  you lost a chunk, does ceph rebuilt it somewhere
on another osd (not on  the n+k-1 previous one)?
3)so is it  important to known where are the  chunks of code to make a
failure rules?

4) According to these following rules in crush map the erasure code don't
take care  about failure domain rule. Right? ie the ruletset of the pool
don't matter, right?
let 's take an example: my failure domain is composed by 3 rooms, so
usually,  in a pool with size equal to 3 we have a replicate in  each room.
But in erasure coding rule,  we don't have this, does  the  rule applied
only on the chunk that contains the code?

rule replicated_ruleset {
        ruleset 0
        type replicated
        min_size 1
        max_size 10
        step take default
        step chooseleaf firstn 0 type room
        step emit
}

rule erasure-code {
        ruleset 1
        type erasure
        min_size 3
        max_size 20
        step set_chooseleaf_tries 5
        step take default
        step chooseleaf indep 0 type host
        step emit
}


5) what do  you think about something like :

rule room_erasure-code {
        ruleset 1
        type erasure
        min_size 3
        max_size 20
        step set_chooseleaf_tries 5
        step take default
        step chooseleaf indep 0 type room
        step emit
}


And  an erasure code  with  (m=3, and k=2).
 and does this settings available with:

ceph osd erasure-code-profile set failprofile k=2 m=3
ceph osd erasure-code-profile set failprofile ruleset-root=room_erasure-code
 and I can lost 2 room without problem, right?

I would like  to  add a summary of  your answer in documentation, would you
help me  on this?

-- 
Eric Mourgaya,


Respectons la planete!
Luttons contre la mediocrite!
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to