Hi,

I'm trying to understand the CRUSH algorithm and how it distribute data.
Let's say I simplify a small datacenter setup and map it up
hierarchically in the crush map as show below.

           root          datacenter
          /    \
         /      \
        /        \
       a          b      room
     / | \      / | \
    a1 a2 a3   b1 b2 b3  rack
    |  |  |    |  |  |
    h1 h2 h3   h4 h5 h6  host

I want 4 copies of all data in my pool, configured on pool level. 2
copies in each room. And I want to be sure not 2 copies resides in the
same rack when there is no HW failures.

Will the chooseleaf rule below ensure this placement?

        step take root
        step chooseleaf firstn 0 type room
        step emit

Or do I have to specify this more, like

        step take root
        step choose firstn 2 type room
        step chooseleaf firstn 2 type rack
        step emit

Or even more, like?

        step take a
        step choose firstn 2 type rack
        step chooseleaf firstn 1 type host
        step emit
        step take b
        step choose firstn 2 type rack
        step chooseleaf firstn 1 type host
        step emit

Is there difference in failure behaviour in the different configurations?


-- 
/\rnulf ||eimsbakk

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to