分布式块存储的数据自动均衡方法及装置与流程

专利2023-06-22  114



1.本技术涉及数据处理领域,特别涉及分布式块存储的数据自动均衡方法及装置。


背景技术:

2.随着信息技术的发展,传统的集中式数据存储面临着很多新的挑战。随着架构转型的深入,分布式块存储作为标准的基础设施云存储后端,广泛地运用于虚拟机存储资源的供应。目前开源的云平台openstack后端分布式块存储广泛使用ceph分布式存储,而且一般使用数据存储方式都是三副本,目的是以空间换可靠性来保证存储数据的安全。由于数据冗余,真实可用容量最多也只能达到集群的三分之一。不仅如此,ceph分布式存储集群有一个木桶效应,因集群内置放群组(placement groups,pg)个数设置不合理,每个对象存储设备(object-based storage device,osd)上承载的pg个数不一致,当某一个osd使用容量达到满负荷时,会导致整个集群只能读不能写。
3.目前,为解决上述情况现在业界普遍做法是通过使用reweight调整权重调整osd的使用率,从而做到短时间内osd使用率处于均衡状态,一旦业务增加或者虚拟机台数扩容会再次导致osd使用率处于不均衡状态,需要再次人为reweight调整osd权重。reweight调整osd权重使使用率均衡的原理是使用reweight命令对使用率高或低的osd进行降低或提升权重,使得其上的pg迁出或迁入到其他osd,从而做到osd使用率处于均衡状态。
4.应该注意,上面对技术背景的介绍只是为了方便对本技术的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本技术的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。


技术实现要素:

