On 02/03/2019 01:02, Ravi Patel wrote:
Hello,

My question is how crush distributes chunks throughout the cluster with erasure coded pools. Currently, we have 4 OSD nodes with 36 drives(OSD daemons) per node. If we use ceph_failire_domaon=host, then we are necessarily limited to k=3,m=1, or k=2,m=2. We would like to explore k>3, m>2 modes of coding but are unsure how the crush rule set will distribute the chunks if we set the crush_failure_domain to OSD

Ideally, we would like CRUSH to distribute the chunks hierarchically so to spread them evenly across the nodes. For example, all chunks are on a single node.

Are chunks evenly spread by default? If not, how might we go about configuring them?
You can write your own CRUSH rules to distribute chunks hierarchically. For example, you can have a k=6, m=2 code together with a rule that guarantees that each node gets two chunks. This means that if you lose a node you do not lose data (though depending on your min_size setting your pool might be unavailable at that point until you replace the node or add a new one and the chunks can be recovered). You would accomplish this with a rule that looks like this:

rule ec8 {
        id <some free id>
        type erasure
        min_size 7
        max_size 8
        step set_chooseleaf_tries 5
        step set_choose_tries 100
        step take default
        step choose indep 4 type host
        step chooseleaf indep 2 type osd
        step emit
}

This means the rule will first pick 4 hosts, then pick 2 OSDs per host, resulting in a total of 8 OSDs. This is appropriate for k=6 m=2 codes as well as k=5 m=2 codes (that will just leave one random OSD unused), hence min_size 7 max_size 8.

If you just set crush_failure_domain to OSD, then the rule will pick random OSDs without regard for the hosts; you will be able to use effectively any EC widths you want, but there will be no guarantees of data durability if you lose a whole host.

--
Hector Martin (hec...@marcansoft.com)
Public Key: https://mrcn.st/pub
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to