智汇我们 | Ceph的正确玩法之同一个Ceph集群分别创建SSD和HDD池(存储快慢池)

来源:我们公众号 更新时间:2019-01-29
随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。集团本期“智汇我们”专栏将针对“Ceph的正确玩法之同一个Ceph集群分别创建SSD和HDD池(存储快慢池)”技术,与大家共同分享云计算领域的最新技术与解决方案。

随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。集团本期“智汇我们”专栏将针对“Ceph的正确玩法之同一个Ceph集群分别创建SSD和HDD池(存储快慢池)”技术,与大家共同分享云计算领域的最新技术与解决方案。

该文章为本系列的第三篇文章,我们将在之后继续推出本系列的其他文章,敬请关注!

场景二:存储节点上既有SATA盘也有SSD盘,把各节点的SSD和SATA分别整合成独立的存储池,为不同的应用供给不同性能的存储。比如常见的云环境中的虚拟机实例,对于实时数据IO性能要求高,并且都是热数据,可以把这部分的存储需求放入SSD的存储池里;而对于备份、快照等冷数据应用,相对IO性能需求比较低,因此将其可以放在普通的由SATA盘组成的存储池里。

111.png 

方法: Luminous版本的ceph新增了一个crush class的功能,可以为新增的设备指定为类,创建rule的时候直接指定class即可。 创建一个磁盘类型的class,给磁盘标记class的统一标签,自动会根据class的类型创建一个树,根据树创建rule,根据rule创建存储池,整个操作没有动crushmap的操作 增加或修改盘的时候,设置下属性即可

该方案的优点:

该方案的优点为充分利用SSD设备高性能的优势,将关键性业务或者IO敏感型业务全部放入高性能存储池,为客户提供性能优越的存储服务。

该方案的缺点:

该方案的缺点为受到成本限制,高性能存储池存储容量规模会比较小,只能针对性地对少数关键性业务或者IO敏感型业务进行服务质量保障,且业务一经规划部署至某个存储池后,不能在两个存储池之间进行自动转换,后期进行调整开销较大。

修改前集群拓扑:

[root@storage1 ~]# ceph osd tree

ID CLASS WEIGHT  TYPE NAME         STATUS REWEIGHT PRI-AFF

-1       0.52734 root default                             

-3       0.17578     host storage1                        

 0   hdd 0.07809         osd.0         up  1.00000 1.00000

 3   hdd 0.09769         osd.3         up  1.00000 1.00000

-5       0.17578     host storage2                        

 1   hdd 0.07809         osd.1         up  1.00000 1.00000

 4   hdd 0.09769         osd.4         up  1.00000 1.00000

-7       0.17578     host storage3                        

 2   hdd 0.07809         osd.2         up  1.00000 1.00000

 5   hdd 0.09769         osd.5         up  1.00000 1.00000

查看class类型

[root@storage1 ~]# ceph osd crush class ls

[

    "hdd"

]

删除默认的class

[root@storage1 ~]# for i in {0..5} ; do ceph osd crush rm-device-class osd.$i;done

done removing class of osd(s): 0

done removing class of osd(s): 1

done removing class of osd(s): 2

done removing class of osd(s): 3

done removing class of osd(s): 4

done removing class of osd(s): 5

[root@storage1 ~]# ceph osd tree

ID CLASS WEIGHT  TYPE NAME         STATUS REWEIGHT PRI-AFF

-1       0.52734 root default                              

-3       0.17578     host storage1                        

 0       0.07809         osd.0         up  1.00000 1.00000

 3       0.09769         osd.3         up  1.00000 1.00000

-5       0.17578     host storage2                        

 1       0.07809         osd.1         up  1.00000 1.00000

 4       0.09769         osd.4         up  1.00000 1.00000

-7       0.17578     host storage3                        

 2       0.07809         osd.2         up  1.00000 1.00000

 5       0.09769         osd.5         up  1.00000 1.00000

将osd编号0-2标记为SAS

for i in 0 1 2;do ceph osd crush set-device-class sas osd.$i;done

[root@storage1 ~]# ceph osd tree

ID CLASS WEIGHT  TYPE NAME         STATUS REWEIGHT PRI-AFF

-1       0.52734 root default                             

-3       0.17578     host storage1                        

 3       0.09769         osd.3         up  1.00000 1.00000

 0   sas 0.07809         osd.0         up  1.00000 1.00000

-5       0.17578     host storage2                        

 4       0.09769         osd.4         up  1.00000 1.00000

 1   sas 0.07809         osd.1         up  1.00000 1.00000

-7       0.17578     host storage3                        

 5       0.09769         osd.5         up  1.00000 1.00000

 2   sas 0.07809         osd.2         up  1.00000 1.00000

[root@storage1 ~]# ceph osd crush class ls

[

    "sas"

]

将osd编号3-5标记为ssd

[root@storage1 ~]#  for i in {3..5} ;do ceph osd crush set-device-class ssd osd.$i;done

set osd(s) 3 to class 'ssd'

set osd(s) 4 to class 'ssd'

set osd(s) 5 to class 'ssd'

[root@storage1 ~]# ceph osd tree

ID CLASS WEIGHT  TYPE NAME         STATUS REWEIGHT PRI-AFF

-1       0.52734 root default                             

-3       0.17578     host storage1                        

 0   sas 0.07809         osd.0         up  1.00000 1.00000

 3   ssd 0.09769         osd.3         up  1.00000 1.00000

-5       0.17578     host storage2                        

 1   sas 0.07809         osd.1         up  1.00000 1.00000

 4   ssd 0.09769         osd.4         up  1.00000 1.00000

-7       0.17578     host storage3                        

 2   sas 0.07809         osd.2         up  1.00000 1.00000

 5   ssd 0.09769         osd.5         up  1.00000 1.00000

[root@storage1 ~]# ceph osd crush class ls

[

    "sas",

    "ssd"

]

创建个ssd规则:

[root@storage1 ~]#  ceph osd crush rule create-replicated rule-ssd default  host ssd

[root@storage1 ~]#  ceph osd crush rule create-replicated rule-sas default  host sas

格式如下:

ceph osd crush rule create-replicated <rule-name> <root> <failure-domain> <class>

[root@storage1 ~]# ceph osd crush rule ls

replicated_rule

rule-ssd

5,创建一个使用该rule-ssd规则的存储池:

[root@storage1 ~]# ceph osd pool create ssdpool 64 64 rule-ssd

pool 'ssdpool' created

5,创建一个使用该rule-sas规则的存储池:

[root@storage1 ~]# ceph osd pool create saspool 64 64 rule-sas

pool 'saspool' created

查看ssdpool的信息可以看到使用的crush_rule 为1,也就是rule-ssd

[root@storage1 ~]# ceph osd pool ls detail | grep ssdpool

pool 6 'ssdpool' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 64 pgp_num 64 last_change 219 flags hashpspool stripe_width 0

[root@storage1 ~]# ceph osd pool ls detail | grep saspool

pool 7 'saspool' replicated size 3 min_size 2 crush_rule 2 object_hash rjenkins pg_num 64 pgp_num 64 last_change 223 flags hashpspool stripe_width 0

 

参考:

http://www.zphj1987.com/2017/06/28/ceph-luminous-new-osd-class/

 


在线咨询
400-808-4000
免费试用