服务质量控制方法、装置和存储服务器制造方法及图纸

技术编号:19549139 阅读:13 留言:0更新日期:2018-11-24 21:32
本申请公开一种服务质量控制方法、装置和存储服务器,在多个存储服务器和客户端间设置多个代理,代理间能够通信且能够获得卷组与代理间的对应关系,该方法应用于代理,包括:接收访问对应卷组的客户端IO请求,对客户端IO请求进行统计得到统计信息;其中,统计信息包括客户端IO请求的数目和对应的输出阶段信息;将客户端IO请求和统计信息发送至存储服务器,使存储服务器为客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对客户端IO请求进行处理;接收存储服务器发送的客户端IO请求对应的输出阶段信息,更新对应卷组的统计信息。本申请实现了dmClock算法支持卷组QoS,提高了服务质量,满足了应用需求。

Service Quality Control Method, Device and Storage Server

This application discloses a method, device and storage server for service quality control, in which multiple agents are set up between multiple storage servers and clients, and the agents can communicate with each other and obtain the corresponding relationship between volume groups and agents. The method is applied to agents, including receiving IO requests from clients accessing corresponding volume groups and serving clients. End-IO requests are counted to get statistical information, which includes the number of client IO requests and corresponding output phase information; client IO requests and statistical information are sent to the storage server, so that the storage server calculates the reserved time label, weight time label and upper limit time label for client IO requests. The client IO request is processed, and the output phase information corresponding to the client IO request sent by the storage server is received, and the statistical information of the corresponding volume group is updated. This application implements dmClock algorithm to support volume group QoS, improves the quality of service and meets the application requirements.

