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:

  1. 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
  2. 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
  3. 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.