proxmoxのceph備忘録

Proxmox VEのCephは、GUIから作成できるものは最低限なので、コマンド備忘録。

Device Class変更


LuminousのRelease記事より
一部のSATAコントローラーとかUSB接続のSSDで、SSDなのにHDDと認識されちゃったデバイスをSSDに固定する方法。

$ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 4.57028 root default
-7 0.93149 host pve01
1 ssd 0.93149 osd.1 up 1.00000 1.00000
-13 0.90970 host pve02
5 ssd 0.90970 osd.5 up 1.00000 1.00000
-16 0.90970 host pve03
3 ssd 0.90970 osd.3 up 1.00000 1.00000
-3 0.90970 host pve04
0 ssd 0.90970 osd.0 up 1.00000 1.00000
-10 0.90970 host pve05
2 hdd 0.90970 osd.2 up 1.00000 1.00000
$ ceph osd crush rm-device-class osd.2
done removing class of osd(s): 2
$ ceph osd crush set-device-class ssd osd.2
set osd(s) 2 to class ‘ssd’

HDD決め打ちのプールとかSSD決め打ちのプールの作り方


デフォルトのルールだと、SSDだろうがHDDだろうが全部同じ重み付けでデータで分散配置されちゃうので、
SSDだけのプールとかHDDだけのプールの作り方。

階層型プールのドキュメントからヒントを得て、
デバイスクラスを決め打ちにしたCRUSHのルールを作成してそのルールでプールを作成。

# SSDのデバイスクラスしか使わないルール
$ ceph osd crush rule create-replicated replicated_ssd default host ssd
# HDDのデバイスクラスしか使わないルール
$ ceph osd crush rule create-replicated replicated_hdd default host hdd

あとは、ProxmoxのGUIからプール作成するときにルールが選択できるようになっている。