【技术实现步骤摘要】
服务质量控制方法、装置和存储服务器
本申请涉及计算机
,具体涉及一种服务质量控制方法、装置和存储服务器。
技术介绍
分布式存储系统是由多台存储服务器组成的存储集群。分布式存储具有高可靠性,高可用性,快速存取,易于扩展等优点。由于分布式存储系统将数据分散存储在各存储服务器的不同存储设备中,当多个用户同时访问同一存储设备时,就会引起存储资源的竞争问题。例如,假设某分布式存储系统有两个用户,它们分别提供联机事务处理(On-LineTransactionProcessing,简称OLTP)业务和备份业务,存储资源是一定的,备份业务的数据量较大并且对存储服务器的使用较频繁,所以备份业务会占用大量的存储资源,导致OLTP业务无法获得足够的存储资源而影响业务的正常运行。鉴于这一问题,分布式存储领域提出了存储服务质量QoS(QualityofService)算法,存储QoS算法的目标是合理分配存储资源,解决部分业务独占存储资源致使其它业务无法正常工作的问题。现有技术有多种实现存储QoS的算法,例如,典型的漏桶和令牌桶算法,但每种算法都有一定的局限性,漏桶和令牌桶算法只能实现限速功能。现有技术中有一种mClock算法,mClock算法是2010年发表的一篇论文《mClock:handlingthroughputvariabilityforhypervisorIOscheduling》中提出的算法。mClock算法包含三个主要参数:预留、上限和权重(或称比例)。预留是保证给定存储块的最低性能,上限是限制给定存储块的最高性能,权重是在满足预留和上限的前提下为不同用户提供不同的性能。mClock算法采用为每个IO请求分配三个时间标签来同时支持服务质量QoS的预留、上限和权重功能。通过mClock算法能够合理分配存储资源,保证存储服务质量。在存储领域,LUN(LogicalUnitNumber)是相对于物理存储设备的一个逻辑设备。由一组LUN组成的集合称为卷组,卷组相当于一个存储池,卷组内的每个LUN物理上可以是不连续的,但是将多个LUN加入一个卷组后,就形成了存储空间连续的存储池。卷组QoS是指将存储QoS算法应用于卷组内的所有LUN,不关心卷组内不同LUN的IO分配,只关心卷组整体IO分配情况。和存储QoS相同,卷组QoS也包括:预留、上限和权重三个参数,以卷组QoS的上限控制为例,假设一个卷组配置的上限每秒进行输入输出操作的次数(Input/OutputOperationsPerSecond,IOPS)为10,则存储服务器在应用卷组QoS处理访问同一个卷组的IO请求时,不关心卷组内某个LUN的IOPS,只要保证卷组内所有LUN的IOPS之和不超过10即可。dmClock算法将mClock算法从单机环境扩展到了分布式存储系统环境,从而实现分布式存储系统的QoS控制。dmClock算法应用于分布式存储系统中实现存储QoS,根据前面对mClock算法的说明可知,要想实现卷组QoS,如实现卷组QoS中的预留功能,即保证卷组的最低性能,就需要知道一个卷组的IO请求的处理情况,换句话说,就需要知道卷组的全局实时统计信息。但是在分布式存储系统中,客户端IO请求可能发送到不同存储服务器上,这些存储服务器之间是独立的,可能并没有交集,一个存储服务器无法知道该存储服务器没有处理的,访问同一个卷组的那些客户端IO请求的处理阶段,即,无法得到该卷组的全局实时统计信息,也就无法根据统计信息为访问同一个卷组的客户端IO请求计算时间标签,进而无法实现卷组QoS中的预留控制等功能,不能满足实际需求。
技术实现思路
本申请提供了一种服务质量控制方法和装置,以解决现有dmClock算法不支持卷组QoS,不能满足实际需求的问题,本申请还提供了一种存储服务器。根据本申请的一个方面,提供了一种服务质量控制方法,在多个存储服务器和客户端之间设置多个代理,所述代理之间能够通信,且所述代理能够获得卷组与所述代理之间的对应关系,该方法应用于所述代理,包括:接收访问对应卷组的客户端IO请求;对访问对应卷组的客户端IO请求进行统计得到统计信息;其中,统计信息包括:访问对应卷组的客户端IO请求的数目以及客户端IO请求对应的输出阶段信息;将客户端IO请求和统计信息发送至存储服务器,以使所述存储服务器为所述客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对所述客户端IO请求进行处理;接收所述存储服务器发送的所述客户端IO请求对应的输出阶段信息,更新对应卷组的所述统计信息。根据本申请的另一个方面,提供了一种服务质量控制装置,该装置应用于设置在多个存储服务器和客户端之间的多个代理,所述代理之间能够通信,且所述代理能够获得卷组与所述代理之间的对应关系,包括:IO接收模块,适于接收访问对应卷组的客户端IO请求,IO统计模块,适于对访问对应卷组的客户端IO请求进行统计得到统计信息;其中,统计信息包括:访问对应卷组的客户端IO请求的数目以及客户端IO请求对应的输出阶段信息;交互模块,适于将客户端IO请求和统计信息发送至存储服务器,以使所述存储服务器为所述客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对所述客户端IO请求进行处理;所述交互模块,还适于接收所述存储服务器发送的所述客户端IO请求对应的输出阶段信息,所述IO统计模块,还适于根据客户端IO请求对应的输出阶段信息更新对应卷组的所述统计信息。根据本申请的又一个方面,提供了一种存储服务器,包括:通信模块,适于接收代理发送的访问对应卷组的客户端IO请求和统计信息,其中,所述代理设置在多个存储服务器和客户端之间,所述代理之间能够通信,且所述代理能够获得卷组与所述代理之间的对应关系,所述统计信息包括:访问对应卷组的客户端IO请求的数目以及客户端IO请求对应的输出阶段信息,IO处理模块,适于为所述客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对所述客户端IO请求进行处理;所述通信模块,还适于将所述客户端IO请求对应的输出阶段信息发送至所述代理,使得所述代理更新对应卷组的所述统计信息。本申请的有益效果是:本申请实施例服务质量控制方案,通过在多个存储服务器和客户端之间设置多个代理,代理之间能够通信且代理能够获得卷组与代理之间的对应关系,代理接收访问对应卷组的客户端IO请求,对客户端IO请求进行统计得到统计信息,将客户端IO请求和统计信息发送至存储服务器,接收存储服务器发送的客户端IO请求对应的输出阶段信息,更新对应卷组的所述统计信息。从而代理能够得到访问同一个卷组的所有客户端IO请求的信息并进行统计,进而实现根据代理统计的统计信息为客户端IO请求计算时间标签,实现卷组QoS的预留、上限和权重控制功能,提升分布式存储系统的服务质量,满足实际需求。附图说明图1是本申请一个实施例的服务质量控制方法的流程示意图;图2是本申请一个实施例的分布式存储系统的逻辑示意图;图3是本申请一个实施例的第一客户端的读请求的处理流程示意图;图4是本申请一个实施例的第二客户端的读请求的处理流程示意图;图5是本申请一个实施例的第一客户端的写请求的处理流程示意图;图6是本申请一个实施例的第二客户端的写请求的处理流程示意图;本文档来自技高网
...

【技术保护点】
1.一种服务质量控制方法,其特征在于,在多个存储服务器和客户端之间设置多个代理,所述代理之间能够通信,且所述代理能够获得卷组与所述代理之间的对应关系,该方法应用于所述代理,包括:接收访问对应卷组的客户端IO请求;对访问对应卷组的客户端IO请求进行统计得到统计信息;其中,统计信息包括:访问对应卷组的客户端IO请求的数目以及客户端IO请求对应的输出阶段信息;将客户端IO请求和统计信息发送至存储服务器,以使所述存储服务器为所述客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对所述客户端IO请求进行处理;接收所述存储服务器发送的所述客户端IO请求对应的输出阶段信息,更新对应卷组的所述统计信息。