5.发明人发现,在现有技术中,由于需要人为手工调整,工作量大及容易导致误操作,而调整权重步长难控制;一方面,通过手工调整只适合不在扩容缩容的分布式块存储集群,一旦集群出现扩容缩容会再次导致集群osd使用率不均衡。另一方面,集群后续只适合部署一些轻量级应用,一旦部署日志量大的应用会再次导致集群osd使用率不均衡。
6.为了解决上述问题中的至少一个,本技术实施例提供一种分布式块存储的数据自动均衡方法及装置,通过动态调整各个对象存储设备上的置放群组数量,实现了分布式块存储系统的精细化管理,在存储池冗余性能足够的情况下,有效应对osd长期使用率高的问题,避免了分布式存储osd使用率不均而影响后端内部流量,从而影响前端业务性能。
7.根据本技术实施例的第一方面,提供了一种分布式块存储的数据自动均衡方法,所述方法包括:
8.在存储池中,为各个对象存储设备(osd)预先分配所述对象存储设备上的初始置放群组(pg)数量;
9.按照预设周期检测所述对象存储设备的使用率以及所述对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。
10.根据本技术实施例的第二方面,其中,所述初始置放群组数量根据置放群组总数和所述存储池中的所述对象存储设备的数量而确定。
11.根据本技术实施例的第三方面,其中,所述根据检测结果动态调整各个对象存储设备上的置放群组数量,包括:
12.根据所述对象存储设备的使用率与所述存储池中其他对象存储设备的使用率的差值,动态调整各个对象存储设备上的置放群组数量。
13.根据本技术实施例的第四方面,其中,所述方法还包括:当所述对象存储设备的使用率与所述存储池中其他对象存储设备的使用率的差值在预设时长内均大于预设阈值时,针对所述对象存储设备进行报警。
14.根据本技术实施例的第五方面,其中,所述方法还包括:
15.按照预设周期监测所述存储池中的各个对象存储设备的输入输出(io)数据和流量。
16.根据本技术实施例的第六方面,其中,所述方法还包括:
17.根据各个对象存储设备的io数据和流量,将部分io数据落盘到使用率低的对象存储设备上。
18.根据本技术实施例的第七方面,其中,所述方法还包括:
19.当对象存储设备的io数据或流量大于预设阈值时,针对所述对象存储设备进行报警。
20.根据本技术实施例的第八方面,提供一种分布式块存储的数据自动均衡装置,所述装置包括:
21.分配模块,在存储池中为各个对象存储设备(osd)预先分配所述对象存储设备上的初始置放群组(pg)数量;
22.调整模块,其按照预设周期检测所述对象存储设备的使用率以及所述对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。
23.根据本技术实施例的第九方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现本技术实施例的第一方面至第八方面中的任一方面所述的分布式块存储的数据自动均衡方法。
24.根据本技术实施例的第十方面,提供一种计算机可读的存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本技术实施例的第一方面至第八方面中的任一方面所述的分布式块存储的数据自动均衡方法。
25.本技术实施例的有益效果之一在于:
26.通过动态调整各个对象存储设备上的置放群组数量,实现了分布式块存储系统的精细化管理,在存储池冗余性能足够的情况下,有效应对osd长期使用率高的问题,避免了分布式存储osd使用率不均而影响后端内部流量,从而影响前端业务性能。
27.参照后文的说明和附图,详细公开了本技术的特定实施方式,指明了本技术的原理可以被采用的方式。应该理解,本技术的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本技术的实施方式包括许多改变、修改和等同。
28.针对一种实施方式描述以及示出的特征信息可以以相同或类似的方式在一个或
更多个其它实施方式中使用,与其它实施方式中的特征信息相组合,或替代其它实施方式中的特征信息。
29.应该强调,术语“包括/包含”在本文使用时指特征信息、整件、步骤或组件的存在,但并不排除一个或更多个其它特征信息、整件、步骤或组件的存在或附加。
附图说明
30.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本技术实施例的分布式块存储的数据自动均衡方法的一示意图;
32.图2是本技术实施例的预先分配初始置放群组方法的一示意图;
33.图3是本技术实施例的动态调整置放群组数量方法的一示意图;
34.图4是本技术实施例的动态调整置放群组数量方法的一实施例的一示意图;
35.图5是本技术实施例的分布式块存储的数据自动均衡装置的一构成图。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.实施例1
38.本技术实施例1提供了一种分布式块存储的数据自动均衡方法。图1是本技术实施例的分布式块存储的数据自动均衡方法的一示意图,如图1所示,该方法包括:
39.步骤100,在存储池中,为各个对象存储设备(osd)预先分配对象存储设备上的初始置放群组(pg)数量;
40.步骤200,按照预设周期检测对象存储设备的使用率以及对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。
41.这样,通过动态调整各个对象存储设备上的置放群组数量,实现了分布式块存储系统的精细化管理,在存储池冗余性能足够的情况下,有效应对osd长期使用率高的问题。
42.下面对上述方法中的各个步骤进行具体的说明。
43.步骤100,在存储池中,为各个对象存储设备(osd)预先分配对象存储设备上的初始置放群组(pg)数量,也就是说对每个osd上分配预计数量的pg。
44.图2是本技术实施例的预先分配初始置放群组方法的一示意图。
45.如图2所示,在步骤100中包括:
46.步骤101,针对存储池计算集群pg总数;
47.在搭建分布式块存储集群的存储池的时以及考虑未来业务增长情况提前规划pg的数目,控制好各个存储池的比例。
48.例如,集群包含pg个数可以根据以下的公式(1)计算得到:
49.total pgs=(total_number_of_osd
×
100)/max_replication_count
ꢀꢀꢀ
(1)
50.其中,total_number_of_osd表示集群内总osd个数;max_replication_count表示集群内数据副本数。
51.存储池中total pgs算出后数量调整为接近或等于2的幂次方,以对应以1024为一个单位的计算机存储单位。
52.步骤102,限制每osd上的pg个数,即初始pg数量:在集群管理服务(monitor,mon)管理存储节点部署,搭建分布式块存储集群的存储池的时已提前规划pg的总数目。
53.其中,mon负责整个存储集群节点的配置和状态管理,每个虚拟机访问osd都需要先访问mon获取集群地图,从而知道与哪些osd节点通信。
54.每个osd上的pg数目可固定为pg的总数目除以osd总个数,当所得到的结果不为整数时需要四舍五入之后在获得计算结果,例如,将每个osd上的pg最终数目确定为向上进行调整计算所得结果的5%或向下进行调整计算所得结果的5%。
55.接下来,在步骤200中,按照预设周期检测对象存储设备的使用率以及对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。
56.图3是本技术实施例的动态调整置放群组数量方法的一示意图。
57.如图3所示,在步骤200中包括:
58.步骤201,监测对象存储设备的使用率与存储池中其他对象存储设备的使用率的差值;
59.例如,在mon管理存储节点部署,通过过载控制框架周期性检测集群osd使用率的情况,并评判其是否接近过载状态,为osd使用率的动态调整提供依据;
60.例如,监测的是各个对象存储设备的使用率与存储池中其他对象存储设备的使用率的平均值的差值。
61.或者,也可以检测各个对象存储设备的使用率与预设阈值的差值。
62.例如,通过监控osd.map对各节点osd使用率状况监控。
63.步骤202,动态调整各个对象存储设备上的置放群组数量。
64.例如,在存储系统压力变化时,自适应地调节每个osd上的pg个数,避免单osd业务压力太大,影响存储集群的健康状态。
65.这样,在mon管理存储节点部署,通过对各节点osd使用率状况监控,自适应调整osd所承载的pg数量,使osd使用率处于相对均衡的状态,使集群具有持续稳定的服务能力。
66.在一些实施例中,当对象存储设备的使用率与存储池中其他对象存储设备的使用率的差值在预设时长内均大于预设阈值时,针对对象存储设备进行报警。
67.例如,将osd之间使用率差距长期大于10%的osd报警报出,提示运维人员人工触发pg迁移。
68.在一些实施例中,该方法还可以包括:按照预设周期监测存储池中的各个对象存储设备的输入输出(io)数据和流量。
69.例如,通过io监控周期监测每个osd上的io数据、流量;从过载控制框架获取存储系统整体的性能冗余度情况,触发部分io数据、流量动态调整到其余osd。
70.在一些实施例中,该方法还可以包括:根据各个对象存储设备的io数据和流量,将部分io数据落盘到使用率低的对象存储设备上。
71.例如,针对集群内的osd上的pg个数及使用率实时监控,针对osd上pg数目以及osd使用率差距很大的情况下,通过io监控动态调整将部分io数据落盘到使用率低的osd上。
72.例如,使用率低是指osd的使用率比其他osd低10%以上。
73.在一些实施例中,当对象存储设备的io数据或流量大于预设阈值时,针对所述对象存储设备进行报警。
74.接着,在本实施例中,以一个实例来描述本发明实施例的分布式块存储的数据自动均衡方法。图4是本技术实施例的动态调整置放群组数量方法的一实施例的一示意图。
75.如图4所示,在搭建阶段,后端建立分布式块块存储集群的存储池,对每个osd分配初始的固定数量的pg,在前端对各个osd分配虚拟机。
76.在使用过程中,通过在mon管理存储节点部署的过载控制框架监控osd.map对各节点osd使用率状况,自适应调整osd所承载的pg数量,使osd使用率处于相对均衡的状态,使集群具有持续稳定的服务能力。在过载控制框架进行周期性检测集群osd使用率时,当osd使用率在80%-85%的阶段时评判osd为接近过载状态,同时进行告警上送,集中监控接到上报信息后,自适应地调节每个osd上的pg个数。与此同时,io监控周期监测前端虚拟机对每个osd的io数据、流量反馈给集中监控,集中监控在从过载控制框架获取存储系统整体的性能冗余度情况,触发部分io数据、流量动态调整到其余osd。
77.由此,上述整体监控,针对osd上pg数目以及osd使用率差距很大的情况下,通过io监控动态调整将部分io数据落盘到使用率低的osd上。同时在非一致性校验期间以及业务低峰期是通过动态调整部分osd上的pg个数再次实现osd之间pg个数以及使用率处于相对均衡状态。另一方面,将osd之间使用率差距长期处于10%外的osd报警报出,提示运维人员人工触发pg迁移。
78.根据本技术实施例,通过动态调整各个对象存储设备上的置放群组数量,实现了分布式块存储系统的精细化管理,在存储池冗余性能足够的情况下,有效应对osd长期使用率高的问题,避免了分布式存储osd使用率不均而影响后端内部流量,从而影响前端业务性能。
79.实施例2
80.本技术实施例还提供了一种分布式块存储的数据自动均衡装置,其对应于实施例1的分布式块存储的数据自动均衡方法,因此该装置的实施可以参见实施例1的分布式块存储的数据自动均衡方法的实施,重复之处不再赘述。
81.图5为本技术实施例的分布式块存储的数据自动均衡装置的一构成图,如图5所示,分布式块存储的数据自动均衡装置10包括分配模块11、调整模块12,其中,
82.分配模块11,在存储池中为各个对象存储设备(osd)预先分配对象存储设备上的初始放置群组(pg)数量;
83.调整模块12,按照预设周期检测所述对象存储设备的使用率以及对象存储设备上的放置群组数量,并根据检测结果动态调整各个对象存储设备上的放置群组数量。
84.本技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现分布式块存储的数据自动均衡方法。
85.本技术实施例也提供一种计算机可读存储介质,其上存储有计算机程序,其中,计
算机程序被处理器执行时实现分布式块存储的数据自动均衡方法。
86.需要说明的是,本技术中技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
87.本技术实施例中的用户信息均是通过合法合规途径获得,并且对用户信息的获取、存储、使用、处理等经过客户授权同意的。
88.虽然本技术提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
89.本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
90.本技术是参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
91.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
92.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
93.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方
位、以特定的方位构造和操作,因此不能理解为对本技术的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。本技术并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本技术的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
94.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围,其均应涵盖在本技术的权利要求和说明书的范围当中。

