一种应用于Ceph的对象存储优化方法与流程

文档序号:28319445发布日期:2022-01-04 21:51阅读:302来源:国知局
一种应用于Ceph的对象存储优化方法与流程
一种应用于ceph的对象存储优化方法
技术领域
1.本发明属于对象存储技优化领域,具体涉及一种应用于ceph的对象存储优化方法。


背景技术:

2.ceph是一个流行的分布式存储系统,同时提供了对象、块和文件存储功能。它的对象存储模块包括:rados可靠的自组织的可自动修复和自我管理的分布式存储,rgw一个基于桶(bucket)的兼容s3和swift的rest网关。rgw作为rados的客户端,通过将对象的元数据(metadata),桶索引数据(bucket index)和数据分别存储到rados的存储池中,来对外提供统一的对象访问接口。这三种数据存储分别对应了data_pool,data_extra_pool,index_pool,三个pool(资源池),再通过资源池关联存储到集群的所有osd中。
3.ceph本身没有将对象存储不同数据存放于不同osd的工具或命令。为了提高对象存储的性能,很容易想到的是将所有的osd使用ssd硬盘来部署,通过提高rados集群读写性能从而提高rgw的性能。但全部使用ssd硬盘成本很高。


技术实现要素:

4.针对现有技术中提高存储性能成本较高的问题,本发明提供一种应用于ceph的对象存储优化方法,其目的在于:提高ssd设备存储性能与使用率,降低硬件成本。
5.本发明采用的技术方案如下:
6.一种应用于ceph的对象存储优化方法,包括以下步骤:
7.步骤a:将ssd(固态硬盘)设备的osd(object

based storage device)加入集群,在系统的存储空间中建立与用于储存所述集群中数据的数据结构;
8.步骤b:处理器从所述数据结构中读取所述数据结构中的集群数据,将集群中的ssd的osd和hdd(硬盘驱动器)的osd配置不同的rule(存储设备的存储规则);
9.步骤c:基于步骤b中不同的rule创建hdd_pool(硬盘驱动器的资源池)与ssd_pool(固态硬盘资源池),并在系统存储空间中分别建立与hdd_pool和ssd_pool相对应的数据结构及存储空间;
10.步骤d:配置rgw(ceph的对象网关)中默认的placement(配置),对象数据存储使用ssd_pool对应的存储空间中,index(索引数据)和metadata(元数据)存储于hdd_pool对应的存储空间中。
11.采用上述方案,通过配置crushmap(ceph的数据分布地图)、zone(域)和region(ceph集群的区),提高了ssd设备的利用率,也使得原有hdd设备能够继续使用,整体降低了硬件从成本。
12.所述步骤a的具体步骤为:
13.步骤a1:所述数据结构中的集群中有若干个osd,其中设osd0~osdm为集群已有osd,针对ssd设备创建osd,得到新创建osd的序号为osdn~osdx,并将所述osdn~osdx以数
组结构保存在存储介质中;
14.步骤a2:根据步骤a1中得到的osd注册keyr ing。
15.所述步骤b的具体步骤为:
16.步骤b1:导出crushamp,并生成crushmapgot(存储crushmap的文件名)文件,执行命令ceph osd getcrushmap

