以前我们需要对ssd和hdd进行分组的时候,需要大量的修改crush map,然后绑定不同的存储池到不同的 crush 树上面,现在这个逻辑简化了很多。以上是官方宣传听起来很不错等到12.2.0稳定版出来以后参考http://ceph.com/planet/ceph-luminous-%E6%96%B0%E5%8A%9F%E8%83%BD%E4%B9%8B%E7%A3%81%E7%9B%98%E6%99%BA%E8%83%BD%E5%88%86%E7%BB%84/进行尝试发现稳定版与此文有些不同,实践过程如下。

测试环境(虚机)下安装完的ceph集群是这个样子(若使用真的ssd可能会出现ssd类的osd)

[root@ceph-l02 ~]# ceph osd tree

ID CLASS WEIGHT  TYPE NAME         STATUS REWEIGHT PRI-AFF

-1       0.43886 root default

-3       0.14629     host ceph-l01

 1   hdd 0.09760         osd.1         up  1.00000 1.00000

 0   hdd 0.04869         osd.0         up  1.00000 1.00000

-5       0.14629     host ceph-l02

 3   hdd 0.09760         osd.3         up  1.00000 1.00000

 2   hdd 0.04869         osd.2         up  1.00000 1.00000

-7       0.14629     host ceph-l03

 5   hdd 0.09760         osd.5         up  1.00000 1.00000  

 4   hdd 0.04869         osd.4         up  1.00000 1.00000



首先将osd 0 2 4 设置成ssd 类型

先删除

# ceph osd crush rm-device-class osd.0

# ceph osd crush rm-device-class osd.2

# ceph osd crush rm-device-class osd.4

再设置

#ceph osd crush set-device-class  ssd osd.0

#ceph osd crush set-device-class  ssd osd.2

#ceph   osd crush set-device-class  ssd osd.4


然后根据osd 类型设置规则(规则名称为ssd)

#ceph osdcrush  rule  create-replicated  ssd default osd  ssd

然后根据 规则创建pool(名称为ssdpool)

#ceph osd  pool create ssdpool 128 ssd

然后验证一下

#ceph pg dump

wKiom1nDdljTXUe-AAPQMvIlaZM546.png-wh_50