服务质量控制方法及装置与流程

文档序号:16900555发布日期:2019-02-19 17:56阅读:275来源:国知局
服务质量控制方法及装置与流程

本发明涉及分布式存储技术领域,具体而言,涉及一种服务质量控制方法及装置。



背景技术:

服务质量(qualityofservice,qos)是一种控制机制,它提供了针对不同用户或不同数据流采用相应的不同优先级,或者是根据程序的要求,保证数据流的性能达到一定的水准。在分布式存储系统中,由于资源竞争的关系,多种任务互相争夺每秒输入输出操作次数(input/outputoperationspersecond,iops),为了避免关键任务在资源竞争激烈的时候竞争不到足够的带宽,而与其他非关键任务一起缓慢执行,从而影响关键任务的执行效率,分布式存储系统当前使用mclock算法实现分布式存储系统的qos功能,但是该实现方式只能实现块设备级别的qos功能,而无法实现多个客户端访问同一个共享目录的qos功能。



技术实现要素:

本发明实施例的目的在于提供一种服务质量控制方法及装置,通过将共享目录访问请求下发至存储网关服务器、使用令牌桶算法实现分布式存储系统的多个客户端访问同一个共享目录的qos功能。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种服务质量控制方法,所述方法包括:获取每个存储网关服务器的当前预设心跳周期的目录访问负载,其中,目录访问负载是客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的;依据多个当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量;将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。

第二方面,本发明实施例还提供了一种服务质量控制装置,所述装置包括获取模块、确定模块和发送模块。其中,获取模块用于获取每个存储网关服务器的当前预设心跳周期的目录访问负载,其中,目录访问负载是客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的;确定模块用于依据多个当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量,发送模块用于将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。

相对现有技术,本发明实施例提供的一种服务质量控制方法及装置,首先,客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的目录访问负载,然后,获取每个存储网关服务器的当前预设心跳周期的目录访问负载,其中,目录访问负载是客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的;接下来,依据多个当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量,最后,将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。与现有技术相比,本发明实施例通过将共享目录访问请求下发至存储网关服务器、使用令牌桶算法实现分布式存储系统的多个客户端访问同一个共享目录的qos功能。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的服务质量控制方法的应用场景图。

图2示出了本发明实施例提供的存储网关服务器的方框示意图。

图3示出了本发明实施例提供的服务质量控制方法流程图。

图4为图3示出的步骤s102的第一实现方法的子步骤流程图。

图5为图3示出的步骤s102的第二实现方法的子步骤流程图。

图6示出了本发明实施例提供的服务质量控制装置的方框示意图。

图标:100-存储网关服务器;101-存储器;102-通信接口;103-处理器;104-总线;200-服务质量控制装置;201-获取模块;202-确定模块;203-发送模块;204-分配模块;300-客户端;400-存储集群。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参照图1,图1示出了本发明实施例提供的服务质量控制方法的应用场景图。多个存储网关服务器100均与客户端300和存储集群400通信连接,其中,存储网关服务器100是位于客户端300与存储集群400或者存储网络之间进行存储协议转换的服务器,存储网关服务器100可以为客户端300屏蔽不同的存储集群400或者存储网络,在本发明实施例中,存储网关服务器100可以是nas(networkattachedstorage,网络附加存储)网关服务器,nas网关服务器可以使用户通过客户端300以文件的方式访问存储集群400。具有管理权限的管理员用户通过客户端300对共享目录进行质量控制配置,对业务数据具有访问需求的用户对配置有质量控制的共享目录发起访问请求,以通过存储网关服务器100访问存储在存储集群400上的共享目录的内容,不同客户端300可以通过不同的存储网关服务器100访问存储集群400上的同一个共享目录,也可以通过同一个存储网关服务器100访问存储集群400上的同一个共享目录。在本发明实施例中,服务质量控制方法可以应用于控制节点,该控制节点可以是与多个存储网关服务器100均通信连接的独立的服务器或主机,也可以是任意一个存储网关服务器100,本发明实施例中,以该控制节点为任意一个存储网关服务器100为例进行描述,存储网关服务器100获取多个存储网关服务器的当前预设心跳周期的目录访问负载后,依据多个存储网关服务器的当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量,最后,将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使该存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。

