Thank you very much for the thorough explanation. What you described was one of 
the ways I was interpreting this.

Now, out of curiosity, if I did:

rule replicated_rack {
        ruleset 0
        type replicated
        min_size 1
        max_size 10
        step take default
        step choose firstn 2 type rack
        step chooseleaf firstn 2 type host
        step emit
}

Would that choose the 2 racks, and then 2 osds from each host, making sure that 
in a 3x replication scenario, I would ensure that all 3 reps would be on 
different servers as well? Just want to make sure I'm following the logic 
correctly before I pull any triggers.

Cheers,
-
Stephen Mercier | Sr. Systems Architect
Attainia Capital Planning Solutions (ACPS)
O: (650)241-0567, 727 | TF: (866)288-2464, 727
stephen.merc...@attainia.com | www.attainia.com

On May 12, 2016, at 2:36 PM, Stephen Mercier wrote:

> I'm trying to setup a crush rule, and I was hoping you guys could clarify 
> something for me.
> 
> I have 4 storage nodes across 2 cabinets. (2x2)
> 
> I have the crush hierarchy setup to reflect this layout (as follows):
> 
> rack cabinet2 {
>       id -3           # do not change unnecessarily
>       # weight xxxx
>       alg straw
>       hash 0  # rjenkins1
>       item cephstore04 weight xxxx
>       item cephstore02 weight xxxx
> }
> rack cabinet1 {
>       id -3           # do not change unnecessarily
>       # weight xxxx
>       alg straw
>       hash 0  # rjenkins1
>       item cephstore03 weight xxxx
>       item cephstore01 weight xxxx
> }
> root default {
>       id -1           # do not change unnecessarily
>       # weight xxxx
>       alg straw
>       hash 0  # rjenkins1
>       item cabinet2 weight xxxx
>       item cabinet1 weight xxxx
> }
> 
> The default ruleset is as follows: (Big surprise!!)
> 
> rule replicated_ruleset {
>       ruleset 0
>       type replicated
>       min_size 1
>       max_size 10
>       step take default
>       step choose firstn 0 type osd
>       step emit
> }
> 
> If I want this to ensure that there is at least 1 copy of the data in each 
> cabinet, would I just change it to:
> 
> rule replicated_ruleset {
>       ruleset 0
>       type replicated
>       min_size 1
>       max_size 10
>       step take default
>       step choose firstn 0 type rack
>       step emit
> }
> 
> Or should it be:
> 
> rule replicated_ruleset {
>       ruleset 0
>       type replicated
>       min_size 1
>       max_size 10
>       step take default
>       step chooseleaf firstn 0 type rack
>       step emit
> }
> 
> Or is there something more complicated I should be doing? I took a look at 
> https://www.mail-archive.com/ceph-users@lists.ceph.com/msg19140.html and it 
> sounds like this is what I want, but I've also see examples like the 
> following:
> 
> rule replicated_ruleset {
>       ruleset 0
>       type replicated
>       min_size 1
>       max_size 10
>       step take default
>         step choose firstn 2 type rack
>       step chooseleaf firstn 0 type osd
>       step emit
> }
> 
> As you might have noticed, I'm a little confused, so any assistance is 
> greatly appreciated. And just to clarify once more, I want to make sure that 
> it stores at least one copy in each rack. Advice on getting more granular is 
> welcome as well however, as I there are pools with both 2x and 3x replication 
> setup.
> 
> Cheers,
> -
> Stephen Mercier | Sr. Systems Architect
> Attainia Capital Planning Solutions (ACPS)
> O: (650)241-0567, 727 | TF: (866)288-2464, 727
> stephen.merc...@attainia.com | www.attainia.com
> 

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

Reply via email to