技术特征:
1.一种分布式块存储的数据自动均衡方法,其特征在于,所述方法包括:在存储池中,为各个对象存储设备(osd)预先分配所述对象存储设备上的初始置放群组(pg)数量;按照预设周期检测所述对象存储设备的使用率以及所述对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。2.根据权利要求1所述的方法,其特征在于,所述初始置放群组数量根据置放群组总数和所述存储池中的所述对象存储设备的数量而确定。3.根据权利要求1所述的方法,其特征在于,所述根据检测结果动态调整各个对象存储设备上的置放群组数量,包括:根据所述对象存储设备的使用率与所述存储池中其他对象存储设备的使用率的差值,动态调整各个对象存储设备上的置放群组数量。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述对象存储设备的使用率与所述存储池中其他对象存储设备的使用率的差值在预设时长内均大于预设阈值时,针对所述对象存储设备进行报警。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:按照预设周期监测所述存储池中的各个对象存储设备的输入输出(io)数据和流量。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:根据各个对象存储设备的io数据和流量,将部分io数据落盘到使用率低的对象存储设备上。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当对象存储设备的io数据或流量大于预设阈值时,针对所述对象存储设备进行报警。8.一种分布式块存储的数据自动均衡装置,其特征在于,所述装置包括:分配模块,在存储池中为各个对象存储设备(osd)预先分配所述对象存储设备上的初始置放群组(pg)数量;调整模块,按照预设周期检测所述对象存储设备的使用率以及所述对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。

技术总结
本申请实施例提供一种分布式块存储的数据自动均衡方法及装置,所述方法包括:在存储池中,为各个对象存储设备(OSD)预先分配所述对象存储设备上的初始置放群组(PG)数量;按照预设周期检测所述对象存储设备的使用率以及所述对象存储设备上的置放群组数量,并根据检测结果动态调整各个对象存储设备上的置放群组数量。通过动态调整各个对象存储设备上的置放群组数量,实现了分布式块存储系统的精细化管理,在存储池冗余性能足够的情况下,有效应对OSD长期使用率高的问题,避免了分布式存储OSD使用率不均而影响后端内部流量,从而影响前端业务性能。前端业务性能。前端业务性能。


技术研发人员:柳跃 毛玉华 赵堤 沈郭鑫
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-3435.html

最新回复(0)