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