Hello Ceph-users!
Ok, so I've got 3 separate datacenters (low latency network in between)
and I want to make a hybrid NMVe/HDD pool for performance and cost reasons.
There are 3 servers with NVMe based OSDs, and 2 servers with normal HDDS
(Yes, one is missing, will be 3 of course. It needs some more work and
will be added later), with 1 NVMe server and 1 HDD server in each
datacenter.
I've been trying to use a rule like this:
rule hybrid {
id 1
type replicated
min_size 1
max_size 3
step take default class nvme
step chooseleaf firstn 1 type datacenter
step emit
step take default class hdd
step chooseleaf firstn -1 type datacenter
step emit
}
(min_size should be 2, i know). The idea is to select an nvme osd, and
then select the rest from hdd osds in different datacenters (see crush
map below for hierarchy). This would work I think if each datacenter
only had nmve or hdd osds, but currently there are 2 servers of the
different kinds in each datacenter.
Output from "ceph pg dump" shows that some PGs end up in the same
datacenter:
2.6c8 47 0 0 0 0 197132288 613
613 active+clean 2017-10-07 14:27:33.943589 2222'613 2222:3446 [8,24]
8 [8,24]
Here OSD 8 and OSD 24 are indeed of diferent types, but are in the same
datacenter so redundancy for this PG would be depending on a single
datacenter...
Is there any way I can rethink this?
Please see my full crushmap etc below. Thanks for any help!
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54
# devices
device 0 osd.0 class nvme
device 1 osd.1 class nvme
device 2 osd.2 class nvme
device 3 osd.3 class nvme
device 4 osd.4 class nvme
device 5 osd.5 class nvme
device 6 osd.6 class nvme
device 7 osd.7 class nvme
device 8 osd.8 class nvme
device 9 osd.9 class nvme
device 10 osd.10 class nvme
device 11 osd.11 class nvme
device 12 osd.12 class hdd
device 13 osd.13 class hdd
device 14 osd.14 class hdd
device 15 osd.15 class hdd
device 16 osd.16 class hdd
device 17 osd.17 class hdd
device 18 osd.18 class hdd
device 19 osd.19 class hdd
device 20 osd.20 class hdd
device 21 osd.21 class hdd
device 22 osd.22 class hdd
device 23 osd.23 class hdd
device 24 osd.24 class hdd
device 25 osd.25 class hdd
device 26 osd.26 class hdd
device 27 osd.27 class hdd
device 28 osd.28 class hdd
device 29 osd.29 class hdd
device 30 osd.30 class hdd
device 31 osd.31 class hdd
device 32 osd.32 class hdd
device 33 osd.33 class hdd
device 34 osd.34 class hdd
device 35 osd.35 class hdd
# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 region
type 10 root
# buckets
host storage11 {
id -5 # do not change unnecessarily
id -6 class nvme # do not change unnecessarily
id -10 class hdd # do not change unnecessarily
# weight 2.912
alg straw2
hash 0 # rjenkins1
item osd.0 weight 0.728
item osd.3 weight 0.728
item osd.6 weight 0.728
item osd.9 weight 0.728
}
host storage21 {
id -13 # do not change unnecessarily
id -14 class nvme # do not change unnecessarily
id -15 class hdd # do not change unnecessarily
# weight 65.496
alg straw2
hash 0 # rjenkins1
item osd.12 weight 5.458
item osd.13 weight 5.458
item osd.14 weight 5.458
item osd.15 weight 5.458
item osd.16 weight 5.458
item osd.17 weight 5.458
item osd.18 weight 5.458
item osd.19 weight 5.458
item osd.20 weight 5.458
item osd.21 weight 5.458
item osd.22 weight 5.458
item osd.23 weight 5.458
}
datacenter HORN79 {
id -19 # do not change unnecessarily
id -26 class nvme # do not change unnecessarily
id -27 class hdd # do not change unnecessarily
# weight 68.406
alg straw2
hash 0 # rjenkins1
item storage11 weight 2.911
item storage21 weight 65.495
}
host storage13 {
id -7 # do not change unnecessarily
id -8 class nvme # do not change unnecessarily
id -11 class hdd # do not change unnecessarily
# weight 2.912
alg straw2
hash 0 # rjenkins1
item osd.2 weight 0.728
item osd.5 weight 0.728
item osd.8 weight 0.728
item osd.11 weight 0.728
}
host storage23 {
id -16 # do not change unnecessarily
id -17 class nvme # do not change unnecessarily
id -18 class hdd # do not change unnecessarily
# weight 65.496
alg straw2
hash 0 # rjenkins1
item osd.24 weight 5.458
item osd.25 weight 5.458
item osd.26 weight 5.458
item osd.27 weight 5.458
item osd.28 weight 5.458
item osd.29 weight 5.458
item osd.30 weight 5.458
item osd.31 weight 5.458
item osd.32 weight 5.458
item osd.33 weight 5.458
item osd.34 weight 5.458
item osd.35 weight 5.458
}
datacenter WAR {
id -20 # do not change unnecessarily
id -24 class nvme # do not change unnecessarily
id -25 class hdd # do not change unnecessarily
# weight 68.406
alg straw2
hash 0 # rjenkins1
item storage13 weight 2.911
item storage23 weight 65.495
}
host storage12 {
id -3 # do not change unnecessarily
id -4 class nvme # do not change unnecessarily
id -9 class hdd # do not change unnecessarily
# weight 2.912
alg straw2
hash 0 # rjenkins1
item osd.1 weight 0.728
item osd.4 weight 0.728
item osd.7 weight 0.728
item osd.10 weight 0.728
}
datacenter TEG4 {
id -21 # do not change unnecessarily
id -22 class nvme # do not change unnecessarily
id -23 class hdd # do not change unnecessarily
# weight 2.911
alg straw2
hash 0 # rjenkins1
item storage12 weight 2.911
}
root default {
id -1 # do not change unnecessarily
id -2 class nvme # do not change unnecessarily
id -12 class hdd # do not change unnecessarily
# weight 139.721
alg straw2
hash 0 # rjenkins1
item HORN79 weight 68.405
item WAR weight 68.405
item TEG4 weight 2.911
}
# rules
rule hybrid {
id 1
type replicated
min_size 1
max_size 3
step take default class nvme
step chooseleaf firstn 1 type datacenter
step emit
step take default class hdd
step chooseleaf firstn -1 type datacenter
step emit
}
rule hdd {
id 2
type replicated
min_size 1
max_size 3
step take default class hdd
step chooseleaf firstn 0 type datacenter
step emit
}
rule nvme {
id 3
type replicated
min_size 1
max_size 3
step take default class nvme
step chooseleaf firstn 0 type datacenter
step emit
}
# end crush map
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com