请参照图2,图2示出了本发明实施例提供的存储网关服务器100的方框示意图。存储网关服务器100可以是,但不限于,主机、虚拟机、实体服务器、实体服务器上的虚拟机等能提供与所述服务器或者虚拟机有相同功能的实体或者虚拟的服务端。存储网关服务器100的操作系统可以是,但不限于,windows系统、linux系统等。所述存储网关服务器100包括存储器101、通信接口102、处理器103和总线104,所述存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序。

其中,存储器101可能包含高速随机存取存储器(ram:randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口102(可以是有线或者无线)实现该存储网关服务器100与至少一个其他存储网关服务器100、以及外部存储设备之间的通信连接。

总线104可以是isa总线、pci总线或eisa总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器101用于存储程序,例如图6所示的服务质量控制装置200。该服务质量控制装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述存储网关服务器100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器103在接收到执行指令后,执行所述程序以实现本发明实施例揭示的服务质量控制方法。

第一实施例

请参照图3,图3示出了本发明实施例提供的服务质量控制方法流程图。处理方法包括以下步骤:

步骤s101,获取每个存储网关服务器的当前预设心跳周期的目录访问负载,其中,目录访问负载是客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的。

在本发明实施例中,预设心跳周期用于根据当前心跳周期的负载指导下一个心跳周期的访问控制,以平衡下一个心跳周期每个存储网关服务器的负载,预设心跳周期设置的越短,获得的当前心跳周期的负载越准确,但是,预设心跳周期设置的过短会影响业务带宽,增加系统负担,降低系统的稳定性,作为一种实施方式,预设心跳周期可以设置为1秒。存储网关服务器100每个预设心跳周期从每个存储网关服务器获取当前预设心跳周期的目录访问负载,具有管理权限的管理员用户预先通过客户端300对共享目录进行服务质量配置,客户端300将有访问需求的用户发出的访问请求发送至存储网关服务器,通过存储网关服务器访问存储集群400存储的、预先配置服务质量的共享目录,目录访问负载通常以存储网关服务器处理访问请求的时延或者等待处理的访问请求队列长度体现,时延越大或者访问请求队列的长度越长,意味着访问共享目录时产生的目录访问负载越大。

步骤s102,依据多个当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量。

在本发明实施例中,通常情况下,业务访问量在一段时间内会逐渐趋于平稳,因此,存储网关服务器100依据多个当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量,当前预设心跳周期的目录访问负载越大的存储网关服务器,在下一个预设心跳周期为其分配的令牌数量也越多,以此,逐渐地将每个存储网关服务器的令牌数量调整的与对应的存储网关服务器的负载基本一致,从而达到通过每个网关服务器对共享目录进行服务质量控制的目的。

请参照图4,步骤s102的还可以包括以下子步骤:

子步骤s1021,获取预设心跳周期内访问共享目录所需产生的令牌总数,其中,令牌总数是依据共享目录的服务质量的配置确定的。

在本发明实施例中,共享目录的服务质量的配置包括、但不限于带宽、,iops、突发比等。带宽指单位时间(通常指1秒钟)内访问共享目录时传输的数据量,例如,在进行共享目录/test的服务质量的配置时,将带宽设置为100mb/s,意味着访问共享目录/test时每秒访问的数据量限制在100m字节。iops指每秒钟访问共享目录的次数。突发比是为了应对突然增加的访问量而允许突发访问量增加的比例,例如,带宽设置为100mb/s,若突发比设置为10%,则每秒访问量最多允许为110mb,即允许有10%的访问量的增加。访问共享目录的令牌总数是依据共享目录的服务质量的配置确定的,通常情况下,一个字节对应一个令牌,例如,带宽设置为100mb/s,预设心跳周期为10ms,则10ms传输的数据量为1mb,即每个心跳周期产生的令牌总数为1m个。

需要说明的是,在进行服务质量的配置时,可以只配置一个参数,例如,只配置带宽,也可以同时配置多个参数,即配置带宽和突发比,或者配置带宽、iops和突发比等多个参数,当同时配置多个参数时,以最先达到的参数对应的令牌总数为准,例如,配置带宽对应的每个预设心跳周期产生的令牌总数为1m个,配置iops对应的每个预设心跳周期产生的令牌总数为1.5m个,当前带宽达到配置带宽时,采用令牌总数为1m个,当前iops达到配置iops时,采用令牌总数为1.5m个,当前带宽既达到配置带宽,同时当前iops又达到配置iops时,选择二者中对应的令牌总数较小的那个作为令牌总数。

子步骤s1022,计算每个存储网关服务器的当前预设心跳周期的目录访问负载占当前预设心跳周期的目录访问总负载的比例。

在本发明实施例中,不同客户端300访问同一个共享目录处理的业务不同,导致对应的访问数据量也不同,为了最大化满足业务的需求,同时兼顾平衡多个存储网关服务器的数据传输压力,可以按照每个存储网关服务器的目录访问负载确定每个存储网关服务器在预设心跳周期产生的令牌数量,给目录访问负载越大的存储网关服务器分配越多的令牌数量。

在本发明实施例中,在每个存储网关服务器的当前预设心跳周期的目录访问负载后,首先,存储网关服务器100统计多个存储网关服务器的当前预设心跳周期的目录访问总负载,然后,计算每个存储网关服务器的当前预设心跳周期的目录访问负载占当前预设心跳周期的目录访问总负载的比例,目录访问负载可以是需要处理的访问数据量,获取每个存储网关服务器的当前预设心跳周期的需要处理的访问数据量,当前预设心跳周期的需要处理的访问数据量=当前预设心跳周期已经处理的访问数据量+请求队列中待处理的访问数据量,例如,存储网关服务器有2个:存储网关服务器1和存储网关服务器2,存储网关服务器1在当前预设心跳周期已经处理的访问数据量为100mb,且存储网关服务器1的请求队列中待处理的访问数据量为20mb,则存储网关服务器1在当前预设心跳周期的需要处理的访问数据量=100mb+20mb=120mb;存储网关服务器2在当前预设心跳周期已经处理的访问数据量为60mb,且存储网关服务器1的请求队列中待处理的访问数据量为0mb,则存储网关服务器2在当前预设心跳周期的需要处理的访问数据量=60mb+0mb=60mb,则存储网关服务器1的当前预设心跳周期的访问数据量占当前预设心跳周期的目录访问的访问数据总量的比例=120mb/(120mb+60mb)=0.67,存储网关服务器2的当前预设心跳周期的访问数据量占当前预设心跳周期的目录访问的访问数据总量的比例=60mb/(120mb+60mb)=0.33。

子步骤s1023,依据令牌总数及每个存储网关服务器的当前预设心跳周期的目录访问负载占当前预设心跳周期的目录访问总负载的比例,得到每个存储网关服务器在下一个预设心跳周期产生的令牌数量。

在本发明实施例中,存储网关服务器100按照每个存储网关服务器的当前预设心跳周期的目录访问负载占当前预设心跳周期的目录访问总负载的比例分配令牌总数,这样可以在满足目录访问需求的同时又保持存储网关服务器之间的访问压力的平衡。

在本发明实施例中,存储网关服务器100依据多个存储网关服务器的当前预设心跳周期的目录访问负载在多个存储网关服务器之间分配令牌总数的方法还可以通过如图5所示的子步骤s1024-子步骤s1027实现。

子步骤s1024,获取预设令牌周期内访问共享目录所需产生的令牌总数,其中,令牌总数是依据共享目录的服务质量的配置确定的。

在本发明实施例中,子步骤s1024的实现方法同子步骤s1021。

子步骤s1025,计算多个当前预设心跳周期的目录访问负载的平均负载。

在本发明实施例中,目录访问负载可以由不同的参数体现,不同的参数可以是、但不限于是当前预设心跳周期的访问数据量、当前预设心跳周期的最大时延或者平均时延等等,例如,目录访问负载是最大时延,存储网关服务器有2个:存储网关服务器1和存储网关服务器2,存储网关服务器1的当前预设心跳周期的最大时延为1ms,存储网关服务器2的当前预设心跳周期的最大时延为5ms,则当前预设心跳周期的目录访问负载的平均负载=(1ms+5ms)/2=3ms。

子步骤s1026,计算每个存储网关服务器的当前预设心跳周期的目录访问负载占平均负载的比例。

在本发明实施例中,可以按照每个存储网关服务器的当前预设心跳周期的目录访问负载占平均负载的比例在多个存储网关服务器之间分配令牌总数。

子步骤s1027,依据令牌总数及每个存储网关服务器的当前预设心跳周期的目录访问负载占平均负载的比例得到每个存储网关服务器在下一个预设心跳周期产生的令牌数量。

步骤s103,将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。

在本发明实施例中,预设令牌周期通过将每个存储网关服务器的令牌数量分配到每个预设令牌周期下发,以控制每个存储网关服务器调整负载的节奏,以使每个存储网关服务器平稳地完成负载的调整,而不会因调整负载导致当前的系统的极大波动,作为一种实施方式,预设令牌周期可以设置为4ms。每个存储网关服务器可以按照预设令牌周期和预设规则分配令牌数量,得到每个预设令牌周期产生的令牌数量,其中,预设规则可以是平均分配,也可以是逐渐按比例减少,每个存储网关服务器在每个预设令牌周期、产生预先确定的每个预设令牌周期产生的令牌数量的令牌,每个存储网关服务器的令牌桶容纳最大令牌数可以预先设定,每个存储网关服务器在每个预设心跳周期确定的令牌数量在下一个预设令牌周期才会生效,预设心跳周期和预设令牌周期可以一致,也可以不一致,预设令牌周期通常小于或者等于预设心跳周期。存储网关服务器100计算得到每个存储网关服务器的令牌数量后,将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,该存储网关服务器在收到该令牌数量后,在下一个预设令牌周期到来时,首先,根据该令牌数量及预设令牌周期计算出下一个预设令牌周期需要产生的令牌数量、并产生出下一个预设令牌周期需要产生的令牌数量的令牌,将产生的令牌放入本地的令牌桶中,例如,预设心跳周期为20ms,预设令牌周期为10ms,预设规则为平均分配,第一个预设心跳周期确定出的令牌数量为100m个,即20ms内消耗的令牌数为100m个,按照存储网关服务器需要在下一个20ms消耗掉100m个令牌计算,每个预设令牌周期需要产生的令牌数为100m/2=50m个,因此,第一个预设令牌周期时存储网关服务器产生的令牌数量为50m个,第二个预设令牌周期时,由于令牌数量没有更新,仍然是50m个,第二个预设心跳周期确定出的令牌数量为80m个,则每个预设令牌周期需要产生的令牌数为80m/2=40m,则存储网关服务器产生的令牌数量更新为40m个,即第三个预设令牌周期时存储网关服务器产生40m个令牌。

在本发明实施例中,当收到客户端300发送的访问配置有服务质量的共享目录的访问请求时,首先根据访问请求的数据量计算下发访问请求所需的令牌数,然后判断本地令牌桶中是否存在满足所需的令牌数的令牌,若存在,则从本地令牌桶中取出相应数量的令牌,将该访问请求下发,否则,将该访问请求暂时放入请求队列中,等令牌桶中存在满足所需的令牌数的令牌后再将该访问请求下发。

作为一种实施方式,对共享目录进行服务质量控制可以通过以下方法实现:

首先,接收客户端发送的访问请求,其中,访问请求是客户端访问存储集群存储的预先配置有服务质量的共享目录发起的。

在本发明实施例中,客户端300首先将访问配置有服务质量的共享目录的访问请求发送至存储网关服务器100,存储网关服务器100计算该访问请求所需的令牌数后,根据本地令牌桶中的令牌数决定该访问请求是否下发至存储集群400,还是暂时进入请求队列中等待,以此实现对共享目录的服务质量的控制。

其次,依据访问请求确定访问请求所需的令牌数。

在本发明实施例中,访问请求中包括访问数据量,依据访问数据量可以确定该访问请求所需的令牌数,通常情况下,访问请求所需的令牌数等于访问数据量的字节数,例如,访问请求中的访问数据量为128kb,则该访问请求所需的令牌数为128k个。

第三,当存储网关服务器的当前令牌数大于或等于访问请求所需的令牌数时,将访问请求下发至存储集群。

在本发明实施例中,当存储网关服务器的本地令牌桶的当前令牌数大于或等于访问请求所需的令牌数时,意味着当前访问请求在共享目录配置的服务质量的控制范围内,可以将该访问请求继续下发至存储集群400,因此,从本地令牌桶中取出所需的令牌数的令牌后,将访问请求下发至存储集群400,以访问存储集群400中存储的该共享目录的数据。

最后,当存储网关服务器的当前令牌数小于访问请求所需的令牌数时,等待下一个预设令牌周期直至存储网关服务器的当前令牌数大于或等于访问请求所需的令牌数时,将访问请求下发至所述存储集群。

在本发明实施例中,当存储网关服务器的本地令牌桶的当前令牌数小于访问请求所需的令牌数时,意味着当前访问请求已经超出共享目录配置的服务质量的控制范围,当前访问请求暂时不能下发,先进入请求队列等待,当下一个预设令牌周期到来时,存储网关服务器又会产生相应数量的令牌数到本地令牌桶中,当本地令牌桶中的当前令牌数大于或等于该访问请求所需的令牌数时,将该访问请求下发至所述存储集群400,以访问存储集群400中存储的配置服务质量的共享目录的数据。

在本发明实施例中,当有新加入的存储网关服务器时,为了保证客户端300可以及时通过新加入的存储网关服务器访问存储集群400存储的预先配置有服务质量的共享目录,不会影响共享目录的正常访问,会立即给新加入的存储网关服务器初始令牌数,以使新加入的存储网关服务器产生初始令牌数的令牌,因此,本发明实施例还包括步骤s104。

步骤s104,当客户端通过新加入的存储网关服务器访问存储集群存储的预先配置有服务质量的共享目录时,为新加入的存储网关服务器分配初始令牌数。

在本发明实施例中,初始令牌数可以由用户单独设置,也可以根据共享目录配置的服务质量中的突发比确定,例如,突发比为10%,每个令牌周期产生的令牌总数为10m个,则新加入的存储网关服务器的初始令牌数为10m*10%=1m,即新加入的存储网关服务器的初始令牌数为1m个。一旦新加入的存储网关服务器加入成功,当每个预设心跳周期到来时,存储网关服务器100就会从每个存储网关服务器(包括新加入成功的存储网关服务器)获取当前预设心跳周期的目录访问负载,并依据多个当前预设心跳周期的目录访问负载在多个存储网关服务器之间分配预设令牌周期内访问共享目录所需产生的令牌总数,以此,实现多个存储网关服务器之间目录访问的平衡。

需要说明的是,在本发明实施例中,当配置服务质量的共享目录很多时,将该服务质量控制方法部署在一个存储网关服务器100或者一个独立的服务器会导致一个存储网关服务器100或者一个独立的服务器压力过大,从而成为系统性能的瓶颈,为了实现存储网关服务器100的压力均衡,也可以将该服务质量控制方法部署在多个存储网关服务器100或者多个独立的服务器上,每个存储网关服务器100管理多个配置服务质量的共享目录,多个存储网关服务器100或者多个独立的服务器可以使用zookeeper(一个分布式的、开放源码的分布式应用程序协调服务)或keepalive(适用于多个节点的异常检测机制)机制进行管理,当其中任意一个存储网关服务器100异常时,其他存储网关服务器100可以在zookeeper或keepalive管理下接管异常存储网关服务器100上的业务,因此,在用户通过客户端300对共享目录配置服务质量时,客户端300可以从zookeeper或keepalive处获取保存的每个存储网关服务器100管理的共享目录的个数及每个存储网关服务器100的网络状态,从多个存储网关服务器100中选出管理的共享目录最少、且网络状态较好的存储网关服务器100,由该存储网关服务器100管理对此共享目录进行服务质量的控制,以此实现存储网关服务器100的压力均衡。

在本发明实施例中,通过存储网关服务器、使用令牌桶算法实现分布式存储系统的多个客户端访问同一个共享目录的qos功能,与现有技术相比,具有以下有益效果:

第一,分布式存储系统的多个客户端访问同一个共享目录的qos功能,实现了共享目录的qos功能精确控制。

第二,由于部署在存储网关服务器上,可以适配所有nas协议,如smb,nfs,ftp。

第三,根据存储网关服务器的目录访问负载周期性地调整存储网关服务器在每个令牌周期需要产生的令牌数量,保证每个客户端访问同一个共享目录时访问存储集群的时延相当,在最大化满足客户端访问同一个共享目录的需求的同时,实现了各存储网关服务器访问同一个共享目录的压力平衡。

第四,通过将该服务质量控制方法部署在多个存储网关服务器或者多个独立的服务器上,避免了同一个存储网关服务器成为控制多个共享目录服务质量的瓶颈,实现多个存储网关服务器之间的负载均衡。

第二实施例

请参照图6,图6示出了本发明实施例提供的服务质量控制装置200的方框示意图。服务质量控制装置200应用于存储网关服务器100,其包括获取模块201;确定模块202;发送模块203;分配模块204;

获取模块201,用于获取每个存储网关服务器的当前预设心跳周期的目录访问负载,其中,目录访问负载是客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的。

在本发明实施例中,获取模块201用于执行步骤s101。

确定模块202,用于依据多个当前预设心跳周期的目录访问负载确定每个所述存储网关服务器下一个预设心跳周期产生的令牌数量。

在本发明实施例中,确定模块202用于执行步骤s102及其子步骤s1021-s1027。

发送模块203,用于将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。

在本发明实施例中,发送模块203用于执行步骤s103。

在本发明实施例中,发送模块203具体用于:

接收客户端发送的访问请求,其中,访问请求是客户端访问存储集群存储的预先配置有服务质量的共享目录发起的;

依据访问请求确定访问请求所需的令牌数;

当存储网关服务器的当前令牌数大于或等于访问请求所需的令牌数时,将访问请求下发至存储集群;

当存储网关服务器的当前令牌数小于访问请求所需的令牌数时,等待下一个预设令牌周期直至存储网关服务器的当前令牌数大于或等于访问请求所需的令牌数时,将访问请求下发至所述存储集群。

分配模块204,用于当客户端通过新加入的存储网关服务器访问存储集群存储的预先配置有服务质量的共享目录时,为新加入的存储网关服务器分配初始令牌数。

在本发明实施例中,分配模块204用于执行步骤s104。

综上所述,本发明提供的一种服务质量控制方法及装置,所述用于对多个存储网关服务器进行服务质量控制,每个存储网关服务器均与客户端和存储集群通信连接,所述方法包括:获取每个存储网关服务器的当前预设心跳周期的目录访问负载,其中,目录访问负载是客户端访问存储集群存储的、预先配置服务质量的共享目录而产生的;依据多个当前预设心跳周期的目录访问负载确定每个存储网关服务器下一个预设心跳周期产生的令牌数量;将每个存储网关服务器的令牌数量发送至对应的存储网关服务器,以使存储网关服务器依据令牌数量在下一个预设令牌周期对共享目录进行服务质量控制。与现有技术相比,本发明实施例通过存储网关服务器、使用令牌桶算法实现分布式存储系统的多个客户端访问同一个共享目录的qos功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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