对象存储分布式质量服务的方法及装置与流程

文档序号:28161625发布日期:2021-12-24 20:15阅读:182来源:国知局
对象存储分布式质量服务的方法及装置与流程

1.本发明涉及数据存储领域,具体而言,涉及一种对象存储分布式质量服务的方法及装置。


背景技术:

2.随着互联网应用的高速度发展,日益产生的海量非结构化数据的需要存储。对象存储能够提供海量存储的解决方案,支持百亿或者千亿对象产品规格。随着服务的用户越来越多,对质量服务qos(quality of service)的需求就越来越迫切。而为了满足大规模高并发的需求,一般对象存储都是采用多对象存储网关同时对外服务,这就给整体质量服务qos带来了困难。
3.目前对象存储的质量服务qos功能基本都以单网关独立质量服务qos方案为主,多网关协同的分布式质量服务qos方案还比较少。业界中其他的主流分布式质量服务qos方案一般采用dmclock的方式,如ceph的分布式质量服务qos功能即采用该方案进行。
4.单网关独立质量服务qos方案的特点是进程内处理,响应速度快,性能影响小,但是缺点也很明显,多网关之间无法协调,对象存储整体上无法统一控制。
5.dmclock方案可以实现整体的质量服务qos控制,但实现复杂且每次输入输出口io都需要发送到同一个server服务端进行授权请求,影响io性能,且产生的交互信息较多。
6.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

