存储系统中令牌的分配方法和装置与流程

文档序号:18641877发布日期:2019-09-11 23:30阅读:187来源:国知局
存储系统中令牌的分配方法和装置与流程

本申请涉及信息技术领域,尤其更具体地,涉及一种存储系统中令牌的分配方法和装置。



背景技术:

服务质量(qualityofservice,qos)有时也称服务等级(servicelevelagreement,sla),用于保障存储对象的存储性能(例如,每秒进行读写操作的次数(input/outputoperationspersecond,iops),将存储系统有限的处理能力进行合理的分配,它用于调整存储系统中存储对象对资源的争抢,做到资源隔离的同时提升特定存储对象的存储性能。

业界通常基于令牌的机制,控制单位时间内存储系统的存储节点为存储对象处理io请求的数量。即,当存储节点存储有该存储对象的令牌时,可以为该存储对象处理io请求,其中存储节点存储的令牌的数量通常等于该存储节点可以处理的io请求的数量。

目前,存储系统中每个存储对象的令牌的分配,通常由控制器集中分配。即,由控制器基于每个存储对象的qos参数,在存储系统中的存储节点上分配令牌。这种有控制器集中分配令牌的数量的方式,使得控制器的计算量非常大,计算占用的时间也较长,尤其是在存储系统中存储节点较多和存储对象数量较大时。例如,存储系统包括64个存储节点、且需要为10000个存储对象提供服务,则控制器为10000个存储对象分配令牌数量所需的计算时间将达到30秒。



技术实现要素:

本申请提供一种存储系统中令牌的分配方法和装置,有利于减少存储系统中为存储对象分配令牌数量所需的计算时间。

第一方面,提供了一种存储系统中令牌的分配方法,所述存储系统中包含控制器和多个组内控制器;所述控制器为所述多个组内控制器中每一个组内控制器分配令牌数,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,所述方法包括:所述多个组内控制器中的第一组内控制器确定在单位时间内,所述第一组内控制器管理的第一存储对象组内的第一存储对象在所述第一存储节点集合中至少一个存储节点上的令牌数量;所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量。

在本申请实施例中,通过第一组内控制器确定第一存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。避免了现有技术中存储系统中的全部存储对象的令牌都由控制器集中分配,导致控制器确定令牌分配过程中的计算量较大,增加了令牌分配占用的时间。

可选地,上述第一存储对象组属于多个存储对象组中的一个,所述多个存储对象组中每个存储对象组内存储对象的令牌分配由多个组内控制器中的一个组内控制器管理。

在本申请实施例中,将存储系统中的存储对象分为多个存储对象组,存储对象组中存储对象的令牌分配由组内控制器管理,将存储对象的令牌分配所需的计算量分配到多个组内控制器中,有利于减少组内控制器进行令牌分配的计算量,缩短令牌分配所需的时间。

在一种可能的实现方式中,所述第一存储对象组包括第二存储对象,所述方法还包括:所述第一组内控制器向所述控制器发送令牌迁移请求,所述令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。

在本申请实施例中,第一组内控制器可以通过向控制器发送令牌迁移请求,请求将待迁移的令牌迁移至第一存储节点集合之外的存储节点,有利于提高令牌分配的合理性。

可选地,所述其他存储节点属于所述多个组内控制器中的第二组内控制器管理的第二存储对象集合的存储节点集合。

在一种可能的实现方式中,所述组内控制器向控制器发送令牌迁移请求,包括:若所述存储节点集合中的存储节点无法接收所述待迁移的令牌,所述第一组内控制器向所述控制器发送所述令牌迁移请求。

在本申请实施例中,当存储节点集合中的存储节点无法接收待迁移的令牌时,第一组内控制器可以通过向控制器发送令牌迁移请求,请求将待迁移的令牌迁移至第一存储节点集合之外的存储节点,有利于提高令牌分配的合理性,缓解第一存储节点集合中存储节点的压力。

在一种可能的实现方式中,所述方法还包括:所述第一组内控制器从所述存储节点集合中选择第一存储节点;所述第一组内控制器从所述存储节点集合中选择第二存储节点;所述第一组内控制器将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述第一存储对象组。

在本申请实施例中,第一组内控制器可以在存储节点集合中选择需要迁移令牌的第一存储节点,以及可以接收迁移的令牌的第二存储节点。避免了现有技术中,一旦需要进行令牌迁移时,控制器需要在存储系统中的全部存储节点的范围内确定能够接受令牌的节点,本申请实施例的方案将第二存储节点的选择范围从整个存储系统缩小到存储节点结合,有利于减少确定第二存储节点的计算量。

在一种可能的实现方式中,所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量,包括:所述组内控制器向所述至少一个存储节点指示所述单位时间,以及在所述单位时间内所述第一存储对象的令牌数量。

在本申请实施例中,通过向至少一个存储节点指示单位时间长度,以及在所述单位时间内所述第一存储对象的令牌数量,以便于至少一个存储节点在单位时间为第一存储对象生成令牌数量的令牌。

在一种可能的实现方式中,所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量,包括:所述组内控制器向所述至少一个存储节点指示所述第一存储对象对应的令牌生成速度,所述令牌生成速度为所述单位时间内生成所述第一存储对象的令牌数量。

在本申请实施例中,通过向至少一个存储节点指示令牌生成速度,以便于至少一个存储节点在单位时间为第一存储对象生成令牌数量的令牌。

第二方面,提供了一种存储系统中令牌的分配方法,其特征在于,所述存储系统包括多个组内控制器以及控制器;其中,所述多个组内控制器中不同的组内控制器用于管理不同的存储对象组,所述多个组内控制器为管理的存储对象组在至少一个存储节点上分配令牌,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,所述方法包括:所述控制器接收所述多个组内控制器中的第一组内控制器发送的令牌迁移请求,所述令牌迁移请求用于请求将所述第一组内控制器管理的第一存储对象组的待迁移的令牌从所述第一存储节点集合中迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合;所述控制器将所述待迁移的令牌迁移至所述其他存储节点。

在本申请实施例中,通过组内控制器确定存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。避免了现有技术中存储系统中的全部存储对象的令牌都由控制器集中分配,导致确定令牌分配过程中的计算量较大,增加了令牌分配占用的时间。

另一方面,组内控制器可以通过向控制器发送令牌迁移请求,请求将待迁移的令牌迁移存储节点集合之外的存储节点,有利于提高令牌分配的合理性。

第三方面,提供一种存储系统中令牌分配的装置,所述装置可以是组内控制器,也可以是组内控制器内的芯片。所述装置可以包括处理模块和发送模块。当所述装置是组内控制器时,所述处理模块可以是处理器,所述发送模块可以是输入输出接口;所述组内控制器还可以包括存储单元,所述存储单元可以是存储器;所述存储单元用于存储指令,所述处理单元执行所述存储单元所存储的指令,以使所述组内控制器执行上述各方面中的方法。当所述装置是组内控制器内的芯片时,所述处理单元可以是处理器,所述发送模块可以是输入/输出接口、管脚或电路等;所述处理单元执行存储单元所存储的指令,以使所述组内控制器执行上述各方面中的方法,所述存储单元可以是所述芯片内的存储单元(例如,寄存器、缓存等),也可以是所述组内控制器内的位于所述芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。

第四方面,提供一种存储系统中令牌分配的装置,所述装置可以是控制器,也可以是控制器内的芯片。所述装置可以包括处理模块和发送模块。当所述装置是组内控制器时,所述处理模块可以是处理器,所述发送模块可以是输入输出接口;所述控制器还可以包括存储单元,所述存储单元可以是存储器;所述存储单元用于存储指令,所述处理单元执行所述存储单元所存储的指令,以使所述控制器执行上述各方面中的方法。当所述装置是控制器内的芯片时,所述处理单元可以是处理器,所述发送模块可以是输入/输出接口、管脚或电路等;所述处理单元执行存储单元所存储的指令,以使所述组内控制器执行上述各方面中的方法,所述存储单元可以是所述芯片内的存储单元(例如,寄存器、缓存等),也可以是所述组内控制器内的位于所述芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。

第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。

需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请实施例对此不作具体限定。

第六方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。

附图说明

图1是传统的令牌分配方式适用的存储系统的示意图。

图2是本申请实施例适用的存储系统的示意图。

图3是本申请实施例的令牌的分配方法的流程图。

图4是本申请实施例的组内控制器分配令牌的方法的流程图。

图5是本申请实施例的令牌的分配装置的示意图。

图6是本申请实施例的控制器的示意图。

图7是本申请另一实施例的组内控制器的示意性框图。

图8是本申请另一实施例的控制器的示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

为了便于理解,先介绍本申请涉及的术语。

一、存储对象,可以理解为存储系统中操作的对象。例如,可以是对象存储中的对象(object),或者是块存储中的逻辑盘,又或者是文件存储中的文件。

二、qos参数,用于描述存储对象的服务质量的参数。目前主流的qos参数包括上限流控(limit)以及下限保障(reservation)等。其中,上限流控用于指示在单位时间内存储节点需要处理的存储对象的io请求的数量的最大值。下限保障用于指示在单位时间内存储节点需要处理的存储对象的io请求的数量的最小值。

三、令牌,用于指示存储对象处理io请求的数量。其中,每一块令牌对应存储对象的一个io请求,当存储节点中没有存储对象的令牌后,存储节点不再处理存储对象对应的io请求。

若存储对象的qos参数包括上限流控以及下限保障,则可以为每个存储对象设置两类令牌,即上限令牌以及下限令牌。其中,上限令牌用于指示存储对象的上限流控,即在单位时间内生成的上限令牌的数量等于上述最大值,以限制单位时间内存储节点处理的存储对象的io请求的数量。下限令牌用于指示存储对象的下限保障,即在单位时间内生成的下限令牌的数量等于上述最小值,以保障单位时间内存储节点处理的存储对象的io请求的数量。

通常上限令牌和下限令牌分别存储在上限令牌桶中和下限令牌桶中,当存储节点处理了存储对象的一个io请求时,分别从存储对象对应的上限令牌桶中取出一个上限令牌,从下限令牌桶中取出一个下限令牌,即减少相应的令牌桶中令牌的数量。

基于上文介绍的术语,结合图1介绍传统的令牌分配方案。图1是传统的令牌分配方式适用的存储系统的示意图。图1所示的存储系统包括控制器110,客户端120以及多个存储节点130。

存储节点130,用于为存储系统中的数据提供存储空间。每个存储节点可以为多个存储对象提供存储服务,或者说,每个存储节点可以处理多个存储对象对应的io请求。

上述存储节点130可以是服务器,或者其他具有存储功能的设备。

客户端120,用于接收用户发送的io请求,并将io请求转发至可以相应地存储节点。

控制器110,用于在多个存储节点上为存储系统提供服务的存储对象分配令牌,或者调整存储对象在存储节点上的令牌数量,例如,将某一存储对象的令牌从源存储节点迁移至目标存储节点等。

从图1所示的存储系统来看,存储系统中全部的存储对象的令牌分配,以及后续存储对象的令牌的调整方式都是由控制器计算的,这种由控制器集中计算的方式,极大的增加了控制器的计算量,尤其在存储系统中存储节点的数量,以及存储对象的数量较多的情况下,不仅极大的增加了控制器的计算量,同时也增加了控制器进行令牌分配的时间,降低了整个存储系统的处理速度。

为了避免上述问题,本申请提供了一种令牌的分配方式,将存储系统的中的存储对象进行分组,形成存储对象组,并由组内控制器计算存储对象组中存储对象的令牌分布,有利于减少计算令牌分配所占用的时间,提高存储系统的处理速度。下文结合图2以及图3介绍本申请实施例适用的存储系统,以及本申请实施例的令牌的分配方案。

图2是本申请实施例适用的存储系统的示意图。图2所示的存储系统包括控制器210,客户端120、多个存储节点130以及组内控制器220。需要说明的是,图2的客户端120以及多个存储节点130与图1中介绍的客户端和存储节点的功能相同,为了简洁,在此不再赘述。下文重点介绍组内控制器220以及控制器210的功能。

组内控制器220,用于管理存储对象组内存储对象的令牌的分配或者迁移。

上述组内控制器的数量可以为多个,本申请实施例对此不作具体限定。

每个组内控制器用于管理一个或多个存储对象组中存储对象的令牌的分配。若组内控制器的数量为多个时,不同的组内控制器管理的存储对象组不同。

通常,存储对象组内的存储对象的令牌仅分布在存储系统中的部分存储节点上,其中,部分存储节点可以作为一个存储节点集合。组内控制器通常可以在存储节点集合中分配或迁移存储对象组内存储对象的令牌。

可选地,上述组内控制器可以设置在存储系统中的全部或部分存储节点上,本申请实施例对此不作限定。

控制器210,用于为多个组内控制器中每一个组内控制器分配令牌数,还可以用于管理存储节点集合间的存储对象的令牌的迁移。

可选地,上述控制器可以单独设置,还可以设置在存储系统中的某一存储节点上(例如,主存储节点)。

若控制器设置在某一存储节点上,通常与组内控制器设置在不同的存储节点上,以避免组内控制器与控制器设置在同一存储节点上,导致该存储节点的计算量增大。当然,如果存储节点的处理性能较好,或者不考虑上述计算量的影响,也可以将组内控制器与控制器设置在相同的存储节点上。

下文基于图2所示的存储系统的架构,结合图3介绍本申请实施例的方法。图3是本申请实施例的令牌的分配方法的流程图。图3所示的方法包括步骤310至步骤330。需要说明的是,图3所示的方法可以由图2所示的多个组内控制器中的任意一个组内控制器执行,例如第一组内控制器。

310,第一组内控制器确定在单位时间内,第一组内控制器管理的第一存储对象组内的第一存储对象在第一存储节点集合中至少一个存储节点上的令牌数量。

上述第一存储对象组可以包括一个或多个存储对象,上述存储对象组包括多个存储对象时,上述第一存储对象可以是多个存储对象中的任意一个。

上述至少一个存储节点可以包括一个或多个存储节点。

上述第一存储节点集合可以是存储系统的中的多个存储节点集合中的一个存储节点集合。

上述令牌可以指上文中的上限令牌或者下限令牌,还可以指其他表示存储对象的qos参数的令牌,本申请实施例对此不做限定。

需要说明的是,上述第一组内控制器确定存储对象的令牌的数量的方式有很多种,例如第一组内控制器可以基于存储对象的qos参数确定存储对象分配令牌的数量,或者第一组内控制器还可以在至少一个存储节点上平均分配存储对象的令牌的数量。本申请实施例对此不做限定。

320,第一组内控制器向至少一个存储节点指示单位时间内第一存储对象的令牌数量。

可选地,第一组内控制器通过向至少一个存储节点指示第一存储对象的令牌的生成速度,以指示单位时间内至少一个存储节点需要生成的第一存储对象的令牌的数量。或者,至少一个存储节点预存上述单位时间长度,则第一组内控制器可以直接向至少一个存储节点指示第一存储对象的令牌数量,至少一个存储节点在预存的单位时间长度内生成第一存储对象的令牌数量的令牌。

需要说明的是,上述存储节点为第一存储节点生成的令牌可以存放在令牌桶中。

在本申请实施例中,通过第一组内控制器确定存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。避免了现有技术中存储系统中的全部存储对象的令牌都由控制器集中分配,导致确定令牌分配过程中的计算量较大,增加了令牌分配占用的时间。

图3所示的方法可以应用于图2所示的存储系统的架构,即基于组内控制器以及控制器的两级令牌分配,由组内控制器帮助控制器分担一部分的令牌分配所需的计算量,以减少控制器分配令牌时的计算量。当然,图3所示的方法还可以应用于仅包含多个组内控制器存在的存储系统,即将存储系统中的存储对象分为多个存储对象组,不同的组内控制器分别管理相应的存储对象组内存储对象的令牌的分配,将传统的令牌分配方案中控制器集中分配令牌时的计算量分配到多个组内控制器,以减少控制器分配令牌时的计算量。

下文重点介绍基于组内控制器以及控制器的两级令牌分配的方法。组内控制器通常仅管理对应的存储对象组内存储对象的令牌分配,而不关心存储系统中其他组内控制器管理的存储对象组内存储对象的令牌分配,以及其他存储对象组对应的存储节点的性能。也就是说,组内控制器管理的存储节点,维护的存储节点的性能,以及存储对象的需求通常都是对应的存储对象组内的。例如,组内控制器管理存储对象组内存储对象在存储节点上的需求(处理io请求的数量),组内控制器管理存储对象组内存储对象在各个存储节点上的令牌分配数量,组内控制器管理存储对象组的令牌所在的存储节点的性能等。

如此,组内控制器获知的存储节点的性能、存储对象在存储节点中的令牌分布通常比较局限,如果组内控制器管理的存储对象的令牌需要迁移到存储系统中的其他存储节点时,组内控制器可能没有维护其他存储节点的性能,即其他存储节点为组内控制器管理之外的存储节点,导致无法合理地确定其他存储节点能够接受的令牌数量。

基于此,本申请实施例提供了上述“两级”令牌分配方式,由控制器维护存储系统的中各个存储节点,各个存储对象的信息,作为存储系统的“全局信息”,例如存储系统中各个存储节点的性能,以及存储系统各个存储对象在各个存储节点的令牌分配等,并由控制器基于上述“全局信息”将待迁移的令牌从组内控制器管理的存储节点中迁移至组内控制器管理之外的存储节点。

即,上述存储对象组包括第二存储对象,所述第一组内控制器管理的存储对象组的令牌分布在存储节点集合中的存储节点上,图3所示的方法包括:330,第一组内控制器向控制器发送令牌迁移请求,令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。

上述第二存储对象可以指存储对象组中需要进行令牌迁移的一个或多个存储对象。

上述其他存储节点可以指不属于上述第一组内控制器管理的存储节点,或者说,上述其他存储节点是属于其他第一组内控制器管理的存储节点。例如,其他存储节点为多个组内控制器中的第二组内控制器管理的第二存储对象组的存储节点。上述其他存储节点可以指不属于第一存储节点集合的一个或多个存储节点。

相应地,由控制器在接收到令牌迁移请求后,可以基于传统的令牌迁移流程迁移上述待迁移的令牌。例如,可以构建令牌迁移有向图,并根据待迁移的令牌的数量以及令牌迁移有向图,计算令牌迁移路径,再按照令牌迁移路径迁移上述待迁移的令牌。

可选地,触发发送令牌迁移请求的触发条件可以包括存储节点集合中的存储节点无法接收待迁移的令牌,例如,存储节点集合中的存储节点都处于过载状态,或者存储节点集合中的存储节点可以处理的io请求的数量都接近存储节点最多可以处理的io请求的数量等。

需要说明的是,上述控制器维护的各个存储节点的性能,各个存储对象的令牌在存储节点上的分布,各个存储对象需要由存储节点处理的io请求的数量等参数,可以由组内控制器发送给控制器,即采用“自下而上”的方式,在控制器处进行统计汇总。

下文介绍本申请实施例的在“存储节点集合”中进行令牌迁移的方案。第一组内控制器从所述存储节点集合中选择第一存储节点;所述第一组内控制器从存储节点集合中选择第二存储节点;所述第一组内控制器将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述第一存储对象组。

上述第一存储节点可以是第一存储节点集合中有迁移令牌的需求的节点,例如,可以是处于过载状态的存储节点,或者还可以是第三存储对象的令牌有剩余的存储节点,本申请实施例对此不做限定。

上述第二存储节点可以理解为令牌迁移的目标存储节点,可以为一个存储节点也可以为多个存储节点。

可选地,上述需要从第一存储节点迁移至第二存储节点的令牌的数量有多种确定方式。例如,可以基于公式ni=min(rp,eq)确定需要从第一存储节点迁移至第二存储节点的令牌数。其中,ni表示需要迁移的存储对象i的令牌数量,rp表示超出第一存储节点p能够处理能力的令牌数量,eq表示第二存储节点q可以接受的令牌的数量。

又例如,可以基于公式nj,k=min(ai,j,di,k-ai,k)确定需要从第一存储节点j迁移至第二存储节点k的令牌数nj,k。其中,ai,j表示存储对象i在第一存储节点j上分配的令牌数量;di,k表示存储对象i在第二存储节点k上的需求,即第二存储节点k需要处理的存储对象i的io请求的数量;ai,k表示存储对象i在第二存储节点k上分配的令牌数量。

可选地,上述组内控制确定第二存储节点的方式也有很多种,例如,第一组内控制器可以按照存储节点的负载情况从存储节点集合中随机确定第二存储节点。又例如,第一组内控制器可以基于宽度优先搜索算法(breadthfirstsearch,bfs),在存储节点集合中以第一存储节点为起点,确定长度为l的令牌迁移路径,此时,第二存储节点为位于令牌迁移路径上的一个或多个存储节点。

在本申请实施例中,第一组内控制器可以在存储节点集合中选择需要迁移令牌的第一存储节点,以及可以接收迁移的令牌的第二存储节点。避免了现有技术中,一旦需要进行令牌迁移时,控制器需要在存储系统中的全部存储节点的范围内确定能够接受令牌的节点,本申请实施例的方案将第二存储节点的选择范围从整个存储系统缩小到存储节点结合,有利于减少确定第二存储节点的计算量。

下文通过具体的例子,结合表1、表2以及图4介绍本申请实施例的组内控制器分配令牌的方法,图4所示的方法包括步骤410以及步骤430。需要说明的是,下文中的组内控制器可以是多个组内控制器中的任意一个,例如,可以是上文中的第一组内控制器。

假设组内控制器管理的存储对象组包括存储对象1、存储对象2以及存储对象3,且存储对象组内的存储对象的令牌分布在存储节点1、存储节点2以及存储节点3中,即组内控制器管理的存储设备的集合包括存储节点1存储节点2以及存储节点3。

410,组内控制器确定存储节点的令牌分配参数ai和di,ai表示存储节点i已被分配的存储对象的令牌数量,di表示存储对象在存储节点i上的需求,即为在存储节点i上统计得到的存储对象的请求数量,i=1,2,3,具体地存储对象i在存储节点1、存储节点2以及存储节点3中的令牌分配情况请参见表1。

表1

420,组内控制器确定待迁移的令牌的数量。

具体地,若存储节点1处于过载状态,且存储节点1中超出存储节点处理能力的令牌的数量r1为30。组内控制器确定可以从存储节点1向存储节点2迁移存储对象1的令牌。此时,存储节点2可以接受的存储对象1的令牌数量e2为d2-a2=50-25=25,则组内控制器确定待迁移的令牌的数量n=min(r1,e2)=25。

430,组内控制器根据待迁移的令牌的数量,在存储节点1以及存储节点2之间进行令牌迁移。

具体地,组内控制器将存储对象1的25个令牌从存储节点1迁移至存储节点2。表2示出了令牌迁移后的存储对象在存储节点中的令牌分配情况。需要说明的是表2中通过加粗的数字变化体现了上述存储对象1的令牌的迁移过程。即,从存储节点1中将存储对象1的25个令牌迁移至存储节点2中,存储节点1中存储对象1的令牌由75减少为50,存储节点2中存储对象1的令牌由25增加为50。

表2

上文结合图1至图4介绍了本申请实施例的方法,下文结合图5至图8介绍本申请实施例的装置。需要说明的是,图5至图8所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。

图5是本申请实施例的存储系统中令牌的分配装置的示意图,所述存储系统中包含控制器和多个组内控制器,所述控制器为所述多个组内控制器中每一个组内控制器分配令牌数,所述存储系统还包括多个存储节点集合,所述多个存储节点包括第一存储节点集合,图5所示的装置500为第一组内控制器,可以包括处理模块510以及发送模块520。

处理模块510,用于确定在单位时间内,所述第一组内控制器管理的第一存储对象组内的第一存储对象在所述第一存储节点集合中至少一个存储节点上的令牌数量;

发送模块520,用于向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量。

可选地,在一种可能的实现方式中,所述第一存储对象组包括第二存储对象,所述发送模块520还用于:向所述控制器发送令牌迁移请求,所述令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。

可选地,在一种可能的实现方式中,所述其他存储节点属于所述多个组内控制器中的第二组内控制器管理的第二存储对象集合的存储节点集合。

可选地,在一种可能的实现方式中,若所述存储节点集合中的存储节点无法接收所述待迁移的令牌,所述发送模块520,还用于向所述控制器发送所述令牌迁移请求。

可选地,在一种可能的实现方式中,所述处理模块510还用于:从所述存储节点集合中选择第一存储节点;从所述存储节点集合中选择第二存储节点;将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述存储对象组。

图6是本申请实施例的存储系统中令牌的分配装置的示意图。所述存储系统包括多个组内控制器以及控制器;其中,所述多个组内控制器中不同的组内控制器用于管理不同的存储对象组,所述多个组内控制器为管理的存储对象组在至少一个存储节点上分配令牌,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,图6所示的装置600可以为控制器,包括:接收模块610和处理模块620。

接收模块610,用于接收所述多个组内控制器中的第一组内控制器发送的令牌迁移请求,所述令牌迁移请求用于请求将所述第一组内控制器管理的第一存储对象组的待迁移的令牌从所述第一存储节点集合中迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合;

处理模块620,用于将所述待迁移的令牌迁移至所述其他存储节点。

在可选的实施例中,上述装置500还可以是组内控制器700,具体地,所述处理模块510可以为处理器720,所述发送模块520可以为输入输出接口730。所述组内控制器700还可以包括存储器710,具体如图7所示。

图7是本申请另一实施例的组内控制器的示意性框图。图7所示的组内控制器700可以包括:存储器710、处理器720、输入/输出接口730。其中,存储器710、处理器720和输入/输出接口730通过通信连接相连,该存储器710用于存储程序指令,该处理器720用于执行该存储器720存储的程序指令,以控制输入/输出接口730接收输入的数据和信息,输出操作结果等数据。

应理解,在本申请实施例中,该处理器720可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。

该存储器710可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。处理器720的一部分还可以包括非易失性随机存取存储器。例如,处理器720还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器710,处理器720读取存储器710中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

在可选的实施例中,上述装置600还可以是控制器800,具体地,所述接收模块610可以为输入输出接口830,所述处理模块620可以为处理器820。所述控制器800还可以包括存储器810,具体如图8所示。

图8是本申请另一实施例的控制器的示意性框图。图8所示的控制器800可以包括:存储器810、处理器820、输入/输出接口830。其中,存储器810、处理器820和输入/输出接口830通过通信连接相连,该存储器810用于存储程序指令,该处理器820用于执行该存储器820存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。

应理解,在本申请实施例中,该处理器820可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。

该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

应理解,本申请实施例中,该处理器可以为中央处理单元(centralprocessingunit,cpu),该处理器还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中,该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。

还应理解,本申请实施例中,“第一”、“第二”、“第三”等仅仅是为了区分,并不在顺序上进行限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1