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

对象存储的服务质量优化方法、装置、设备及存储介质与流程

2022-11-28 14:38:20 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤指一种对象存储的服务质量优化方法、装置、设备及存储介质。


背景技术:

2.对象存储是一种将数据作为对象进行管理的计算机数据存储体系结构,主要应用于云服务的图片、音视频等海量数据的存储。在为不同用户以对象存储结构提供云服务时,可能会出现大量请求并发访问造成资源耗尽服务崩溃,以及少量用户占用过多服务器带宽影响其他用户正常服务的情况。故需要对现有的对象存储服务进行进一步的改进以保障对绝大多数用户能够实现正常服务。


技术实现要素:

3.本发明实施例提供一种对象存储的服务质量优化方法、装置、设备及存储介质,用以优化对象存储服务对大多数用户的服务质量。
4.本发明实施例提供了一种对象存储的服务质量优化方法,包括:
5.通过管理单元向至少一个对象存储网关下发限流参数;
6.对任一对象存储网关,通过所述对象存储网关根据接收的限流参数确定令牌生成速度,并以所述令牌生成速度生成令牌并保存至所述对象存储网关的令牌桶中,在所述令牌桶的令牌存储容量占满之后丢弃新生成的令牌;
7.响应于任一限制账号对目标存储桶中的目标对象的操作请求,按照所述操作请求对应的各令牌桶的操作限流过程实现的节点顺序,依次执行如下步骤:
8.通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌;
9.若所述令牌桶中的令牌数量小于所述操作行为对应数量,则通过所述对象存储网关丢弃所述操作行为或等待预设时间后再次判断所述令牌桶中是否存在与所述操作行为对应数量的令牌;
10.若所述令牌桶中的令牌数量大于等于所述操作行为对应数量,则通过所述对象存储网关消耗所述令牌桶中所述操作行为对应数量的令牌,并执行一次所述操作行为。
11.可选地,所述限制账号包括第一类限制账号,所述第一类限制账号的操作请求的对应的各节点的令牌桶依次为用于对所述操作请求在账号限流层级限流的第一令牌桶、用于对所述操作请求在存储桶限流层级限流的第二令牌桶、用于对响应于所述操作请求进行的目标操作指令在账号限流层级限流的第三令牌桶、用于对所述目标操作指令在存储桶层级限流的第四令牌桶;
12.和/或,所述限制账号包括第二类限制账号,所述第二类限制账号的操作请求的对应的各节点的令牌桶依次为所述第二令牌桶、所述第四令牌桶;
13.所述第一令牌桶和所述第二令牌桶对应的操作行为为将所述操作请求传递至下
一个节点的令牌桶所在的对象存储网关,所述第三令牌桶对应的操作行为为将执行一次与所述操作请求对应的目标操作指令传递至下一个节点的令牌桶所在的对象存储网关,所述第四令牌桶对应的操作行为为令所述目标存储桶为执行一次与所述操作请求对应的目标操作指令。
14.可选地,所述第一令牌桶和/或所述第二令牌桶为多个令牌桶;
15.若当前节点对应第一令牌桶或者第二令牌桶,且当前节点对应的令牌桶为多个令牌桶,则通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌;若所述令牌桶中的令牌数量小于所述操作行为对应数量,则通过所述对象存储网关丢弃所述操作行为或等待预设时间后再次判断所述令牌桶中是否存在与所述操作行为对应数量的令牌;若所述令牌桶中的令牌数量大于等于所述操作行为对应数量,则通过所述对象存储网关消耗所述令牌桶中所述操作行为对应数量的令牌,并执行一次所述操作行为,具体包括:
16.通过当前节点对应的各令牌桶所在的对象存储网关分别判断对应的所述令牌桶中是否存在令牌;
17.若各所述令牌桶中均不存在令牌,则通过各所述令牌桶中任一令牌桶所在的对象存储网关丢弃所述操作行为;
18.若至少一个所述令牌桶中存在令牌,则通过任一存在令牌的令牌桶所在的对象存储网关消耗所述令牌桶中一个令牌,并执行一次所述操作行为。
19.可选地,以所述令牌生成速度生成令牌并保存至所述对象存储网关的令牌桶中之前,所述方法还包括:
20.根据接收的限流参数确定所述令牌桶的令牌存储容量。
21.可选地,若第一类限制账号的同一个所述操作请求在操作限流过程中既消耗了第一节点对应的令牌桶中与所述第一节点的操作行为对应数量的令牌,又消耗了第二节点对应的令牌桶中与所述第二节点的操作行为对应数量的令牌,则所述方法还包括:
22.消耗了第一节点对应的令牌桶中与所述第一节点的操作行为对应数量的令牌之后,所述第一节点对应的令牌桶所在的对象存储网关额外生成等量的令牌保存至所述第一节点对应的令牌桶中;
23.或者,消耗了第二节点对应的令牌桶中与所述第二节点的操作行为对应数量的令牌之后,所述第二节点对应的令牌桶所在的对象存储网关额外生成等量的令牌保存至所述第二节点对应的令牌桶中;
24.其中,所述第一节点对应的令牌桶为所述第一令牌桶,所述第二节点对应的令牌桶为所述第二令牌桶;或者,所述第一节点对应的令牌桶为所述第三令牌桶,所述第二节点对应的令牌桶为所述第四令牌桶。
25.可选地,通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌之前,所述方法还包括:
26.通过当前节点对应的令牌桶所在的对象存储网关根据接收的限流参数确定所述对象存储网关处于限流状态。
27.可选地,所述方法还包括:
28.对任一对象存储网关,通过心跳机制定时向所述管理单元上报所述对象存储网关
的运行状态;
29.通过所述管理单元根据各所述对象存储网关的运行状态确定至少一个对象存储网关的限流参数。
30.基于同一发明构思,本发明实施例还提供了一种对象存储的服务质量优化装置,包括:
31.限流配置模块,用于通过管理单元向至少一个对象存储网关下发限流参数;其中对任一所述限制账号,所述限制账号对应不同限流层级的多个对象存储网关;
32.限流处理模块,用于对任一对象存储网关,通过所述对象存储网关根据接收的限流参数确定令牌生成速度,并以所述令牌生成速度生成令牌并保存至所述对象存储网关的令牌桶中,在所述令牌桶的令牌存储容量占满之后丢弃新生成的令牌;响应于任一限制账号对目标存储桶中的目标对象的操作请求,按照所述操作请求对应的各令牌桶的操作限流过程实现的节点顺序,依次执行如下步骤:通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌;若所述令牌桶中的令牌数量小于所述操作行为对应数量,则通过所述对象存储网关丢弃所述操作行为或等待预设时间后再次判断所述令牌桶中是否存在与所述操作行为对应数量的令牌;若所述令牌桶中的令牌数量大于等于所述操作行为对应数量,则通过所述对象存储网关消耗所述令牌桶中所述操作行为对应数量的令牌,并执行一次所述操作行为。
33.基于同一发明构思,本发明实施例还提供了一种设备,包括:处理器和用于存储所述处理器可执行指令的存储器;
34.其中,所述处理器被配置为执行所述指令,以实现所述的对象存储的服务质量优化方法。
35.基于同一发明构思,本发明实施例还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被用于实现所述的对象存储的服务质量优化方法。
36.本发明有益效果如下:
37.本发明实施例提供的对象存储的服务质量优化方法、装置、设备及存储介质,通过对操作请求对应的操作限流过程设置多个不同的限流节点,从而能够根据对象存储系统中不同的资源负载能力在不同的节点上设置相应的令牌桶进行限流,从而在极少数据交互的条件下,提前下发至每个对象存储网关进行限速,在能够对多网关进行管理的基础下,避免了多网关之间的影响,能够保证对象存储系统的不同的资源均能够正常工作,避免因某种资源被大量占用而影响大部分用户账号的正常服务。
附图说明
38.图1为本发明实施例提供的对象存储的服务质量优化方法的流程图;
39.图2为本发明实施例提供的对象存储的服务质量优化方法的部分流程图;
40.图3为本发明实施例中基于zookeeper的管理单元的监控逻辑图;
41.图4为本发明实施例中限流参数在管理单元中的存储结构示意图;
42.图5为本发明实施例提供的对象存储的服务质量优化方法的控制流向图;
43.图6为本发明实施例提供的对象存储的服务质量优化装置的结构示意图;
44.图7为本发明实施例提供的设备的结构图。
具体实施方式
45.为使本发明的上述目的、特征和优点能够更为明显易懂,下面将结合附图和实施例对本发明做进一步说明。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明更全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。本发明中所描述的表达位置与方向的词,均是以附图为例进行的说明,但根据需要也可以做出改变,所做改变均包含在本发明保护范围内。本发明的附图仅用于示意相对位置关系不代表真实比例。
46.需要说明的是,在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。说明书后续描述为实施本技术的较佳实施方式,然所述描述乃以说明本技术的一般原则为目的,并非用以限定本技术的范围。本技术的保护范围当视所附权利要求所界定者为准。
47.下面结合附图,对本发明实施例提供的对象存储的服务质量优化方法、装置、设备及存储介质进行具体说明。
48.本发明实施例提供了一种对象存储的服务质量优化方法,如图1所示,包括:
49.s110、通过管理单元向至少一个对象存储网关下发限流参数。
50.在具体实施过程中,所述管理单元可以基于zookeeper、nacos等分布式应用程序协调服务软件进行设计,本发明实施例不做具体限定。下面将主要以基于zookeeper设计的管理单元为例进行说明,若采用zookeeper设计所述管理单元,那么可以缩短限流参数的配置响应周期。若所述管理单元基于zookeeper设计,那么限流参数可以通过zookeeper的监听watch机制同步至对象存储网关的缓存中。
51.s122、对任一对象存储网关,通过所述对象存储网关根据接收的限流参数确定令牌生成速度,并以所述令牌生成速度生成令牌并保存至所述对象存储网关的令牌桶中,在所述令牌桶的令牌存储容量占满之后丢弃新生成的令牌。
52.在具体实施过程中,所述对象存储网关可以通过维护一个单独的线程管理令牌服务,通过令牌服务控制令牌的生成与消费。
53.s130、响应于任一限制账号对目标存储桶中的目标对象的操作请求,按照所述操作请求对应的各令牌桶的操作限流过程实现的节点顺序执行相应步骤。
54.在具体实施过程中,存储桶的结构可以采用ceph分布式对象存储系统进行设置。
55.具体地,如图2所示,对操作请求对应的各令牌桶的操作限流过程实现的节点顺序上任一令牌桶所在的对象存储网关,依次执行如下步骤:
56.s131、通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌。
57.若所述令牌桶中的令牌数量小于所述操作行为对应数量,则执行步骤s132或s133;若所述令牌桶中的令牌数量大于等于所述操作行为对应数量,则执行步骤s134。
58.s132、通过所述对象存储网关丢弃所述操作行为。
59.s133、等待预设时间。返回所述步骤s131。
60.s134、通过所述对象存储网关消耗所述令牌桶中与所述操作行为对应数量的令
牌,并执行一次与所述操作请求在当前限流层级对应的操作行为指令。
61.在具体实施过程中,所述步骤s122和所述步骤s130可以合并为一个步骤实现。例如,对于任一令牌桶,可以在每次执行所述步骤s131时以确定的令牌生成速度生成一次令牌。那么每次以确定的令牌生成速度生成的令牌数量具体可以采用如下公式计算:
[0062][0063]
其中,s为本次需要生成的令牌数量,t1为上一次执行所述步骤s134的时刻,t2为本次执行所述步骤s131的时刻,c为令牌桶的容量,t为以确定的令牌生成速度生成c个令牌所需要的时间。上述公式通过向下取整,当s>c时,可以直接只生成c个令牌,视为将超出令牌桶的令牌存储容量的(s-c)个令牌进行了丢弃。
[0064]
本发明实施例通过对操作请求对应的操作限流过程设置多个不同的限流节点,从而能够根据对象存储系统中不同的资源负载能力在不同的节点上设置相应的令牌桶进行限流,从而在极少数据交互的条件下,提前下发至每个对象存储网关进行限速,在能够对多网关进行管理的基础下,避免了多网关之间的影响,能够保证对象存储系统的不同的资源均能够正常工作,避免因某种资源被大量占用而影响大部分用户账号的正常服务。
[0065]
相应地,可以根据实际的限流需要来设置多个不同的限流层级,并为每个限流层级设置相应的节点进行限流。例如,所述限制账号包括第一类限制账号,所述第一类限制账号的操作请求的对应的各节点的令牌桶依次为用于对操作请求在账号限流层级限流的第一令牌桶、用于对操作请求在存储桶限流层级限流的第二令牌桶、用于对响应于操作请求进行的目标操作指令在账号限流层级限流的第三令牌桶、用于对目标操作指令在存储桶层级限流的第四令牌桶。
[0066]
和/或,所述限制账号包括第二类限制账号,所述第二类限制账号的操作请求的对应的各节点的令牌桶依次为所述第二令牌桶、所述第四令牌桶。
[0067]
所述第一令牌桶和所述第二令牌桶对应的操作行为为将所述操作请求传递至下一个节点的令牌桶所在的对象存储网关,所述第三令牌桶对应的操作行为为将执行一次与所述操作请求对应的目标操作指令传递至下一个节点的令牌桶所在的对象存储网关,所述第四令牌桶对应的操作行为为令所述目标存储桶为执行一次与所述操作请求对应的目标操作指令。
[0068]
在具体实施过程中,若当前节点对应的令牌桶为所述第一令牌桶或者所述第二令牌桶,则根据所述步骤s131的判断结果确定令牌桶中的令牌数量小于所述操作行为对应数量时,执行所述步骤s132;若当前节点对应的令牌桶为所述第三令牌桶或所述第四令牌桶,则根据所述步骤s131的判断结果确定令牌桶中的令牌数量小于所述操作行为对应数量时,执行所述步骤s133。
[0069]
具体地,所述操作请求为对所述目标存储桶中目标对象的读取请求,所述目标操作指令为对所述目标存储桶中目标对象的读取操作指令。或者,所述操作请求为对所述目标存储桶中目标对象的写入请求,所述目标操作为对所述目标存储桶中目标对象的写入操作指令。
[0070]
相应地,第一令牌桶、第二令牌桶对应的节点的操作行为对应数量为1,第三令牌桶、第四令牌桶对应的节点的操作行为对应数量为所述目标对象的字节数。例如,对目标存
储桶中的文件大小为1gb的目标对象的读取请求而言,第一令牌桶、第二令牌桶中需要存在至少1个令牌才能将所述读取请求传递至下一个节点对应的令牌桶所在的对象存储网关,第三令牌桶中需要存在至少1g的令牌才能将写入操作指令传递给第四令牌桶所在的对象存储网关,第四令牌桶中需要存在至少1g的令牌才能控制所述目标存储桶读取所述目标对象。
[0071]
在具体实施过程中,不同的第一类限制账号可以对应不同的第一令牌桶、第三令牌桶,例如第一类限制账号甲对应的第一令牌桶与第一类限制账号乙的第一令牌桶为不同的令牌桶。不同的存储桶可以对应不同的第二令牌桶、第四令牌桶,例如存储桶a对应的第二令牌桶和存储桶b对应的第二令牌桶为不同的令牌桶。不同的操作行为可以对应不同的令牌桶,例如第一类限制账号甲发出的读取请求与写入请求分别对应不同的第一令牌桶。上述的四种令牌桶可以分别位于不同的对象存储网关;也可以至少部分令牌桶位于同一个对象存储网关,即本方案不对令牌桶与对象存储网关之间的对应关系做具体限制。例如对象存储网关x中同时包括与第一类限制账号甲对应的第一令牌桶、第三令牌桶和与存储桶a对应的第二令牌桶、第四令牌桶,那么对于由所述第一类限制账号甲发出的对存储桶a中的目标对象的读取请求时,前文所述的限流步骤实际上均是由所述对象存储网关x实现的;或者对象存储网关y包括与第一类限制账号乙对应的第一令牌桶,对象存储网关z包括与第一类限制账号乙对应的第三令牌桶,那么对于所述第一类限制账号乙发出的对存储桶a中的目标对象的读取请求时,前文所述的限流步骤依次由对象存储网关y、对象存储网关x、对象存储网关z、对象存储网关x实现。
[0072]
在具体实施过程中,可以根据实际需要将对象存储系统对应的用户账号设置为第一类限制账号或第二类限制账号。例如,对于重要业务对应的用户账号、高等级用户的用户账号等设置为所述第二类限制账号,将非重要业务对应的用户账号、普通等级用户的用户账号等设置为所述第一类限制账号,或者对于具有关联关系的多个账号而言,将主账号设置为所述第一类限制账号,将子账号设置为所述第二类限制账号,从而根据不同用户账号的需求来调配分布式对象存储系统的资源,在不同的层级上对用户账号的操作进行细粒度的限流,避免大量请求并发访问造成服务器崩溃。
[0073]
进一步地,考虑到对象存储系统可以采用分布式的硬件存储架构,那么为了分散各硬件上设置的对象存储网关的处理压力,加快整个限流过程的响应速度,对于某一个操作请求而言,可以将对该操作请求在账号限流层级限流的第一令牌桶的作用由多个令牌桶协同实现,和/或将对该操作请求在存储桶限流层级限流的第二令牌桶的作用由多个令牌桶协同实现。即,所述第一令牌桶和/或所述第二令牌桶为多个令牌桶。
[0074]
对应地,若当前节点对应第一令牌桶或者第二令牌桶,且当前节点对应的令牌桶为多个令牌桶,则图2示意的步骤具体为:
[0075]
通过当前节点对应的各令牌桶所在的对象存储网关分别判断对应的所述令牌桶中是否存在令牌;
[0076]
若各所述令牌桶中均不存在令牌,则通过各所述令牌桶中任一令牌桶所在的对象存储网关丢弃所述操作行为;
[0077]
若至少一个所述令牌桶中存在令牌,则通过任一存在令牌的令牌桶所在的对象存储网关消耗所述令牌桶中一个令牌,并执行一次所述操作行为。
[0078]
例如,管理单元确定需要对第一类限制账号甲的读取请求在账号限流层级限流的速度为最大3000次/秒,那么管理单元向3个令牌存储容量为1000的第一令牌桶所在的对象存储网关分别下发限流参数,设置每个第一令牌桶的令牌生成速度为1000个/秒。当第一类限制账号甲发出对目标存储桶中的目标对象的读取请求时,所述3个第一令牌桶所在的对象存储网关分别进行判断,只要其中任一个第一令牌桶中消耗了1个令牌,所述读取请求将传递至下一个节点的对象存储网关(即第二令牌桶所在的对象存储网关),然后进行后续的限流过程。
[0079]
可选地,如图1所示,以所述令牌生成速度生成令牌并保存至所述对象存储网关的令牌桶中之前,所述方法还包括:
[0080]
s121、对任一对象存储网关,通过所述对象存储网关根据接收的限流参数确定所述对象存储网关的令牌桶的令牌存储容量。
[0081]
这样,可以通过对令牌桶的令牌存储容量和令牌生成速度来协同控制用户账号对存储桶的操作的速度。
[0082]
进一步地,若第一类限制账号的同一个所述操作请求在操作限流过程中既消耗了第一节点对应的令牌桶中与所述第一节点的操作行为对应数量的令牌,又消耗了第二节点对应的令牌桶中与所述第二节点的操作行为对应数量的令牌,则所述方法还包括:
[0083]
消耗了第一节点对应的令牌桶中与所述第一节点的操作行为对应数量的令牌之后,所述第一节点对应的令牌桶所在的对象存储网关额外生成等量的令牌保存至所述第一节点对应的令牌桶中;
[0084]
或者,消耗了第二节点对应的令牌桶中与所述第二节点的操作行为对应数量的令牌之后,所述第二节点对应的令牌桶所在的对象存储网关额外生成等量的令牌保存至所述第二节点对应的令牌桶中;
[0085]
其中,所述第一节点对应的令牌桶为所述第一令牌桶,所述第二节点对应的令牌桶为所述第二令牌桶;或者,所述第一节点对应的令牌桶为所述第三令牌桶,所述第二节点对应的令牌桶为所述第四令牌桶。
[0086]
例如,第一类限制账号甲发出的对目标存储桶的目标对象的读取请求,在限流过程中既消耗了第一令牌桶的一个令牌又消耗了第二令牌桶的一个令牌,那么可以额外对第一令牌桶或第二令牌桶补偿一个令牌。以及,响应于所述读取请求进行的读取操作指令在限流过程中既消耗了第三令牌桶的与目标对象字节数等量的令牌又消耗了第四令牌桶的与目标对象字节数等量的令牌,那么可以额外对第三令牌桶或第四令牌桶补偿与目标对象字节数等量的令牌。这样,通过上述额外补偿令牌的机制来平衡从账号限流层级与存储桶限流层级消耗令牌的速度。
[0087]
在实施过程中,可以通过限流参数设置各对象存储网关中令牌的生产与消费之外,还可以用一个限流参数来控制该对象存储网关的限流功能是否开启。即,通过在当前限流层级对应的对象存储网关判断所述限制账号在所述对象存储网关中的令牌桶中是否存在令牌之前,所述方法还包括:
[0088]
通过在当前限流层级对应的对象存储网关根据接收的限流参数确定所述对象存储网关处于限流状态。
[0089]
如果根据限流参数确定对象存储网关的限流功能关闭,那么所述对象存储网关将
无条件允许执行所述操作请求在当前节点对应的操作行为指令。
[0090]
可选地,如图1所示,所述方法还包括:
[0091]
s140、对任一对象存储网关,通过心跳机制定时向所述管理单元上报所述对象存储网关的运行状态。
[0092]
s100、通过所述管理单元根据各所述对象存储网关的运行状态确定至少一个对象存储网关的限流参数。
[0093]
在具体实施过程中,若所述管理单元是基于zookeeper设计的,那么所述管理单元在运行过程中,如图3所示,开启zkserver分别监听各对象存储网关,根据所述心跳机制确定某一对象存储网关进程挂掉以后需要重新拉起,如果拉不起来则管理单元根据当前运行的对象存储网关的状态更新对至少一个对象存储网关的限流参数。此外,当任一对象存储网关在对存储系统中的存储桶的操作请求进行处理的过程中执行了所述步骤s132或s133,即对操作请求进行了实质性的限速,那么将通过所述心跳机制向所述管理单元上报被限速的情况,管理单元根据当前运行的对象存储网关的状态更新对至少一个对象存储网关的限流参数。所述限流参数可以通过如图4所示的树形结构保存在ratelimit目录下。如图4所示,该树形结构依次包括对象存储网关的序列号rgw-id(如图4中示意rgw1、rgw2、rgw3);对象存储网关中令牌桶的类型(如图4中示意的user和bucket);对于账号限流层面的令牌桶而言对应的限制账号user-id(如图4中示意的usera、userb、userc),对于存储桶限流层面的令牌桶而言对应的存储桶序号bucket-id(如图4中示意的bucketa、bucketb、bucketc);用于控制对象存储网关是否处于限流状态的开关限流参数switch,每分钟读取请求限流参数read-ops,每分钟写入请求限制参数write-ops,每分钟读取字节限流参数read-byte,每分钟写入字节限制参数write-byte。
[0094]
这样,通过管理单元根据各对象存储网关的运行状态不断调整各对象存储网关的限流参数,能够避免部分对象存储网关在运行状态异常时对系统的冲击。
[0095]
下面结合图5给出上述方案中部分步骤的示例。例如,对于某个所述第一类限制账号甲,当所述第一类限制账号甲通过业务向对象存储系统请求读取某一个目标存储桶b中的某一个目标对象时,所述第一类限制账号甲发出的对所述目标对象的读取请求将先经过第一令牌桶所在的对操作请求在账号限流层级限流的对象存储网关(下文将简称为第一对象存储网关)的处理。所述第一对象存储网关接收所述读取请求后,判断所述第一令牌桶中是否存在令牌,如果存在则消耗一个令牌,之后将所述读取请求传递给第二令牌桶所在的对操作请求在存储桶限流层级限流的对象存储网关(下文将简称为第二对象存储网关);如果不存在则丢弃所述读取请求。所述第二对象存储网关接收所述读取请求后,判断所述第二令牌桶中是否存在令牌,如果存在则消耗一个令牌,之后将所述读取请求传递给第三令牌桶所在的对读取操作指令在账号限流层限流级的对象存储网关(下文将简称为第三对象存储网关);如果不存在则丢弃所述读取请求。所述第三对象存储网关接收所述读取请求后,判断所述第三令牌桶中是否存在与目标对象字节数等量的令牌,如果存在则消耗与目标对象字节数等量的令牌,之后将与所述读取请求对应的读取操作指令传递给第四令牌桶所在的对读取操作指令在存储桶限流层级限流的对象存储网关(下文将简称为第四对象存储网关);如果第三令牌桶中的令牌数不足,则等待预设时间后再次判断所述第三令牌桶中的令牌的数量是否与目标对象的字节数等量。所述第四对象存储网关接收读取操作指令
后,判断所述第四令牌桶中是否存在与目标对象字节数等量的令牌,如果存在则消耗与目标对象字节数等量的令牌,之后令所述目标存储桶读取所述目标对象;如果第四令牌桶中的令牌数不足,则等待预设时间后再次判断所述第三令牌桶中的令牌的数量是否与目标对象的字节数等量。其中,各对象存储网关分别根据管理单元下发的限流参数确定对象存储网关中的令牌桶的令牌存储容量和对应的令牌生成速度,并以此生成令牌保存至令牌桶,在令牌桶的令牌存储容量占满之后丢弃新生成的令牌。
[0096]
而对于所述第二类限制账号对应的向对象存储系统请求读取某一个存储桶中的某一个目标对象的过程中,将在确定发出读取请求的限制账号为第二类限制账号之后,跳过所述第一对象存储网关、所述第三对象存储网关的限流过程,直接进入上文所述的第二对象存储网关、第四对象存储网关的步骤,不需进行账号层级的限流过程。图中已经示意了相关的指令流向,且与第一类限制账号相比仍需进行的过程类似,故可以参见上文相应内容,此处不再赘述。所述的两种限制账号进行写入操作的过程与所述的第一类限制账号、所述第二类限制账号进行读取操作的过程类似,可以根据上文所述的内容类推,故不再赘述。
[0097]
基于同一发明构思,本发明实施例还提供了一种对象存储的服务质量优化装置,如图6所示,包括:
[0098]
限流配置模块m1,用于通过管理单元向至少一个对象存储网关下发限流参数;其中对任一所述限制账号,所述限制账号对应不同限流层级的多个对象存储网关;
[0099]
限流处理模块m2,用于对任一对象存储网关,通过所述对象存储网关根据接收的限流参数确定令牌生成速度,并以所述令牌生成速度生成令牌并保存至所述对象存储网关的令牌桶中,在所述令牌桶的令牌存储容量占满之后丢弃新生成的令牌;响应于任一限制账号对目标存储桶中的目标对象的操作请求,按照所述操作请求对应的各令牌桶的操作限流过程实现的节点顺序,依次执行如下步骤:通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌;若所述令牌桶中的令牌数量小于所述操作行为对应数量,则通过所述对象存储网关丢弃所述操作行为或等待预设时间后再次判断所述令牌桶中是否存在与所述操作行为对应数量的令牌;若所述令牌桶中的令牌数量大于等于所述操作行为对应数量,则通过所述对象存储网关消耗所述令牌桶中与所述操作行为对应数量的令牌,并执行一次所述操作行为。
[0100]
可选地,所述限制账号包括第一类限制账号,所述第一类限制账号的操作请求的对应的各节点的令牌桶依次为用于对所述操作请求在账号限流层级限流的第一令牌桶、用于对所述操作请求在存储桶限流层级限流的第二令牌桶、用于对响应于所述操作请求进行的目标操作指令在账号限流层级限流的第三令牌桶、用于对所述目标操作指令在存储桶层级限流的第四令牌桶;
[0101]
和/或,所述限制账号包括第二类限制账号,所述第二类限制账号的操作请求的对应的各节点的令牌桶依次为所述第二令牌桶、所述第四令牌桶;
[0102]
所述第一令牌桶和所述第二令牌桶对应的操作行为为将所述操作请求传递至下一个节点的令牌桶所在的对象存储网关,所述第三令牌桶对应的操作行为为将执行一次与所述操作请求对应的目标操作指令传递至下一个节点的令牌桶所在的对象存储网关,所述第四令牌桶对应的操作行为为令所述目标存储桶为执行一次与所述操作请求对应的目标操作指令。
[0103]
可选地,所述第一令牌桶和/或所述第二令牌桶为多个令牌桶;
[0104]
若当前节点对应第一令牌桶或者第二令牌桶,且当前节点对应的令牌桶为多个令牌桶,则通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌;若所述令牌桶中的令牌数量小于所述操作行为对应数量,则通过所述对象存储网关丢弃所述操作行为或等待预设时间后再次判断所述令牌桶中是否存在与所述操作行为对应数量的令牌;若所述令牌桶中的令牌数量大于等于所述操作行为对应数量,则通过所述对象存储网关消耗所述令牌桶中所述操作行为对应数量的令牌,并执行一次所述操作行为,具体包括:
[0105]
通过当前节点对应的各令牌桶所在的对象存储网关分别判断对应的所述令牌桶中是否存在令牌;
[0106]
若各所述令牌桶中均不存在令牌,则通过各所述令牌桶中任一令牌桶所在的对象存储网关丢弃所述操作行为;
[0107]
若至少一个所述令牌桶中存在令牌,则通过任一存在令牌的令牌桶所在的对象存储网关消耗所述令牌桶中一个令牌,并执行一次所述操作行为。
[0108]
可选地,所述限流处理模块m2还用于:
[0109]
对任一对象存储网关,根据接收的限流参数确定所述令牌桶的令牌存储容量。
[0110]
可选地,若第一类限制账号的同一个所述操作请求在操作限流过程中既消耗了第一节点对应的令牌桶中与所述第一节点的操作行为对应数量的令牌,又消耗了第二节点对应的令牌桶中与所述第二节点的操作行为对应数量的令牌,则所述限流处理模块m2还用于:
[0111]
消耗了第一节点对应的令牌桶中与所述第一节点的操作行为对应数量的令牌之后,所述第一节点对应的令牌桶所在的对象存储网关额外生成等量的令牌保存至所述第一节点对应的令牌桶中;
[0112]
或者,消耗了第二节点对应的令牌桶中与所述第二节点的操作行为对应数量的令牌之后,所述第二节点对应的令牌桶所在的对象存储网关额外生成等量的令牌保存至所述第二节点对应的令牌桶中;
[0113]
其中,所述第一节点对应的令牌桶为所述第一令牌桶,所述第二节点对应的令牌桶为所述第二令牌桶;或者,所述第一节点对应的令牌桶为所述第三令牌桶,所述第二节点对应的令牌桶为所述第四令牌桶。
[0114]
可选地,所述限流处理模块m2还用于通过当前节点对应的令牌桶所在的对象存储网关判断所述令牌桶中是否存在与所述当前节点的操作行为对应数量的令牌之前,通过当前节点对应的令牌桶所在的对象存储网关根据接收的限流参数确定所述对象存储网关处于限流状态。
[0115]
可选地,所述限流处理模块m2还用于:
[0116]
对任一对象存储网关,通过心跳机制定时向所述管理单元上报所述对象存储网关的运行状态;
[0117]
所述限流配置模块m1还用于:
[0118]
通过所述管理单元根据各所述对象存储网关的运行状态确定至少一个对象存储网关的限流参数。
[0119]
需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0120]
由于所述对象存储的服务质量优化装置的各个模块执行操作的具体方式已经在有关对象存储的服务质量优化方法的实施例中进行了详细描述,故此处不再赘述。
[0121]
基于同一发明构思,本发明实施例还提供了一种设备,如图7所示,包括:主处理器110和用于存储所述主处理器110可执行指令的存储器120;其中,所述主处理器110被配置为执行所述指令,以实现所述对象存储的服务质量优化方法。
[0122]
在具体实施过程中,所述设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器110、存储器120、存储介质130,所述存储器120和/或存储介质130中包括一个或一个以上应用程序131或数据132。所述存储器120和/或存储介质130中还可以包括一个或一个以上操作系统133,例如windows、mac os、linux、ios、android、unix、freebsd等。其中,存储器120和存储介质130可以是短暂存储或持久存储。所述应用程序131可以包括一个或一个以上所述模块(图7中未示出),每个模块可以包括一系列指令操作。更进一步地,处理器110可以设置为与存储介质130通信,在所述设备上执行可读存储介质130中的一系列指令操作。所述设备还可以包括一个或一个以上电源(图7中未示出);一个或一个以上网络接口140,所述网络接口140包括有线网络接口141和/或无线网络接口142;一个或一个以上输入/输出接口143。
[0123]
基于同一发明构思,本发明实施例还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被用于实现所述的对象存储的服务质量优化方法。
[0124]
本发明实施例提供的对象存储的服务质量优化方法、装置、设备及存储介质,通过对操作请求对应的操作限流过程设置多个不同的限流节点,从而能够根据对象存储系统中不同的资源负载能力在不同的节点上设置相应的令牌桶进行限流,从而在极少数据交互的条件下,提前下发至每个对象存储网关进行限速,在能够对多网关进行管理的基础下,避免了多网关之间的影响,能够保证对象存储系统的不同的资源均能够正常工作,避免因某种资源被大量占用而影响大部分用户账号的正常服务。
[0125]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0126]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0127]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0128]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0129]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献