2.10. CRUSH ストレージストラテジーの例
大規模なハードドライブがサポートするほとんどのプールを OSD に指定するとします (ただし、高速ソリッドステートドライブ (SSD) がサポートする OSD にマッピングされているプールもあります)。CRUSH は、これらのシナリオを容易に処理できます。
デバイスクラスを使用します。プロセスは、各デバイスにクラスを追加するのは簡単です。
構文
ceph osd crush set-device-class CLASS OSD_ID [OSD_ID]
ceph osd crush set-device-class CLASS OSD_ID [OSD_ID]
例
[ceph:root@host01 /]# ceph osd crush set-device-class hdd osd.0 osd.1 osd.4 osd.5 [ceph:root@host01 /]# ceph osd crush set-device-class ssd osd.2 osd.3 osd.6 osd.7
[ceph:root@host01 /]# ceph osd crush set-device-class hdd osd.0 osd.1 osd.4 osd.5
[ceph:root@host01 /]# ceph osd crush set-device-class ssd osd.2 osd.3 osd.6 osd.7
次に、デバイスを使用するルールを作成します。
構文
ceph osd crush rule create-replicated RULENAME ROOT FAILURE_DOMAIN_TYPE DEVICE_CLASS
ceph osd crush rule create-replicated RULENAME ROOT FAILURE_DOMAIN_TYPE DEVICE_CLASS
例
[ceph:root@host01 /]# ceph osd crush rule create-replicated cold default host hdd [ceph:root@host01 /]# ceph osd crush rule create-replicated hot default host ssd
[ceph:root@host01 /]# ceph osd crush rule create-replicated cold default host hdd
[ceph:root@host01 /]# ceph osd crush rule create-replicated hot default host ssd
最後に、ルールを使用するようにプールを設定します。
構文
ceph osd pool set POOL_NAME crush_rule RULENAME
ceph osd pool set POOL_NAME crush_rule RULENAME
例
[ceph:root@host01 /]# ceph osd pool set cold crush_rule hdd [ceph:root@host01 /]# ceph osd pool set hot crush_rule ssd
[ceph:root@host01 /]# ceph osd pool set cold crush_rule hdd
[ceph:root@host01 /]# ceph osd pool set hot crush_rule ssd
1 つの階層が複数のデバイスのクラスに対応できるため、CRUSH マップを手動で編集する必要はありません。