o/root/crushmapgot,并在/root目录下生成crushmapgot文件;
17.步骤b2:反编译crushmapgot文件,并生产成decrushmap文件;
18.步骤b3:修改crushmap,增加buckets;
19.步骤b4:修改crushmap,增加rule;
20.步骤b5:编译新的crushmap,得到新的crushmap文件newcrushmap;
21.步骤b6:导入newcrushmap。
22.所述步骤c的具体步骤为:
23.步骤c1:创建hdd设备osd与ssd设备osd的pool,得到hdd_pool与ssd_pool;
24.步骤c2:根据步骤b的rule,修改步骤c1中hdd_pool与sdd_pool的规则,使hdd_pool使用所有hdd设备的osd,ssd_pool使用所有ssd设备的osd。
25.所述步骤d的具体步骤为:
26.步骤d1:导出对象网管的zone配置;
27.步骤d2:增加新的默认placement,其中新的默认placement由所述步骤c创建的hdd_pool与ssd_pool,得到new_placement;
28.步骤d3:将步骤d2中的placement(配置)导入集群;
29.步骤d4:导出对象网关的region配置;
30.步骤d5:修改region配置,使用步骤d2中新增的new_placement作为默认放置策略;
31.步骤d6:导入对象网关的region配置。
32.所述步骤b3的具体步骤为:根据步骤a1中得到的osd0~osdm,从所述数组结构中读取出osd0~osdm,创建名为hdd的bucket,根据osdn~osdx创建名为ssd的bucket。
33.综上所述,由于采用了上述技术方案,本发明的有益效果是:通过配置crushmap、zone和region,提高了ssd设备的利用率,也使得原有hddd设备能够继续使用,整体降低了硬件从成本。
附图说明
34.本发明将通过例子并参照附图的方式说明,其中:
35.图1是本发明的一种实施方式的整体流程图。
具体实施方式
36.本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
37.下面结合图1对本发明作详细说明。
38.一种应用于ceph的对象存储优化方法,包括以下步骤:
39.步骤a:将ssd设备的osd加入集群,在系统的存储空间中建立与用于储存所述集群中数据的数据结构;
40.步骤b:处理器从所述数据结构中读取所述数据结构中的集群数据,将集群中的ssd的osd和hdd的osd配置不同的rule;
41.步骤c:基于步骤b中不同的rule创建hdd_pool与ssd_pool,并在系统存储空间中分别建立与hdd_pool和ssd_pool相对应的数据结构及存储空间;
42.步骤d:配置rgw中默认的placement,对象数据存储使用ssd_pool对应的存储空间中,index和metadata存储于hdd_pool对应的存储空间中。
43.其中osd(object

based storage device)为的对象存储设备,ssd为固态硬盘,hdd为硬盘驱动器,在电脑中的c盘、d盘即为硬盘驱动器,其中rule为存储设备的存储规则,其中pool为资源池,hdd_pool即为硬盘驱动器的资源池,ssd_pool为固态硬盘的资源池,rgw(rados gateway)为ceph的对象网关,其中index为索引数据,metadata为元数据,placement为配置。
44.所述步骤a的具体步骤为:
45.步骤a1:所述数据结构中的集群中有若干个osd,其中设osd0~osdm为集群已有osd,针对ssd设备创建osd,得到新创建osd的序号为osdn~osdx,并将所述osdn~osdx以数组结构保存在存储介质中;
46.步骤a2:根据步骤a1中得到的osd注册keyring。
47.所述步骤b的具体步骤为:
48.步骤b1:导出ccrushamp,并生成crushmapgot(存储crushmap的文件名)文件,执行命令ceph osd getcrushmap

