Hi Konstantin,
Thank you for looking into my question.
I was trying to understand how to set up CRUSH hierarchies and set
rules for different failure domains. I am particularly confused by the
'step take' and 'step choose|chooseleaf' settings for which I think
are the keys for defining a failure domain in a CRUSH rule.
As for my hypothetical cluster, it is made of 3 racks with 2 hosts on
each. One host has 3 SSD-based OSDs and the other has 3 HDD-based
OSDs. I wished to create two rules: one uses SSD-only and another
HDD-only. Both rules should have a rack level failure domain.
I have attached a diagram that may help to explain my setup. The
following is my CRUSH map configuration (with all typos fixed) for
review:
device 0 osd.0 class ssd
device 1 osd.1 class ssd
device 2 osd.2 class ssd
device 3 osd.3 class hdd
device 4 osd.4 class hdd
device 5 osd.5 class hdd
device 6 osd.6 class ssd
device 7 osd.7 class ssd
device 8 osd.8 class ssd
device 9 osd.9 class hdd
device 10 osd.10 class hdd
device 11 osd.11 class hdd
device 12 osd.12 class ssd
device 13 osd.13 class ssd
device 14 osd.14 class ssd
device 15 osd.15 class hdd
device 16 osd.17 class hdd
device 17 osd.17 class hdd
host a1-1 {
id -1
alg straw
hash 0
item osd.0 weight 1.00
item osd.1 weight 1.00
item osd.2 weight 1.00
}
host a1-2 {
id -2
alg straw
hash 0
item osd.3 weight 1.00
item osd.4 weight 1.00
item osd.5 weight 1.00
}
host a2-1 {
id -3
alg straw
hash 0
item osd.6 weight 1.00
item osd.7 weight 1.00
item osd.8 weight 1.00
}
host a2-2 {
id -4
alg straw
hash 0
item osd.9 weight 1.00
item osd.10 weight 1.00
item osd.11 weight 1.00
}
host a3-1 {
id -5
alg straw
hash 0
item osd.12 weight 1.00
item osd.13 weight 1.00
item osd.14 weight 1.00
}
host a3-2 {
id -6
alg straw
hash 0
item osd.15 weight 1.00
item osd.16 weight 1.00
item osd.17 weight 1.00
}
rack a1 {
id -7
alg straw
hash 0
item a1-1 weight 3.0
item a1-2 weight 3.0
}
rack a2 {
id -5
alg straw
hash 0
item a2-1 weight 3.0
item a2-2 weight 3.0
}
rack a3 {
id -6
alg straw
hash 0
item a3-1 weight 3.0
item a3-2 weight 3.0
}
row a {
id -7
alg straw
hash 0
item a1 6.0
item a2 6.0
item a3 6.0
}
rule ssd {
id 1
type replicated
min_size 2
max_size 11
step take a class ssd
step chooseleaf firstn 0 type rack
step emit
}
rule hdd {
id 2
type replicated
min_size 2
max_size 11
step take a class hdd
step chooseleaf firstn 0 type rack
step emit
}
Are the two rules correct?
Regards,
Cody
On Sun, Aug 19, 2018 at 11:55 PM Konstantin Shalygin <[email protected]> wrote:
>
> > Hi everyone,
> >
> > I am new to Ceph and trying to test out my understanding on the CRUSH
> > map. Attached is a hypothetical cluster diagram with 3 racks. On each
> > rack, the first host runs 3 SSD-based OSDs and the second 3 HDD-based.
> >
> > My goal is to create two rules that separate SSD and HDD performance
> > domains (by using device class) and both rules should use a*rack*
> > level failure domain.
>
>
> Please, provide on human language what actually hosts configuration you
> have and what drive pattern usage you want at finish?
>
> Obviously you want just separate your ssd/hdd load per pool basis, but I
> need more information to clarify.
>
>
>
>
> k
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com