一种CEPH集群的数据存储方法及相应的集群技术

技术编号:34773493 阅读:23 留言:0更新日期:2022-08-31 19:40
本发明专利技术实施例提供一种CEPH集群的数据存储方法及相应的集群,包括:当需要向CEPH集群写数据时生成写BLOB请求,将写BLOB请求对应的数据生成BLOB单元随机写入CACHE POOL存储层;将满足预设要求的数据所在BLOB单元迁移到DATA POOL存储层;当需要从CEPH集群读数据时生成读BLOB请求,从CACHE POOL存储层对应的BLOB单元中读取所述读BLOB请求对应的数据,或者从DATA POOL存储层读取。读写基于容量较小的BLOB单元,提升CACHE POOL的缓存使用率,降低缓存未命中对业务IO读写的影响,实现低成本的同时,满足业务对性能的要求。满足业务对性能的要求。满足业务对性能的要求。

【技术实现步骤摘要】
一种CEPH集群的数据存储方法及相应的集群


[0001]本专利技术涉及分布式块存储CEPH领域,具体涉及一种CEPH集群的数据存储方法及相应的集群。

技术介绍

[0002]如果业务场景需求高吞吐、低延时的话选择全NVME介质的CEPH(分布式存储系统)集群;如果业务场景需求低成本的话选择全HDD介质的CEPH集群;针对那些对性能和成本都有要求的业务场景,CEPH社区提供了CACHE TIER方案,此方案中两个POOL,其中前端CACHE POOL使NVME作为缓存,后端DATA POOL使用HDD作为数据层,缓存单元为OBJECT。
[0003]在实现本专利技术过程中,申请人发现现有技术中至少存在如下问题:
[0004]当前全HDD介质集群成本低,但性能差,全NVME介质集群性能好,但成本高,社区实现的CACHE TIER方案中,CACHE POOL使用NVME介质,DATA POOL使用HDD介质,缓存单元基于OBJECT,此数据默认为4M(实际可调整,一般4M),读或者写缓存未命中时,需要从后端DATA POOL读取4M的OBJECT对象,对于小写(读写大小为小于或等于4K)的随机读写,此方案将极大增加读写的延时(需要从后端读入OBJECT对象,然后写入CACHE POOL中),且以4M的对象进行缓存,CACHE POOL空间很快被耗尽,进而触发CEPH的EVIT和FLUSH机制,此过程会抢占未命中时的CACHE POOL从DATA POOL读取数据的带宽,进而导致读写性能很差。
专利技术内容
[0005]本专利技术实施例提供一种CEPH集群的数据存储方法及相应的集群,读写基于容量较小的BLOB单元,提升CACHE POOL的缓存使用率,降低缓存未命中对业务IO读写的影响,实现低成本的同时,满足业务对性能的要求。
[0006]为达上述目的,一方面,本专利技术实施例提供一种CEPH集群的数据存储方法,所述CEPH集群包括缓存池CACHE POOL存储层和数据池DATA POOL存储层,所述CACHE POOL存储层使用固态硬盘NVME介质存储数据;所述DATA POOL存储层使用机械硬盘HDD介质存储数据;所述方法包括:
[0007]当需要向CEPH集群写数据时生成写BLOB请求,将写BLOB请求对应的数据生成BLOB单元随机写入CACHE POOL存储层;其中,所述BLOB单元的容量小于预设容量值、且BLOB单元可被随机读写;
[0008]针对CACHE POOL存储层的每个BLOB单元,将满足预设要求的数据所在BLOB单元迁移到DATA POOL存储层;
[0009]当需要从CEPH集群读数据时生成读BLOB请求,从CACHE POOL存储层对应的BLOB单元中读取所述读BLOB请求对应的数据,若所述读BLOB请求对应的数据无法从CACHE POOL存储层的BLOB单元读取,则从DATA POOL存储层读取。
[0010]另一方面,本专利技术实施例提供一种CEPH集群,包括:
[0011]CACHE POOL存储层,所述CACHE POOL存储层使用NVME介质存储数据;
POOL存储层;具体包括:
[0027]S1021:将写BLOB请求对应的数据写入BLOB单元,对所述BLOB单元进行数据压缩,将数据压缩之后的BLOB单元存储在CACHE POOL存储层;将所述BLOB单元相应的元数据存储在CACHE POOL存储层的ROCKSDB存储单元中,所述元数据是所述BLOB单元中的数据的描述信息。
[0028]优选地,还包括:
[0029]S104:针对同一用户发起的至少两个写BLOB请求,在所述至少两个写BLOB请求执行完成后,扫描所述用户的所有BLOB单元,将具有数据交集的BLOB单元进行数据合并生成合并BLOB单元,且每个合并BLOB单元的容量不超过其所述预设容量值;根据合并BLOB单元更新ROCKSDB存储单元中相应的元数据。
[0030]优选地,步骤102,具体包括:
[0031]S1021:通过第一后端线程定时扫描CACHE POOL存储层中的每个BLOB单元,若BLOB单元内的数据连续未被访问的时间满足预设冷数据时间阈值,将所述连续未被访问的BLOB单元标记为冷数据;
[0032]S1022:当CACHE POOL存储层的存储使用率达到预设使用率阈值时,通过第二后端线程将CACHE POOL存储层中标记为冷数据的BLOB单元迁移到DATA POOL存储层,并更新ROCKSDB存储单元中被迁移的BLOB单元对应的元数据。
[0033]优选地,步骤103,具体包括:
[0034]S1031:根据所述读BLOB请求查询所述ROCKSDB存储单元内的元数据,确定所述读BLOB请求对应的数据缓存在CACHE POOL存储层还是存储在DATA POOL存储层;
[0035]S1032:如果所述读BLOB请求对应的数据全部缓存在CACHE POOL存储层,则直接从CACHE POOL存储层对应的BLOB单元中读取数据并返回;
[0036]S1033:如果所述读BLOB请求对应的数据全部未缓存在CACHE POOL存储层,则从DATA POOL存储层对应的BLOB单元中读取数据并返回;将相应的BLOB单元自DATA POOL存储层迁移到CACHE POOL存储层,并更新ROCKSDB存储单元内相应的元数据;
[0037]S1034:如果所述读BLOB请求对应的数据部分未缓存在CACHE POOL存储层,则从DATA POOL存储层获取并迁移未缓存在CACHE POOL存储层的部分数据对应的第一BLOB单元,在CACHE POOL存储层将从DATA POOL存储层迁移的第一BLOB单元与缓存在CACHE POOL存储层的部分数据对应的第二BLOB单元进行数据合并生成新BLOB单元,从新BLOB单元中读取数据并返回;将新BLOB单元写入到CACHE POOL存储层,根据新BLOB单元更新ROCKSDB存储单元中相应的元数据。
[0038]如图2所示,结合本专利技术的实施例,提供一种CEPH集群,包括:
[0039]CACHE POOL存储层21,所述CACHE POOL存储层使用NVME介质存储数据;
[0040]写入单元22,用于当需要向CEPH集群写数据时生成写BLOB请求,将写BLOB请求对应的数据生成BLOB单元随机写入CACHE POOL存储层;其中,所述BLOB单元的容量小于预设容量值、且BLOB单元可被随机读写;
[0041]DATA POOL存储层23,所述DATA POOL存储层使用HDD介质存储数据;
[0042]迁移单元24,用于针对CACHE POOL存储层的每个BLOB单元,将满足预设要求的数据所在BLOB单元迁移到DATA POOL存储层;
[0043]读取单元25,用于当需要从CEPH集群读数据时生成读BLOB请求,从CAC本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式存储系统CEPH集群的数据存储方法,其特征在于,所述CEPH集群包括缓存池CACHE POOL存储层和数据池DATA POOL存储层,所述CACHE POOL存储层使用固态硬盘NVME介质存储数据;所述DATA POOL存储层使用机械硬盘HDD介质存储数据;所述方法包括:当需要向CEPH集群写数据时生成写BLOB请求,将写BLOB请求对应的数据生成BLOB单元随机写入CACHE POOL存储层;其中,所述BLOB单元的容量小于预设容量值、且BLOB单元可被随机读写;针对CACHE POOL存储层的每个BLOB单元,将满足预设要求的数据所在BLOB单元迁移到DATA POOL存储层;当需要从CEPH集群读数据时生成读BLOB请求,从CACHE POOL存储层对应的BLOB单元中读取所述读BLOB请求对应的数据,若所述读BLOB请求对应的数据无法从CACHE POOL存储层的BLOB单元读取,则从DATA POOL存储层读取。2.根据权利要求1所述的CEPH集群的数据存储方法,其特征在于,所述将写BLOB请求对应的数据生成BLOB单元随机写入CACHE POOL存储层,具体还包括:将写BLOB请求对应的数据写入BLOB单元,对所述BLOB单元进行数据压缩,将数据压缩之后的BLOB单元存储在CACHE POOL存储层;将所述BLOB单元相应的元数据存储在CACHE POOL存储层的ROCKSDB存储单元中,所述元数据是所述BLOB单元中数据的描述信息。3.根据权利要求2所述的CEPH集群的数据存储方法,其特征在于,还包括:针对同一用户发起的至少两个写BLOB请求,在所述至少两个写BLOB请求执行完成后,扫描所述用户的所有BLOB单元,将具有数据交集的BLOB单元进行数据合并生成合并BLOB单元,且每个合并BLOB单元的容量不超过所述预设容量值;根据合并BLOB单元更新ROCKSDB存储单元中相应的元数据。4.根据权利要求2所述的CEPH集群的数据存储方法,其特征在于,所述针对CACHE POOL存储层的每个BLOB单元,将满足预设要求的数据所在BLOB单元迁移到DATA POOL存储层,具体包括:通过第一后端线程定时扫描CACHE POOL存储层中的每个BLOB单元,若BLOB单元内的数据连续未被访问的时间满足预设冷数据时间阈值,将所述连续未被访问的BLOB单元标记为冷数据;当CACHE POOL存储层的存储使用率达到预设使用率阈值时,通过第二后端线程将CACHE POOL存储层中标记为冷数据的BLOB单元迁移到DATA POOL存储层,并更新ROCKSDB存储单元中被迁移的BLOB单元相应的元数据。5.根据权利要求2所述的CEPH集群的数据存储方法,其特征在于,所述当需要从CEPH集群读数据时生成读BLOB请求,从CACHE POOL存储层对应的BLOB单元中读取所述读BLOB请求对应的数据,若所述读BLOB请求对应的数据无法从CACHE POOL存储层的BLOB单元读取,则从DATA POOL存储层读取,具体包括:根据所述读BLOB请求查询所述ROCKSDB存储单元内的元数据,确定所述读BLOB请求对应的数据缓存在CACHE POOL存储层还是存储在DATA POOL存储层;如果所述读BLOB请求对应的数据全部缓存在CACHE POOL存储层,则直接从CACHE POOL存储层对应的BLOB单元中读取数据并返回;如果所述读BLOB请求对应的数据全部未缓存在CACHE POOL存储层,则从DATA POOL存
储层对应的BLOB单元中读取数据并返回;将相应的BLOB单元自DATA POOL存储层迁移到CACHE POOL存储层,并更新ROCKSDB存储单元内相应的元数据;如果所述读BLOB请求对应的数据部分未缓存在CACHE POOL存储层,则从DATA POOL存储层获取并迁移未缓存在CACHE POOL存储层的部分数据对应的第一BLOB单元,在CACHE POOL存储层将从DATA POOL存储层迁移的第一BLOB单元与缓存在CACHE POOL存储层的部分数据对应的第二BLOB单元进行数据合并生成新BLOB单元,从新BLOB单元中读取数据并返回;将新BLOB单元写入到CACHE POOL存储层,根据新BLOB单元更新ROCKSDB存储单元中相应的元数据。6.一种CEPH集群,其特征...

【专利技术属性】
技术研发人员:张文波
申请(专利权)人:新浪网技术中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1