o/root/crushmapgot,并在/root目录下生成crushmapgot文件;
49.步骤b2:反编译crushmapgot文件,并生产成decrushmap文件;
50.步骤b3:修改crushmap,增加buckets;
51.步骤b4:修改crushmap,增加rule;
52.步骤b5:编译新的crushmap,得到新的crushmap文件newcrushmap;
53.步骤b6:导入newcrushmap。
54.所述步骤c的具体步骤为:
55.步骤c1:创建hdd设备osd与ssd设备osd的pool,得到hdd_pool与ssd_pool;
56.步骤c2:根据步骤b的rule,修改步骤c1中hdd_pool与sdd_pool的规则,使hdd_pool使用所有hdd设备的osd,ssd_pool使用所有ssd设备的osd。
57.所述步骤d的具体步骤为:
58.步骤d1:导出对象网管的zone配置;
59.步骤d2:增加新的默认placement,其中新的默认placement由所述步骤c创建的hdd_pool与ssd_pool,得到new_placement;
60.步骤d3:将步骤d2中的placement配置导入集群;
61.步骤d4:导出对象网关的region配置;
62.步骤d5:修改region配置,使用步骤d2中新增的new_placement作为默认放置策略;
63.步骤d6:导入对象网关的region配置。
64.所述步骤b3的具体步骤为:根据步骤a1中得到的osd0~osdm,从所述数组结构中读取出osd0~osdm,创建名为hdd的bucket,根据osdn~osdx创建名为ssd的bucket。
65.其中crushmapgot为存储crushmap的文件名,并无具体限制,本文中采用该名称指定导出的crushmap;其中crushmap为ceph的数据分布地图,用于ceph内部确定对象存储的位置,crush算法通过该地图可以知道数据应该如何分布,找到数据存放位置从而直接与对应的osd进行数据访问和写入;keyring为密钥文件,在本技术中指的是osd进程用于跟进行通信认证时实用的密钥;placement为防止策略,也是crushmap中的一部分,定义了ceph如何映射pg(放置策略组)到pool(资源池);其中region为ceph集群的区,实际为一个逻辑层级概念,默认一个ceph集群只有一个region,包含多个region的ceph集群必须有一个可用的主region(master region)用于响应读写请求,多个region内部自行同步数据保证一致性,region概念上类似于不同地区的灾备数据中心,不同数据中心的数据保持一致,在某个中心发生故障后其他中心能够提供一致的数据服务,region配置指的是针对某个确定region的配置;bucket指的是挡圈ceph集群默认最小的层级(一般是host层级),如果是host,则说明该bucket内部的每个osd都在独立的服务其上运行,其中host为服务器;其中zone为域,参见region的说明,一个region可以包含一个或多个zone,但必须指定一个master zone(主域)对客户端提供服务。可以是逻辑上的多个,不同zone对应不同的rgw,但可以对应同一个内部ceph存储集群,默认情况下只有一个zone。
66.在本实施例中,设定集群中一共有20个osd,其中m的取值为9,n的取值为10,x的取值为19,其中注册keyring的具体步骤为,将得到的osd序号10~19分别执行命令,以osd10为例,执行命令为ceph auth add osd.10osd'allow*'mon'allow profile osd'

i/var/lib/ceph/osd/ceph

10/keyring,需要注意的是,此时因为还没有新建ssd相关的bucket和rule,暂不加入crushmap。
67.其中步骤b3中,编辑步骤b2中的decrushmap文件,在root defaultbucket下添加如下内容:
68.[0069][0070]
其中步骤b4中,编辑步骤b2中的decrushmap文件,在ruledisks后增加以下内容:
[0071][0072]
其中步骤c1中,在创建hdd_pool时,执行命令ceph osd pool create hdd_pool 512512,其中512位pg的数量,根据osd的数量计算osdnumber*100/replication_count,在向上取整到2的证书次幂,再执行命令ceph osd pool create ssd_pool 512 512;
[0073]
其中步骤c2,为基于步骤b中的rules,修改步骤c1中pool的规则,执行命令ceph osd pool set hdd_pool crush_ruleset 2,使hdd_pool应用rules2,也是步骤b4中hdd设备osd关联的规则的序号,执行命令执行命令ceph osd pool set ssd_pool crush_ruleset3使ssd_pool应用rules3,至此,hdd_pool使用所有hdd设备的osd,ssd_pool使用所有ssd设备的osd。
[0074]
其中步骤d1中,执行命令radosgw

admin zone get
‑‑
rgw

zone=default>zone.json会在当前目录下创建zone.json文件,包含当前默认放置组策略(default placement);步骤d2中,由步骤c创建的hdd_pool和ssd_pool生成,编辑步骤d1中的zone.json文件,在placement_pools列表中,增加json对象,内容如下:
[0075][0076]
将索引和数据信息存入hdd_pool,数据本身存储于ssd_pool;
[0077]
步骤d3中,执行命令,执行命令radosgw

admin zone set
‑‑
rgw

zone=default
‑‑
infile zone.json将4.2中的配置导入集群;步骤d4中,执行命令radosgw

admin region get>region.conf.json得到当前对象网关的region配置文件region.conf.json;步骤d5中,实用步骤d2中新增的new_placement做为默认放置策略,编辑region.conf.json,将new_placement增加至placement_targets列表,并修改default_placement为new_placement,如下:
[0078][0079][0080]
步骤d6中,执行命令radosgw

admin region set<region.conf.json将4.5中修改的region.conf.json文件配置导入到当前对象网关,该方法与传统技术中的全部使用ssd盘存储对象集群,采用通过配置crushmap、zone和region配置,提高了ssd设备的使用率,也使得原有hdd设备能够继续实用,整体降低了硬件成本。
[0081]
以上所述实施例仅表达了本技术的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1