Using different device classes
To create performance domains, use device classes and a single CRUSH hierarchy.
To create performance domains, add OSDs to the CRUSH hierarchy, then do the following:
-
Add a class to each device. For example:
Syntax
ceph osd crush set-device-class <class> <osdId> [<osdId>] ceph osd crush set-device-class hdd osd.0 osd.1 osd.4 osd.5 ceph osd crush set-device-class ssd osd.2 osd.3 osd.6 osd.7 -
Then, create rules to use the devices.
Syntax
ceph osd crush rule create-replicated <rule-name> <root> <failure-domain-type> <class> ceph osd crush rule create-replicated cold default host hdd ceph osd crush rule create-replicated hot default host ssd -
Finally, set pools to use the rules.
Syntax
ceph osd pool set <poolname> crush_rule <rule-name> ceph osd pool set cold_tier crush_rule cold ceph osd pool set hot_tier crush_rule hot
Note: There is no need to manually edit the CRUSH map.