7.本发明实施例提供了一种对象存储分布式质量服务的方法及装置,以至少解决相关技术中的质量服务只能针对单网关进行管理,无法对多网关进行管理,无法满足多网关质量服务要求的技术问题。
8.根据本发明实施例的一个方面,提供了一种对象存储分布式质量服务的方法,包括:将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,所述队列的数量不超过所述系统的网关的数量,所述资源分配服务对应至少一个对应网关;将所述资源分配服务发送一个对应网关,对所述至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行所述队列中的多个桶的资源分配,其中,所述质量服务数据包括所述网关访问的桶,以及桶的访问资源参数;控制网关分别获取多个资源分配服务中多个桶的资源分配,确定所述网关本地的令牌桶的令牌生成速率,其中,所述令牌生成速率用于确定所述网关访问所述令牌桶对应的桶的访问资源。
9.可选的,将所述资源分配服务发送一个对应网关,对所述至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行所述队列中的多个桶的资源分配包括:将所述资源分配服务发送一个对应网关,将所述对应网关确定为主网关;将非主网关在上一时间间隔中按照所述资源分配服务的对应的队列中的桶的访问资源参数,作为所述质量服务数据,发送给所述资源分配服务,其中,所述时间间隔为所述非主网关向所
述资源分配服务发送质量服务数据的时间间隔;通过所述资源分配服务根据所述对应网关的访问资源参数和所述队列的桶的总资源参数确定对应网关对所述队列的桶的资源分配,其中,所述队列的桶的总资源为所述主网关从所述系统的公共数据库中获取的质量数据注册信息确定的,所述系统的所有网关定时从所述公共数据库中获取的质量数据注册信息。
10.可选的,通过所述资源分配服务根据所述访问资源参数和所述桶的总资源参数确定所述资源分配包括:根据桶的总资源参数和预设梯度系数确定资源变化的梯度参数;根据所述对应网关对所述桶的访问资源参数和所述梯度参数,确定所述对应网关对所述桶的访问量;根据所述总资源参数和所述梯度参数,确定所述桶的总资源量;根据所述访问量确定所述对应网关的初步分配资源量;在多个对应网关的初步分配资源量之和等于所述总资源量的情况下,根据所述初步分配资源量和所述梯度参数确定资源分配结果。
11.可选的,根据所述访问量确定所述对应网关的初步分配资源量包括:在所述访问量与上一次确定的访问量之差为正,则对所述访问量减去预设值作为所述初步分配资源量;在所述访问量与上一次确定的访问量之差为负,则对所述访问量加上预设值作为所述初步分配资源量。
12.可选的,所述方法还包括:在多个对应网关的初步分配资源量之和大于所述总资源量的情况下,逐个对多个对应网关的初步分配资源量进行降低,直至所述初步分配资源量之和等于所述总资源量;在多个对应网关的初步分配资源量之和小于所述总资源量的情况下,逐个对多个对应网关的初步分配资源量进行提高,直至所述初步分配资源量之和等于所述总资源量;在多个对应网关的初步分配资源量之和等于所述总资源量的情况下,根据所述初步分配资源量和所述梯度参数确定资源分配结果包括:在多个对应网关的初步分配资源量之和等于所述总资源量的情况下,检测所有的网关的初步分配资源量;将初步分配资源量为零的网关的初步分配资源量设为一。
13.可选的,还包括:在所述系统的网关启动后,控制网关开始向公共数据库获取质量数据注册信息;在系统的多个网关中确定一个目标网关;通过目标网关接收非目标网关的心跳信号,确定第一存活网关;根据第一存活网关对所述资源分配服务的对应网关进行更新,将非存活网关删除。
14.可选的,所述目标网关设置有资源分配服务,通过目标网关接收非目标网关的心跳信号,确定第一存活网关包括:在接收到非目标网关对所述资源分配服务的队列的桶的质量服务数据的情况下,确定所述非目标网关为第一存活网关;在第一预定时间内均未接收到非目标网关对所述资源分配服务的队列的桶的质量服务数据的情况下,确定所述非目标网关非存活。
15.可选的,还包括:控制所述目标网关根据所述第一存活网关定时更新所述公共数据库中的队列和资源分配服务的映射表,其中,所述映射表用于确定所述资源分配服务分配的队列中的桶的资源;在第二预定时间内没有接收到所述目标网关的更新数据的情况下,确定所述目标网关非存活,从获取的质量数据注册信息的第二存活网关中确定新的目标网关。
16.根据本发明实施例的另一方面,还提供了一种对象存储分布式质量服务的装置,包括:划分模块,用于将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,所述队列的数量不超过所述系统的网关的数量,所述资源分配服务对
应至少一个对应网关;分配模块,用于将所述资源分配服务发送一个对应网关,对所述至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行所述队列中的多个桶的资源分配,其中,所述质量服务数据包括所述网关访问的桶,以及桶的访问资源参数;确定模块,用于控制网关分别获取多个资源分配服务中多个桶的资源分配,确定所述网关本地的令牌桶的令牌生成速率,其中,所述令牌生成速率用于确定所述网关访问所述令牌桶对应的桶的访问资源。
17.根据本发明实施例的另一方面,还提供了一种计算机存储介质,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行上述中任意一项所述的对象存储分布式质量服务的方法。
18.根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的对象存储分布式质量服务的方法。
19.在本发明实施例中,采用将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,队列的数量不超过系统的网关的数量,资源分配服务对应至少一个对应网关;将资源分配服务发送一个对应网关,对至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行队列中的多个桶的资源分配,其中,质量服务数据包括网关访问的桶,以及桶的访问资源参数;控制网关分别获取多个资源分配服务中多个桶的资源分配,确定网关本地的令牌桶的令牌生成速率,其中,令牌生成速率用于确定网关访问令牌桶对应的桶的访问资源的方式,将多个桶分为多个队列分别配置资源分配服务,从对多个网关访问桶的资源进行分配,达到了对多个网关访问存储对象的桶的质量服务数据的管理的目的,从而实现了满足多网关的质量服务数据的管理要求的技术效果,进而解决了相关技术中的质量服务只能针对单网关进行管理,无法对多网关进行管理,无法满足多网关质量服务要求的技术问题。
附图说明
20.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
21.图1是根据本发明实施例的一种对象存储分布式质量服务的方法的流程图;
22.图2是根据本发明实施方式的质量服务结构的示意图;
23.图3是根据本发明实施方式的多网关质量服务管理的流程图;
24.图4是根据本发明实施方式的mq运行机制的示意图;
25.图5是根据本发明实施方式的hq运行机制的示意图;
26.图6是根据本发明实施例的一种对象存储分布式质量服务的装置的示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
28.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.根据本发明实施例,提供了一种对象存储分布式质量服务的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
30.图1是根据本发明实施例的一种对象存储分布式质量服务的方法的流程图,如图1所示,该方法包括如下步骤:
31.步骤s102,将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,队列的数量不超过系统的网关的数量,资源分配服务对应至少一个对应网关;
32.步骤s104,将资源分配服务发送一个对应网关,对至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行队列中的多个桶的资源分配,其中,质量服务数据包括网关访问的桶,以及桶的访问资源参数;
33.步骤s106,控制网关分别获取多个资源分配服务中多个桶的资源分配,确定网关本地的令牌桶的令牌生成速率,其中,令牌生成速率用于确定网关访问令牌桶对应的桶的访问资源。
34.通过上述步骤,采用将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,队列的数量不超过系统的网关的数量,资源分配服务对应至少一个对应网关;将资源分配服务发送一个对应网关,对至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行队列中的多个桶的资源分配,其中,质量服务数据包括网关访问的桶,以及桶的访问资源参数;控制网关分别获取多个资源分配服务中多个桶的资源分配,确定网关本地的令牌桶的令牌生成速率,其中,令牌生成速率用于确定网关访问令牌桶对应的桶的访问资源的方式,将多个桶分为多个队列分别配置资源分配服务,从对多个网关访问桶的资源进行分配,达到了对多个网关访问存储对象的桶的质量服务数据的管理的目的,从而实现了满足多网关的质量服务数据的管理要求的技术效果,进而解决了相关技术中的质量服务只能针对单网关进行管理,无法对多网关进行管理,无法满足多网关质量服务要求的技术问题。
35.上述系统可以为对象存储系统,该对象存储系统可以有一个或多个网关,由于现在的用户需求增大,通常的对象存储系统的欧式包括多个网关的,但是相关技术中质量服务qos数据的管理智能针对单网关,对多网关的情况仍然采用单网关的方式无法进行管理,相关技术中,存在dmclock的方式进行多网关的质量服务qos管理,但是其交互信息较多,容易出错。
36.本实施例通过上述步骤,将多个桶分为多个队列分别配置资源分配服务,从对多
个网关访问桶的资源进行分配,达到了对多个网关访问存储对象的桶的质量服务数据的管理的目的,从而实现了满足多网关的质量服务数据的管理要求的技术效果,进而解决了相关技术中的质量服务只能针对单网关进行管理,无法对多网关进行管理,无法满足多网关质量服务要求的技术问题。
37.上述存储对象的桶也即是存储对象在存储系统中的存储形式,每个桶都有自己的地址,可以通过链接表示,可以代表桶中存储的存储对象的位置。每个桶都可以按照策略与可以通信的网关进行通信,在通信时其通信资源的管理,也即是上述质量服务的管理,通过调整通信资源,使得通信质量较高,通信稳定高效,从而提高服务质量。
38.由于每个存储系统都包括很多的桶,统一进行管理的负担较重,通常难以实现,因此,将系统中多个桶,划分为多个队列,每个队列包括有系统的一部分桶,一对列为单位对队列中的桶与网关的资源进行管理和分配可以更加高效和准确。
39.在将多个桶划分为多个队列时,需要注意划分队列的数量。由于队列中通的资源管理,需要通过队列的资源分配服务来实现,也即是为每个队列设置一个资源分配服务,来管理队列中桶的资源。而为了降低网关的数据交互量,以及简化数据交互的结构,减轻网关负担,资源分配服务通常只设置在一个网关上,也即是一个网关至多设置一个资源分配服务,因此,上述队列的数量不超过系统的网关的数量,至多与系统的网关数量相同,这样就可以每个网关设置一个资源分配服务。
40.需要说明的是,由于系统的多个网关在使用时,会存在时而用时而不用,也即是时而处于存活状态,时而处于非存活状态,非存活的网关是不能运行资源分配服务的。考虑到网关的使用率,或者说是存活率,队列的数量可以更少,以保证存活网关的数量可以满足资源分配服务的需求。
41.将资源分配服务对应至少一个网关,资源分配服务需要为网关分配队列的桶的资源,在极端的情况下,队列的桶都只与同一个网关通信,则资源分配服务就只能对应一个对应网关,将该资源分配服务发送给对应网关,对该对应网关与队列的桶的资源进行分配管理。将资源分配服务发送给一个对应网关,资源分配服务就在该对应网关上运行,对资源分配服务的至少一个对应网关进行质量服务数据的统计,并根据统计结果进行资源分配。
42.上述对应网关向资源分配服务发送的质量服务数据,就可以作为该对应网关的心跳,在资源分配服务接收到对应网关的质量服务数据就可以确定该对应网关存活,在后续资源分配中为该对应网关分配资源,若没有接收到对应网关的质量服务数据,或者接收到的质量服务数据的时间戳是很久之前的,则判定该对应网关非存活,在分配资源时就不再为该对应网关分配资源了,以避免桶的资源浪费。
43.上述质量服务数据,也即是该网关在上次分配桶的资源后,对该桶的访问资源参数,也即是对该桶的资源的使用情况,上述桶的访问资源参数可以通过实际通信参数来表征,例如,可以为每秒读写次数iops,也可以为带宽。若使用的很频繁,如iops数值持续达到分配值,或者使用带宽持续达到分配值,就认为该网关对该桶的资源需要增加,下次分配时就适当增加该桶对该网关的资源,反之,若使用的很少,如iops数值不连续,或保持较低水平,或者使用带宽不持续,或保持较低水平,就认为该网关对该桶的资源需要减少,下次分配时就适当减少该桶对该网关的资源。以按需分配桶的资源,使得系统保持较高的通信效率,从而保证较高的服务质量。
44.在确定桶对网关的分配资源后,根据该分配资源确定该网关本地的令牌桶的令牌生成速率,令牌桶是设置在网关本地的,用于为网关访问桶提供令牌的模块,其令牌生成速率,决定了网关访问桶的访问资源。从而对该网关对该桶的访问通过分配资源进行执行。
45.可选的,将资源分配服务发送一个对应网关,对至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行队列中的多个桶的资源分配包括:将资源分配服务发送一个对应网关,将对应网关确定为主网关;将非主网关在上一时间间隔中按照资源分配服务的对应的队列中的桶的访问资源参数,作为质量服务数据,发送给资源分配服务,其中,时间间隔为非主网关向资源分配服务发送质量服务数据的时间间隔;通过资源分配服务根据对应网关的访问资源参数和队列的桶的总资源参数确定对应网关对队列的桶的资源分配,其中,队列的桶的总资源为主网关从系统的公共数据库中获取的质量数据注册信息确定的,系统的所有网关定时从公共数据库中获取的质量数据注册信息。
46.将上述资源分配服务发送给一个对应网关后,该对应网关对于访问该资源分配服务的队列的多个桶的对应网关而言,就是主网关,上述资源分配服务的多个对应网关都需要到主网关上向资源分配服务发送质量服务数据,包括主网关自己也需要向资源分配服务发送质量服务数据。因此,通过资源分配服务根据对应网关的访问资源参数和队列的桶的总资源参数确定对应网关对队列的桶的资源分配,其中,对应网关的访问资源参数包括非主网关和主网关的访问资源参数。
47.上述上一时间间隔可以为该网关在上次接收到资源分配后,对该资源分配服务的队列的桶的访问资源参数。
48.上述公共数据库中获取的质量数据注册信息,可以为网关在开始向桶访问之前,创建的访问注册信息,根据桶的已注册的所有的网关的注册信息可以确定出桶总的通信资源。
49.可选的,通过资源分配服务根据访问资源参数和桶的总资源参数确定资源分配包括:根据桶的总资源参数和预设梯度系数确定资源变化的梯度参数;根据对应网关对桶的访问资源参数和梯度参数,确定对应网关对桶的访问量;根据总资源参数和梯度参数,确定桶的总资源量;根据访问量确定对应网关的初步分配资源量;在多个对应网关的初步分配资源量之和等于总资源量的情况下,根据初步分配资源量和梯度参数确定资源分配结果。
50.具体的,在通过资源分配服务根据访问资源参数和桶的总资源参数确定资源分配时,为了防止突发情况实现各网关配额的快速变化又能使性能运行平稳,采用梯度参数进行调整,也即是一梯度参数为单位对网关对桶的访问资源进行调整,每次调整都是梯度参数的整数倍。则在确定时需要根据梯度参数,将对应网关对桶的访问资源参数确定为对应网关对桶的访问量,将桶的总资源参数确定为桶的总资源量。
51.在确定具体的网关对桶的分配资源时,根据网关对桶的上一次的访问量确定为分配桶对应网关的初步分配资源量,在多个对应网关的初步分配资源量之和等于总资源量的情况下,将初步分配资源量作为该网关对该桶的分配资源量,根据初步分配资源量和梯度参数确定资源分配结果,也即是将初步分配资源量乘以上述梯度参数,得到为该网关分配的该桶的分配资源。
52.可选的,根据访问量确定对应网关的初步分配资源量包括:在访问量与上一次确
定的访问量之差为正,则对访问量减去预设值作为初步分配资源量;在访问量与上一次确定的访问量之差为负,则对访问量加上预设值作为初步分配资源量。
53.考虑到网关对桶的访问的稳定性,以及资源分配的间隔时间,上述预设值可以为1。需要说明的是,上述稳定性越差,预设值越大,间隔时间越长,预设值越大。该预设值可跟根据需求进行修改。
54.可选的,方法还包括:在多个对应网关的初步分配资源量之和大于总资源量的情况下,逐个对多个对应网关的初步分配资源量进行降低,直至初步分配资源量之和等于总资源量;在多个对应网关的初步分配资源量之和小于总资源量的情况下,逐个对多个对应网关的初步分配资源量进行提高,直至初步分配资源量之和等于总资源量;在多个对应网关的初步分配资源量之和等于总资源量的情况下,根据初步分配资源量和梯度参数确定资源分配结果包括:在多个对应网关的初步分配资源量之和等于总资源量的情况下,检测所有的网关的初步分配资源量;将初步分配资源量为零的网关的初步分配资源量设为一。
55.上述在多个对应网关的初步分配资源量之和大于总资源量的情况下,说明分配的总资源超过了桶可以分配的总资源,需要逐个对多个对应网关的初步分配资源量进行降低,直至初步分配资源量之和等于总资源量,在降低时可以对访问该桶的多个网关进行权重设置,选择权重低的先减少,或者随机进行减少。在多个对应网关的初步分配资源量之和小于总资源量的情况下,说明分配的总资源不足桶可以分配的总资源,桶的资源有一部分用不上,需要逐个对多个对应网关的初步分配资源量进行提高,直至初步分配资源量之和等于总资源量,在提高时与降低的方式类似,可以采用权重高的先提高,也可以随机选取网关进行提高。
56.在多个对应网关的初步分配资源量之和等于总资源量的情况下,根据初步分配资源量和梯度参数确定资源分配结果时,可以在多个对应网关的初步分配资源量之和等于总资源量的情况下,检测所有的网关的初步分配资源量;将初步分配资源量为零的网关的初步分配资源量设为一。从而防止为网关不分配资源导致该网关的io端口卡死,影响该网关后续的工作。
57.可选的,还包括:在系统的网关启动后,控制网关开始向公共数据库获取质量数据注册信息;在系统的多个网关中确定一个目标网关;通过目标网关接收非目标网关的心跳信号,确定第一存活网关;根据第一存活网关对资源分配服务的对应网关进行更新,将非存活网关删除。
58.还可以为系统的多个网关设置一个目标网关,目标网关负责根据心跳维护网关的存活情况,并为存活网关发布队列和资源分配服务的映射表,也即是资源分配服务负责哪些桶的资源分配,从而使得网关可以根据该映射表,向需要访问的桶对应的资源分配服务请求资源分配。
59.需要的说明的是,所有网关都会定时从公共数据库获取质量服务注册信息,以便对网关访问的桶,以及桶访问的网关进行更新,目标网关根据各个网关访问公共数据库的数据,来确定网关是否存活。而不需要发送单独的心跳信号,简化数据交互。
60.可选的,目标网关设置有资源分配服务,通过目标网关接收非目标网关的心跳信号,确定第一存活网关包括:在接收到非目标网关对资源分配服务的队列的桶的质量服务数据的情况下,确定非目标网关为第一存活网关;在第一预定时间内均未接收到非目标网
关对资源分配服务的队列的桶的质量服务数据的情况下,确定非目标网关非存活。
61.上述心跳信号可以为上述所有网关从公共数据库获取质量服务注册信息的信号。
62.其他资源分配服务与目标网关的资源分配服务的管理方式类似,将第一预定时间内均未接收到其他对应网关的质量服务数据的情况下,确定其为非存活网关,并将不在为其分配资源。
63.需要说明的是,确定存活网关和非存活网关后,非目标网关上设置的资源分配服务,需要根据该非目标网关从公共数据库获取的质量服务注册信息,确定存货网关和非存活网关的名单。
64.可选的,还包括:控制目标网关根据第一存活网关定时更新公共数据库中的队列和资源分配服务的映射表,其中,映射表用于确定资源分配服务分配的队列中的桶的资源;在第二预定时间内没有接收到目标网关的更新数据的情况下,确定目标网关非存活,从获取的质量数据注册信息的第二存活网关中确定新的目标网关。
65.在一种情况下,目标网关也可能非存活,可以控制目标网关根据第一存活网关定时更新公共数据库中的队列和资源分配服务的映射表,其中,映射表用于确定资源分配服务分配的队列中的桶的资源,在第二预定时间内没有接收到目标网关的更新数据的情况下,确定目标网关非存活,从获取的质量数据注册信息的第二存活网关中确定新的目标网关。
66.需要说明的是,本实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
67.本实施方式提供了一种对象存储分布式qos的实现方法。令牌桶机制是本地qos一种较好的实现方案,具有响应快、低延迟且能应对突发状况,但其不具备多网关协调的功能。因此本发明基于本地令牌桶机制进行升级,往上建立一套网关之间互相交换qos信息,然后汇总进行协同控制的分配方法,为各个网关分配配额。为了保证多网关qos服务运行的稳定性,又添加了一套心跳与主qos切换机制,确保在异常情况下对象存储网关也能平稳运行。本实施方式的对象存储分布式qos的实现方法能够为对象存储按桶提供整体的qos服务,具有响应快、时延低、交互信息少的特点。面对异常场景也能平稳运行并且快速恢复,并且本方案还能对桶的iops和带宽进行同时控制。
68.图2是根据本发明实施方式的质量服务结构的示意图,如图2所示,本实施方式的质量服务qos由三部分组成mq模块、hq模块、令牌桶(ratelimiter)。下面对质量服务中的相关名次进行解释。
69.master_qos(mq):也即是上述目标网关,mq实际上可以认为是一个服务进程,可以认为安装该mq服务进程的网关为目标网关,该mq服务进程用于根据心跳信息,维护在线网关集合,负责分配各个队列bq对应的资源分配服务hq。
70.slave_qos(sq):除了mq之外的其他网关,实际上就是没有安装mq服务进程的网关,定时从公共数据库db获取qos注册信息。在发现mq超时后可发起抢占成为新的mq。
71.buckets_queue(bq):把所有桶分为多个队列,每个队列称为bq。
72.handle_qos(hq):每个队列bq对应一个资源分配服务hq,非hq成员(也即是没有安装hq的网关)向hq成员(也即是安装hq的网关)定时发送该bq下所有桶的qos统计信息,hq进行该bq的资源重分配。
73.master_interval(mi):mq更新信息与sq获取信息的间隔时间。
74.handle_interval(hi):hq重分配配额间隔时间,非hq成员上报qos统计信息间隔时间。
75.图3是根据本发明实施方式的多网关质量服务管理的流程图,如图3所示,本实施方式的总体流程如下:
76.1)由于桶的数量可能很大,为方便处理,把桶分为几个队列,每个队列称为bq,每个bq需要一个进行资源重分配的hq。
77.2)系统的所有网关启动后都到公共数据库(db)获取qos注册信息,如果db中当前没有mq则网关抢占成为mq,mq根据心跳负责发布bq与hq的映射表以及维护其他网关的存活情况。
78.3)所有网关定时从db获取qos注册信息,根据发布的配置向对应hq发送该bq下所有桶的本地qos统计信息并获取最新分配配额,该分配的资源可以为每秒读写次数iops,也可以为带宽。
79.4)根据hq发布的最新配额调整本地各个桶的令牌桶令牌生成速率,进程内提供qos功能。
80.5)每个桶可以按不同功能分别运行令牌桶。
81.图4是根据本发明实施方式的mq运行机制的示意图,如图4所示,由于其他所有的网关都会向hq定时发送本地qos统计信息,这些消息实际上还可以作为网关之间的心跳使用。根据心跳获得所有存活网关的集合,以此为基础mq计算bq与hq映射表,长时间丢失心跳会被踢出存活网关集合,不再分配其为hq。但是这有一个前提,mq必须同时也是hq,本方法在计算bq与hq映射表时从mq对应的网关开始分配来保证此限制。计算完成之后mq将master_qos的网关id、时间戳和bq与hq的映射表更新到db。
82.图5是根据本发明实施方式的hq运行机制的示意图,如图5所示,每个网关内部维护一个上报定时器,按hi时间间隔所有网关均按照bq分组向对应的hq上报上个hi时间内本地令牌桶消费的令牌数统计。hq根据各个网关上报的信息重新计算分配的配额也按相同的时间间隔,这就保证了正常情况下每次计算时都能完整的收集所有网关上个hi的统计信息。如果遇到网络延迟等情况,则继续使用上次上报信息计算,如果长时间未上报,则会被认为故障踢出分配列表。
83.为了能同时应对io的突发情况实现各网关配额的快速变化又能使性能运行平稳,设计采用如下配额重分配计算方式:
84.#qospermit(桶的总资源参数):配置每秒限制令牌数;
85.#basepermit(梯度参数):qospermit平均到所有的网关,然后为了方便梯度计算再除以10,即basepermit=qospermit/网关数/10;
86.#permit(初步分配资源参数):每个网关实际最后计算出的每秒允许令牌数;
87.#consume(访问资源参数):收集到的上一个周期每秒消耗令牌数,为统一计算除以basepermit;
88.#basecs(访问量):consume按basepermit转换后梯度,basecs=consume/basepermit;
89.#basepm(初步分配资源量):permit按basepermit转换后梯度,basepm=permit/
basepermit;
90.#basetotal(总资源量):qospermit按basepermit转换后梯度,basetotal=qospermit/basepermit。
91.1.按需分配令牌数,即首先直接用basecs作为基本basepm,basepm较上一轮增加时加大增速,较上一轮减小时只下降1(1个basepermit);
92.2.各网关basepm总和需为basetotal,若basepm总和超过时则从最大值慢慢往下减,一直达到规定配额;若basepm总和不足时,则从最小值慢慢往上加,一直达到规定配额;
93.3.计算完成后检查所有网关的basepm,若还为0的则增加到1,防止该网关的io卡死;
94.4.根据basepm重新转换为permit。
95.本实施方式结合本地令牌桶、mq机制与hq机制共同实现了一套分布式qos解决方案。基于心跳机制维护的存活网关集合,并以此对外发布bq与hq的映射表的mq机制。把桶划分成bq来分组进行分布式qos计算,可极大减小网关间交互的消息量。hq按bq定时汇总收集其他网关上报的qos信息,然后重新分配配额给所有网关以达到统一qos的机制。能应对快速激增与平稳变化的配额重分配计算方法。
96.本实施方式的分布式qos实现方案能为全局对象存储提供快速、稳定、灵活的分布式qos服务。本地令牌桶机制提供高响应、低延迟qos服务,hq机制的消息交互解决了多网关统一qos的问题,加上心跳淘汰机制使系统在异常情况也能平稳运行。
97.图6是根据本发明实施例的一种对象存储分布式质量服务的装置的示意图,如图6所示,根据本发明实施例的另一方面,还提供了一种质量服务的数据处理装置,包括:划分模块62,分配模块64和确定模块66,下面对该装置进行详细说明。
98.划分模块62,用于将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,队列的数量不超过系统的网关的数量,资源分配服务对应至少一个对应网关;分配模块64,与上述划分模块62相连,用于将资源分配服务发送一个对应网关,对至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行队列中的多个桶的资源分配,其中,质量服务数据包括网关访问的桶,以及桶的访问资源参数;确定模块66,与上述分配模块64相连,用于控制网关分别获取多个资源分配服务中多个桶的资源分配,确定网关本地的令牌桶的令牌生成速率,其中,令牌生成速率用于确定网关访问令牌桶对应的桶的访问资源。
99.通过上述装置,采用划分模块62将系统中存储对象的多个桶,划分为多个队列,为每个队列设置一个资源分配服务,其中,队列的数量不超过系统的网关的数量,资源分配服务对应至少一个对应网关;分配模块64将资源分配服务发送一个对应网关,对至少一个对应网关的质量服务数据进行统计,并根据统计结果为至少一个对应网关进行队列中的多个桶的资源分配,其中,质量服务数据包括网关访问的桶,以及桶的访问资源参数;确定模块66控制网关分别获取多个资源分配服务中多个桶的资源分配,确定网关本地的令牌桶的令牌生成速率,其中,令牌生成速率用于确定网关访问令牌桶对应的桶的访问资源的方式,将多个桶分为多个队列分别配置资源分配服务,从对多个网关访问桶的资源进行分配,达到了对多个网关访问存储对象的桶的质量服务数据的管理的目的,从而实现了满足多网关的质量服务数据的管理要求的技术效果,进而解决了相关技术中的质量服务只能针对单网关
进行管理,无法对多网关进行管理,无法满足多网关质量服务要求的技术问题。
100.根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质包括存储的程序,其中,在程序运行时控制计算机存储介质所在设备执行上述中任意一项的对象存储分布式质量服务的方法。
101.根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述中任意一项的对象存储分布式质量服务的方法。
102.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
103.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
104.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
105.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
106.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
107.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
108.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1