【技术特征摘要】
1.一种服务质量控制方法,其特征在于,在多个存储服务器和客户端之间设置多个代理,所述代理之间能够通信,且所述代理能够获得卷组与所述代理之间的对应关系,该方法应用于所述代理,包括:接收访问对应卷组的客户端IO请求;对访问对应卷组的客户端IO请求进行统计得到统计信息;其中,统计信息包括:访问对应卷组的客户端IO请求的数目以及客户端IO请求对应的输出阶段信息;将客户端IO请求和统计信息发送至存储服务器,以使所述存储服务器为所述客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对所述客户端IO请求进行处理;接收所述存储服务器发送的所述客户端IO请求对应的输出阶段信息,更新对应卷组的所述统计信息。2.根据权利要求1所述的方法,其特征在于,接收所述存储服务器发送的所述客户端IO请求对应的输出阶段信息包括:接收所述存储服务器在基于预留的阶段处理所述客户端IO请求时发送的基于预留的阶段信息;所述基于预留的阶段信息中包括:客户端IO请求标识信息以及指示客户端IO请求的输出阶段的信息,或者,接收所述存储服务器在基于权重的阶段处理所述客户端IO请求时发送的基于权重的阶段信息;所述基于权重的阶段信息中包括:客户端IO请求标识信息以及指示客户端IO请求的输出阶段的信息,更新对应卷组的所述统计信息包括:根据所述客户端IO请求对应的基于预留的阶段信息,更新统计信息中基于预留的阶段信息对应的客户端IO请求数目,或者,根据所述客户端IO请求对应的基于权重的阶段信息,更新统计信息中基于权重的阶段信息对应的客户端IO请求数目。3.根据权利要求1或2所述的方法,其特征在于,所述代理分为负责代理和非负责代理,所述负责代理,接收访问对应卷组的客户端IO请求,和/或接收非负责代理转发的访问对应卷组的客户端IO请求或客户端IO请求对应的通知消息;对访问对应卷组的客户端IO请求进行统计得到统计信息,并将客户端IO请求和统计信息发送至存储服务器;接收所述存储服务器发送的客户端IO请求对应的输出阶段信息,更新对应卷组的所述统计信息;所述非负责代理,接收访问对应卷组的客户端IO请求,将访问对应卷组的客户端IO请求转发至所述负责代理,或者将接收的访问对应卷组的客户端IO请求发送至存储服务器,并发送通知消息至所述负责代理,所述通知消息中包括:客户端IO请求的标识信息,非负责代理的标识信息以及存储服务器的地址信息。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述代理启动后,向服务进程发送查询请求,以获得所述代理与卷组之间的对应关系以及所述代理的角色信息,所述角色信息用于指示所述代理作为负责代理还是非负责代理。5.根据权利要求3所述的方法,其特征在于,负责代理具体执行如下步骤:接收访问对应卷组的读请求,将所述读请求和统计信息一并发送至存储服务器;接收所述存储服务器在对读请求处理后发送的读请求对应的输出阶段信息,并更新所述统计信息中相应输出阶段信息对应的客户端IO请求数目;接收所述存储服务器发送的读响应信息,返回读响应信息至发送所述读请求的客户端;和/或接收访问对应卷组的写请求,将所述写请求和统计信息一并发送至存储服务器;接收所述存储服务器在对写请求处理后发送的写请求对应的输出阶段信息,并更新所述统计信息中相应输出阶段信息对应的客户端IO请求数目;接收所述存储服务器发送的写响应信息,返回写响应信息至发送所述写请求的客户端。6.根据权利要求3所述的方法,其特征在于,非负责代理具体执行如下步骤:接收访问对应卷组的写请求,将所述写请求发送至存储服务器,并发送通知消息至所述负责代理,以使所述负责代理根据接收到的通知消息,将统计信息发送至所述存储服务器;接收所述存储服务器发送的写响应信息,返回写响应信息至发送所述写请求的客户端;和/或接收访问对应卷组的读请求,转发所述读请求至所述负责代理,以使所述负责代理将统计信息以及读请求一并发送至存储服务器;接收所述存储服务器发送的读响应信息,返回读响应信息至发送所述读请求的客户端。7.一种存储服务器,其特征在于,包括:通信模块,适于接收代理发送的访问对应卷组的客户端IO请求和统计信息,其中,所述代理设置在多个存储服务器和客户端之间,所述代理之间能够通信,且所述代理能够获得卷组与所述代理之间的对应关系,所述统计信息包括:访问对应卷组的客户端IO请求的数目以及客户端IO请求对应的输出阶段信息,IO处理模块,适于为所述客户端IO请求计算预留时间标签、权重时间标签和上限时间标签,并对所述客户端IO请求进行处理;所述通信模块,还适于将所述客户端IO请求对应的输出阶段信息发送至所述代理,使得所述代理更新对应卷组的所述统计信息。8.根据权利要求7所述的存储服务器,其特征在于,所述通信模块,适于接收对应卷组的负责代理发送的客户端IO请求和统计信息,将所述客户端IO请求对应的输出阶段信息发送至所述负责代理,以使负责代理更新对应卷组的所述统计信息;所述通信模块,适于接收对应卷组的非负责代理发送的客户端IO请求,并接收所述负责代理发送的所述统计信息。9.根据权利要求8所述的存储服务器,其特征在于,所述通信模块,适于接收对应卷组的非负责代理发送的写请求,并接收所述负责代理发送的统计信息,所述IO处理模块,适于根据所述写请求以及所述统计信息,利用时间标签计算公式计算出写请求的准预留时间标签,准上限时间标签和准权重时间标签...

【专利技术属性】
技术研发人员:吴香伟
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1