一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种ceph集群数据均衡方法以及系统与流程

2022-03-26 13:10:46 来源:中国专利 TAG:


1.本发明属于网络通信技术领域,尤其涉及一种ceph集群数据均衡方法以及系统。


背景技术:

2.在ceph分布式存储系统概念里,一块硬盘对应为一个object-based storage device(简称osd),osd将硬盘存储空间划分为一个个小数据块,这样的小数据块称为object。一个osd含有成千上万的object,为了便于管理这些object,ceph采用了归置组(placement group,简称pg),通过稳定的算法把object划分到某个pg下。ceph默认采用三副本保证数据可靠性,也就是一个object在同时存在三个osd中,这三个osd划分为一个主osd和两个从osd,主osd对应主pg,从osd对应从pg。当ceph集群添加了新硬盘后,原有osd的数据需要均衡到新osd中。由于ceph数据均衡的最小单位是pg,也就是添加新硬盘后,原有osd的一部分pg需要均衡到新osd中。目前ceph仅由主pg发起数据均衡,均衡速度慢,均衡效率低,数据均衡是一个耗时过程,均衡过程中无法接收用户端的读写请求,导致用户端的请求等待时间较长,用户体验感受差。


技术实现要素:

3.(一)发明目的为了克服以上不足,本发明的目的在于提供一种ceph集群数据均衡方法以及系统,以解决现有的ceph集群数据均衡耗时较长,均衡期间若客户端发送写入请求,需要等待较长时间才能够得到请求回复,用户体验效果差的技术问题。
4.(二)技术方案为实现上述目的,本技术一方面提供的技术方案如下:一种ceph集群数据均衡方法,应用于ceph分布式存储系统,均衡方法包括以下步骤:主归置组统计待均衡的所有数据块总数,完成统计后将所有统计的数据块平均划分为预定等份,基于每一预定等份分别生成一个均衡清单,根据对应预定等份中的数据块名称确定各均衡清单的内容;其中,预定等份为主归置组与多个从归置组的数量总和;主归置组保留一份均衡清单并且将其余的均衡清单分别分发到不同的从归置组;主归置组与从归置组根据自身均衡清单上的数据块名称,将存储在自身的对应的数据块均衡到新增加的数据存储装置中。
5.本技术通过主归置组将要均衡的数据块进行平均划分,生成多个均衡清单,然后主归置组保留一个均衡清单,将其他的均衡清单分别发送到从归置组,最后主归置组以及从归置组根据均衡清单上的数据块名称将自身存储的数据块对应发送到新增加的数据存储装置中实现均衡,单位时间内多个归置组同时相互配合执行均衡操作,大大提高了数据均衡的效率。
6.进一步地,在统计待均衡的所有数据块总数之后并且在将所有统计的数据块平均划分为预定等份之前,还包括:将正在被客户端请求读写的数据块标记为紧急数据块,将其余没有被客户端请求读写的数据块标记为普通数据块。
7.基于每一预定等份分别生成一个均衡清单还包括:判断每个均衡清单上是否包含紧急数据块的名称,若包含,将每个均衡清单内紧急数据块名称置于普通数据块名称之前。
8.由于数据块在均衡过程中是无法被读写的,因此,本技术将被请求的数据块以及没有被请求的数据块进行区分,将被请求的数据块标记为紧急数据块,将没有被请求的数据块标记为普通数据块,在生成的均衡清单时也将紧急数据块的名称放置于普通数据块之前,这样就可以优先对紧急数据块进行均衡,完成均衡后即马上可响应用户端发起的读写请求,缩短用户端请求等待时间,提高用户的使用体验感受,先进行数据块均衡后接收用户端写入请求,还可保证了数据的一致性。
9.进一步地,主归置组与从归置组根据自身均衡清单上的数据块名称,将存储在自身的对应的数据块均衡到新增加的数据存储装置中之后,还包括:删除预定数量的从归置组,删除预定数量的从归置组可以释放数据存储装置的存储空间。
10.进一步地,主归置组与从归置组根据自身均衡清单上的数据块名称,将存储在自身的对应的数据块均衡到新增加的数据存储装置中之后,还包括:主归置组检查新增加的数据存储装置中的所有数据块与统计的待均衡的数据块数量是否相同,若检查到缺少某个数据块,主归置组将缺少的数据块补充均衡到新增加的数据存储装置中。
11.完成均衡后,主归置组还检查新的数据存储装置内数据块与之前统计的数据块是否一致,若检查到缺少的情况下,将缺少的数据块补充均衡到新增加的数据存储装置中,从而保证了均衡的完整性以及准确性。
12.本发明的另一方面提供了一种ceph集群数据均衡系统,用于实施上述的ceph集群数据均衡方法,均衡系统包括:主数据存储装置以及多个从数据存储装置,主数据存储装置内部设置有一个主归置组,每个从数据存储装置设置有一个从归置组,主归置组以及多个从归置组相互通信连接并且内部同步存储有相同的数据块;其中,主归置组包括:统计模块,用于统计待均衡的所有数据块总数;划分模块,用于在统计模块完成统计后将主归置组内所有统计的数据块平均划分为预定等份;均衡清单生成模块,基于每一预定等份分别生成一个均衡清单并且根据对应预定等份中的数据块名称确定各均衡清单的内容,其中,预定等份为主归置组与多个从归置组的数量总和;分发模块,用于在保留一份均衡清单于主归置组后,将其余的均衡清单分别分发到不同的从归置组;第一均衡模块,根据主归置组所保留的均衡清单上的数据块名称,将存储在主归置组的对应的数据块均衡到新增加的数据存储装置中;从归置组包括:接收模块,用于接收分发模块发送过来的均衡清单;第二均衡模块,根据从归置组所接收的均衡清单上的数据块名称,将存储在从归
置组的对应的数据块均衡到新增加的数据存储装置中。
13.进一步地,主归置组内还包括:标记模块,用于将正在被客户端请求读写的数据块标记为紧急数据块,将其余没有被客户端请求读写的数据块标记为普通数据块;均衡清单生成模块包括:判断子模块以及位置调整子模块,判断子模块用于判断每个均衡清单上是否包含紧急数据块的名称,位置调整子模块用于在判断子模块判断到均衡清单上存在紧急数据块的名称时,将均衡清单上的紧急数据块名称置于普通数据块名称之前。
14.进一步地,还包括:删除模块,用于在第一均衡模块将主归置组内存储的数据块均衡到新增加的数据存储装置中以及第二均衡模块将从归置组内存储的数据块均衡到新增加的数据存储装置中之后,删除预定数量的从归置组。进一步地,主归置组还包括:检查模块,用于在新增加的数据存储装置完成均衡后,检查新增加的数据存储装置中的所有数据块与统计的待均衡的数据块数量是否相同;补充均衡模块,用于在检查模块检查到新增加的数据存储装置缺少某个数据块后,将缺少的数据块补充均衡到新增加的数据存储装置中。
附图说明
15.图1是本发明的ceph集群数据均衡方法的工作原理图。
具体实施方式
16.为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对现有结构和技术的描述,以避免不必要地混淆本发明的概念。
17.本发明提供的一种ceph集群数据均衡方法,应用于ceph分布式存储系统中,具体的,ceph分布式存储系统包括:主数据存储装置(主osd)以及多个从数据存储装置(从osd),主数据存储装置(主osd)内部设置有一个主归置组(主pg),每个从数据存储装置(从osd)内设置一个从归置组(从pg),主归置组(主pg)以及多个从归置组(从pg)相互通信连接,主归置组(主pg)以及从归置组(从pg)内部同步存储有相同的数据块(object),存储时,客户端对主pg的数据块(object)发起写入请求,主归置组(主pg)接收到写入请求后,对数据进行写入并且形成数据块(object),同时,主归置组(主pg)把写入的数据块(object)同步存储到从归置组(从pg)中形成副本备份数据块(object),主归置组(主pg)与从归置组(从pg)内数据块(object)数量以及类型是相同的。当ceph集群添加了新存储装置后,原有存储装置需要将某些需要待均衡的数据块(object)复制到新存储装置中,此为均衡过程,某些数据块(object)无需被复制均衡。
18.具体的,均衡方法包括以下步骤:步骤一:主归置组(主pg)统计其内所有待均衡的数据块(object)总数,完成统计后,将统计后的所有数据块(object)平均划分为预定等份,划分的等份需要根据主归置组(主pg)以及从归置组(从pg)的总数量进行划分,最后基于每一预定等份分别生成一个均衡清单,根据对应预定等份中的数据块名称确定各均衡清单的内容;
步骤二:主归置组(主pg)保留一份均衡清单并且将其余的均衡清单分别分发到不同的从归置组(从pg);步骤三:主归置组(主pg)与从归置组(从pg)根据自身均衡清单上的数据块名称,将存储在自身的对应的数据块(object)均衡到新增加的数据存储装置中。
19.具体的,由于主归置组(主pg)以及多个从归置组(从pg)内数据块(object)种类以及数量都是相同的,因此,生成的多个均衡清单可以随机保留一份,然后将其余的均衡清单随机分发到不同的从归置组(从pg)。
20.请参阅图1,以一个具体实施例对上述步骤进行说明,ceph分布式存储系统中包括3个存储装置,一个主存储装置(主osd,缺省未画出)以及从存储装置1(从osd1,缺省未画出)和从存储装置2(从osd2,缺省未画出),主存储装置(主osd,缺省未画出)内设置有主归置组(主pg),从存储装置1内设置一个从归置组(从pg1),从存储装置2内设置一个从归置组(从pg2);步骤一:主归置组(主pg)统计其内所有待均衡的所有数据块(object)总数,共9个数据块(object1,object2....object9),完成统计后,将所有数据块平均划分成3等份,分别生成3个均衡清单(第一均衡清单、第二均衡清单、第三均衡清单),第一均衡清单内包括数据块object1,object2和object3,第二均衡清单内包括数据块object4,object5和object6,第三均衡清单内包括数据块object7,object8和object9;步骤二:主归置组(主pg)保留第一均衡清单,将第二均衡清单和第三均衡清单分发到从归置组1(从pg1)和归置组2(从pg2);步骤三:主归置组(主pg)、从归置组1(从pg1)、从归置组2(从pg2)根据自身均衡清单上的数据块名称,将存储在自身的对应的数据块(object)均衡到新增加的数据存储装置的新pg中。
21.具体的,由于主归置组(主pg)以及多个从归置组(从pg)内数据块种类以及数量都是相同的,因此,生成的多个均衡清单可以随机保留一份,然后将其余的均衡清单随机分发到不同的从归置组(从pg)。
22.具体的,在均衡过程中,若用户端对某个数据块(object)发送读写请求,主归置组(主pg)是无法对用户端的请求进行回复的,需要进行数据均衡等待,只有等待该数据块(object)被均衡完毕后,主归置组(主pg)才可以对该数据块向用户端进行回复,因此读写请求同步到从归置组时也要进行数据均衡等待。
23.优选的,每次在统计完待均衡的所有数据块(object)总数之后并且在将所有数据块(object)平均划分为预定等份之前,主归置组(主pg)都会判断某些数据块(object)是否被用户端发送读写请求,若收到读写请求,判断该读写请求中是指向哪个数据块(object),然后将被请求的数据块(object)标记为紧急数据块,将没有被请求的数据块(object)标记为普通数据块。
24.在生成一个均衡清单时,若一个均衡清单内存在紧急数据块以及普通数据块,在均衡清单上将紧急数据块名称置于普通数据块名称之前,这样,均衡时,每个归置组都是从头向末端进行信息读取的,可以优先对紧急数据块均衡,完成均衡后,主归置组(主pg)该数据向用户端进行回复,减少用户端的等待时间,提高用户的使用体验。
25.新增加的数据存储装置可以作为一个新的主数据存储装置(主osd),也可以作为
原主数据存储装置的从数据存储装置(从osd)。
26.具体的,在主归置组(主pg)与从归置组(从pg)都将均衡清单上的数据块(object)均衡到新增加的数据存储装置之后,将预定数量的从归置组(从pg)进行删除,以释放从数据存储装置(从osd)的存储空间。具体的,在上述具体实施例中,删除从归置组1,保留从归置组2。具体的,由于从归置组1(从pg1)是要被删除的,因此,在后期读用户端的读写请求时,无需对从归置组1的数据进行同步操作。
27.优选的,在完成均衡后,主归置组(主pg)还需要检查新增加的数据存储装置中的所有数据块(object)与统计的待均衡的数据块(object)数量是否相同,若检查到缺少某个数据块(object),主归置组(主pg)将缺少的数据块(object)补充均衡到新增加的数据存储装置中,以保证数据的一致性。
28.本发明的另一方面提供了一种ceph集群数据均衡系统,用于实施上述的ceph集群数据均衡方法,均衡系统包括:主数据存储装置(主osd)以及多个从数据存储装置(从osd),主数据存储装置(主osd)内部设置有一个主归置组(主pg),每个从数据存储装置(从osd)设置有一个从归置组(从pg),主归置组(主pg)以及多个从归置组(从pg)相互通信连接并且内部同步存储有相同的数据块(object);其中,主归置组(主pg)包括:统计模块,用于统计待均衡的所有数据块(object)总数;划分模块,用于在统计模块完成统计后将主归置组(主pg)内所有待均衡的数据块(object)平均划分为预定等份;均衡清单生成模块,基于每一预定等份分别生成一个均衡清单并且根据对应预定等份中的数据块名称确定各均衡清单的内容,其中,预定等份为主归置组(主pg)与多个从归置组(从pg)的数量总和;分发模块,用于在保留一份均衡清单于主归置组(主pg)后,将其余的均衡清单分别分发到不同的从归置组(从pg);第一均衡模块,根据主归置组所保留的均衡清单上的数据块名称,将存储在主归置组的对应的数据块均衡到新增加的数据存储装置中;从归置组(从pg)包括:接收模块,用于接收分发模块发送过来的均衡清单;第二均衡模块,根据从归置组所接收的均衡清单上的数据块名称,将存储在从归置组的对应的数据块(object)均衡到新增加的数据存储装置中。
29.进一步地,主归置组(主pg)内还包括:标记模块,用于将正在被客户端请求读写的数据块(object)标记为紧急数据块,将其余没有被客户端请求读写的数据块标记为普通数据块;均衡清单生成模块包括:判断子模块以及位置调整子模块,判断子模块用于判断每个均衡清单上是否包含紧急数据块的名称,位置调整子模块用于在判断子模块判断到均衡清单上存在紧急数据块的名称时,将均衡清单上的紧急数据块名称置于普通数据块名称之前。
30.进一步地,还包括:删除模块,用于在主归置组(主pg)与从归置组(从pg)将其内存储的数据块(object)均衡到新增加的数据存储装置中之后,删除预定数量的从归置组(从
pg)。
31.进一步地,主归置组(主pg)还包括:检查模块,用于在新增加的数据存储装置完成均衡后,检查新增加的数据存储装置中的所有数据块(object)与统计的待均衡的数据块(object)数量是否相同;补充均衡模块,用于在检查模块检查到新增加的数据存储装置缺少某个数据块(object)后,将缺少的数据块(object)补充均衡到新增加的数据存储装置中。
32.应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献