存储QoS控制策略的实现方法及装置与流程

文档序号:16246051发布日期:2018-12-11 23:35阅读:355来源:国知局
存储QoS控制策略的实现方法及装置与流程

本发明涉及存储技术领域,尤其涉及一种存储qos控制策略的实现方法及装置。

背景技术

qos(qualityofservice,服务质量)作为网络的一种网络安全机制,能够为指定的网络通信提供更好的服务能力,qos主要衡量指标有iops(input/outputoperationspersecond,每秒进行读写操作的次数)上下限,mbps(millionbitspersecond,兆位每秒)上下限,权重share,延时latency上限等。存储系统中,通常采用竞争的方式确定各应用i/o(input/output,输入/输出)下发到硬件的顺序,这样将会无法保证某个或某些应用i/o的服务质量,为了保证一些应用i/o的服务质量,在将i/o下发到硬件前需要对其进行调度或流控的处理,所以将qos的概念引入到存储系统中,即存储qos。存储qos在保障应用的iops、mbps或时延的情况下,合理分配存储系统的资源,使应用之间资源隔离的同时提升单个或某些应用的性能,进而保证服务质量。现有技术中存储qos控制策略主要为存储qos服务层以各卷(应用)的单个i/o为粒度,根据预设算法排列下发是顺序,例如,sfq(start-timefairqueuing,时间公平队列)等,其算法为存储qos服务层根据设置的iops下限、mbps下限或权重等计算每个i/o的时间戳,并进行标记,然后按照时间戳的先后对每个i/o排序,再按照排好的顺序下发到底层硬件。

现有技术中至少存在如下问题:存储qos服务层以各卷的单个i/o为粒度排序下发,很容易使不同卷的i/o频繁的交叉排列,进而导致存储系统每处理一次i/o,cpu就需要进行一次切换,cpu每次切换大约需要100ns,所以现有技术中存储qos控制策略的方法降低存储系统的处理效率。



技术实现要素:

本发明的实施例提供一种存储qos控制策略的实现方法及装置,能够解决现有技术中存储qos控制策略以各卷的单个i/o为粒度排序下发,降低存储系统的处理效率的问题。

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

第一方面,本发明的实施例提供一种存储qos控制策略的实现方法,包括:

确定单位时间内处理输入/输出i/o的数量;

当接收到各卷需要下发的i/o消息时,确定当前需要下发i/o所属卷的权重比值;

根据所述权重比值和所述单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;

确定所述i/o下发序列,以便于根据所述i/o下发序列的顺序下发所述当前需要下发的i/o,所述i/o下发序列中属于相同卷的i/o连续排列的个数等于所述数量值。

结合第一方面,在第一方面的第一种实现方式中,所述确定当前需要下发i/o所属卷的权重比值包括:

根据所述当前需要下发i/o所属卷的兆位每秒mbps或每秒进行读写操作的次数iops确定当前需要下发i/o所属卷的权重比值。

结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,在所述确定当前需要下发i/o所属卷的权重比值之前,所述方法还包括:

判断所述当前需要下发i/o所属卷的时延周期是否已经启动,所述时延周期为各卷需要下发的i/o等待排序的时间;

当所述当前需要下发i/o所属卷的时延周期未启动时,启动所述时延周期;

当所述当前需要下发i/o所属卷的时延周期已经启动时,等待所述时延周期结束后,执行所述步骤确定当前需要下发i/o所属卷的权重比值。

结合第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述判断所述当前需要下发i/o所属卷的时延周期是否已经启动包括:

判断是否存在属于所述当前需要下发i/o所属卷且未下发的i/o;

当存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期已经启动;

当不存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期未启动。

第二方面,本发明的实施例提供一种存储qos控制策略的实现装置,包括:

确定单元,用于确定单位时间内处理输入/输出i/o的数量;

所述确定单元还用于当接收到各卷需要下发的i/o消息时,确定当前需要下发i/o所属卷的权重比值;

所述确定单元还用于根据所述权重比值和所述单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;

所述确定单元还用于确定所述i/o下发序列,以便于根据所述i/o下发序列的顺序下发所述当前需要下发的i/o,所述i/o下发序列中属于相同卷的i/o连续排列的个数等于所述数量值。

结合第二方面,在第二方面的第一种实现方式中,所述确定单元具体用于根据所述当前需要下发i/o所属卷的兆位每秒mbps或每秒进行读写操作的次数iops确定当前需要下发i/o所属卷的权重比值。

结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述装置还包括:

判断单元,用于判断所述当前需要下发i/o所属卷的时延周期是否已经启动,所述时延周期为各卷需要下发的i/o等待排序的时间;

启动单元,用于当所述当前需要下发i/o所属卷的时延周期未启动时,启动所述时延周期。

等待单元,用于当所述当前需要下发i/o所属卷的时延周期已经启动时,等待所述时延周期结束后,执行所述步骤确定当前需要下发i/o所属卷的权重比值。

结合第二方面的第二种实现方式,在第二方面的第三种实现方式中,所述判断单元具体用于判断是否存在属于所述当前需要下发i/o所属卷且未下发的i/o;

所述确定单元还用于当存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期已经启动;以及,用于当不存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期未启动。

本发明实施例提供的一种存储qos控制策略的实现方法及装置,本发明中确定单位时间内处理i/o的数量;然后当接收到各卷需要下发的i/o消息时确定当前需要下发i/o所属卷的权重比值,并根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;再确定i/o下发序列,以便于根据i/o下发序列的顺序下发当前需要下发的i/o,/o下发序列中属于相同卷的i/o连续排列的个数等于数量值。如此,本发明中根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的个数,实现以卷为粒度基于时间片进行io的排序下发,从而避免确定的i/o下发序列中不同卷的i/o频繁的交叉排列,进而在下发i/o时减少cpu的切换次数,提升io处理的效率,同时减少切换开销。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明一实施例提供的方法流程图;

图2为本发明又一实施例提供的方法流程图;

图3、图4为本发明又一实施例提供的装置结构示意图;

图5为本发明又一实施例提供的服务器结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。

本发明实施例所述的方法用于存储qos服务层,存储qos服务层的上层与虚拟机的虚拟磁盘vdisk连接,来接收各卷需要下发的i/o消息,下层通过接口与底层硬件连接,来向底层硬件下发通过存储qos控制策略排序后的i/o,以及接收底层硬件的反馈等。

本发明一实施例提供一种存储qos控制策略的实现方法,如图1所示,所述方法包括:

101、确定单位时间内处理i/o的数量。

其中,单位时间内处理i/o的数量可以根据存储系统实际运行状态确定,例如i/o下发速率和i/o读写速率等等,并可以根据存储实际运行状态变化进行适时调整。

102、当接收到各卷需要下发的i/o消息时,确定当前需要下发i/o所属卷的权重比值。

其中,i/o消息中携带i/o的相关信息,例如,i/o所属卷、读或写的地址等。当前需要下发i/o所属卷的权重比值可以根据i/o所属卷的mbps或iops确定,还可以通过可以实现的其他方式确定,在此不做限定。

需要说明的是,步骤101和步骤102可以同时执行,也可以先后执行,执行顺序不做限定。

103、根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值。

104、确定i/o下发序列,以便于根据i/o下发序列的顺序下发当前需要下发的i/o。

其中,i/o下发序列中属于相同卷的i/o连续排列的个数等于数量值。

本发明实施例中确定单位时间内处理i/o的数量;然后当接收到各卷需要下发的i/o消息时确定当前需要下发i/o所属卷的权重比值,并根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;再确定i/o下发序列,以便于根据i/o下发序列的顺序下发当前需要下发的i/o,/o下发序列中属于相同卷的i/o连续排列的个数等于数量值。如此,本发明中根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的个数,实现以卷为粒度基于时间片进行io的排序下发,从而避免确定的i/o下发序列中不同卷的i/o频繁的交叉排列,进而在下发i/o时减少cpu的切换次数,提升io处理的效率,同时减少切换开销。

本发明又一实施例提供一种存储qos控制策略的实现方法,如图2所示,所述方法包括:

201、确定单位时间内处理i/o的数量。

其中,单位时间内处理i/o的数量可以根据存储系统实际运行状态确定,并可以根据存储实际运行状态变化进行适时调整。例如,当前存储系统i/o下发速率和i/o读写速率较高,则确定单位时间内处理i/o的数量为10个,或者当前存储系统i/o下发速率和i/o读写速率较低,则确定单位时间内处理i/o的数量为5个等。

202、当接收到各卷需要下发的i/o消息时,判断是否存在属于当前需要下发i/o所属卷且未下发的i/o,若存在属于当前需要下发i/o所属卷且未下发的i/o,执行步骤204;若不存在属于当前需要下发i/o所属卷且未下发的i/o,执行步骤203。

需要说明的是,i/o消息中携带i/o的相关信息,例如,i/o所属卷、读或写的地址等,根据i/o所属卷可以在存储qos服务层接收多个i/o的情况下,区分出各i/o所属卷,以便于对多个i/o进行排序。时延周期为i/o等待排序的时间。为了避免各卷一次需要下发的i/o数量较少,在排序后不同卷的i/o出现交叉排列频繁的情况,本发明实施例中,在对i/o进行排序时,加入延迟提交机制,即当一个卷的i/o准备下发时,等待预设周期,即时延周期,使在预设周期内卷的i/o到达一定数量后统一排序下发,尽量避免不同卷的i/o交叉排列频繁的情况,从而进一步提升底层硬件i/o合并的效率。

其中,判断是否存在属于当前需要下发i/o所属卷且未下发的i/o是为了判断当前需要下发i/o所属卷的时延周期是否已经启动,当存在属于当前需要下发i/o所属卷且未下发的i/o时,确定当前需要下发i/o所属卷的时延周期已经启动;当不存在属于当前需要下发i/o所属卷且未下发的i/o时,确定当前需要下发i/o所属卷的时延周期未启动。

203、启动当前需要下发i/o所属卷时延周期。

204、等待当前需要下发i/o所属卷时延周期结束。

需要说明的是,执行完步骤203之后,执行步骤204,执行完步骤204之后,执行步骤205。

205、确定时延周期结束的卷,并根据时延周期结束的卷的mbps或iops确定权重比值。

需要说明的是,当前需要下发i/o所属卷的权重比值可以根据i/o所属卷的mbps或iops确定,还可以通过可以实现的其他方式确定,在此不做限定。

需要说明的是,步骤201和步骤202-205的数据处理过程可以同时执行,也可以先后执行,执行顺序不做限定。

206、根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值。

207、根据属于相同卷i/o连续排列的个数确定i/o下发序列。

其中,i/o下发序列中属于相同卷的i/o连续排列的个数等于步骤206中确定的数量值。

例如,有三个卷分别为vol01、vol02和vol03的i/o需要进行排序下发并且三个卷的时延周期已经结束,它们的权重比值为1:1:1,步骤201中计算得出单位时间内处理i/o的数量为3,则步骤207可以确定出i/o下发序列中属于相同卷i/o连续排列的个数为3个,本步骤的出的排序结果应该为:vol01、vol01、vol01、vol02、vol02、vol02、vol03、vol03、vol03。

再例如,vol01、vol02和vol03的i/o需要进行排序下发并且三个卷的时延周期已经结束,它们的权重比值为1:2:3,步骤201中计算得出单位时间内处理i/o的数量为3,则步骤207可以确定出i/o下发序列中属于vol01卷i/o连续排列的个数为3个,属于vol01卷i/o连续排列的个数为6个,属于vol01卷i/o连续排列的个数为9个,本步骤的出的排序结果应该为:vol01、vol01、vol01、vol02、vol02、vol02、vol02、vol02、vol02、vol03、vol03、vol03、vol03、vol03、vol03、vol03、vol03、vol03。

208、根据排列后的顺序下发i/o。

本发明实施例中确定单位时间内处理i/o的数量;然后当接收到各卷需要下发的i/o消息时确定当前需要下发i/o所属卷的权重比值,并根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;再确定i/o下发序列,以便于根据i/o下发序列的顺序下发当前需要下发的i/o,/o下发序列中属于相同卷的i/o连续排列的个数等于数量值。如此,本发明中根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的个数,实现以卷为粒度基于时间片进行io的排序下发,从而避免确定的i/o下发序列中不同卷的i/o频繁的交叉排列,进而在下发i/o时减少cpu的切换次数,提升io处理的效率,同时减少切换开销。

本发明又一实施例提供一种存储qos控制策略的实现装置30,如图3所示,所述装置30包括:

确定单元31,用于确定单位时间内处理输入/输出i/o的数量;

所述确定单元31还用于当接收到各卷需要下发的i/o消息时,确定当前需要下发i/o所属卷的权重比值;

所述确定单元31还用于根据所述权重比值和所述单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的个数;

所述确定单元31还用于确定所述i/o下发序列,以便于根据所述i/o下发序列的顺序下发所述当前需要下发的i/o,所述i/o下发序列中属于相同卷的i/o连续排列的个数等于所述数量值。

进一步的,所述确定单元31具体用于根据所述当前需要下发i/o所属卷的兆位每秒mbps或每秒进行读写操作的次数iops确定当前需要下发i/o所属卷的权重比值。

进一步的,如图4所示,所述装置30还可以包括:

判断单元32,用于判断所述当前需要下发i/o所属卷的时延周期是否已经启动,所述时延周期为各卷需要下发的i/o等待排序的时间;

启动单元33,用于当所述当前需要下发i/o所属卷的时延周期未启动时,启动所述时延周期;

等待单元34,用于当所述当前需要下发i/o所属卷的时延周期已经启动时,等待所述时延周期结束后,执行所述步骤确定当前需要下发i/o所属卷的权重比值。

进一步的,所述判断单元32具体用于判断是否存在属于所述当前需要下发i/o所属卷且未下发的i/o;

所述确定单元31还用于当存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期已经启动;以及,用于当不存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期未启动。

本发明实施例中确定单位时间内处理i/o的数量;然后当接收到各卷需要下发的i/o消息时确定当前需要下发i/o所属卷的权重比值,并根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;再确定i/o下发序列,以便于根据i/o下发序列的顺序下发当前需要下发的i/o,/o下发序列中属于相同卷的i/o连续排列的个数等于数量值。如此,本发明中根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的个数,实现以卷为粒度基于时间片进行io的排序下发,从而避免确定的i/o下发序列中不同卷的i/o频繁的交叉排列,进而在下发i/o时减少cpu的切换次数,提升io处理的效率,同时减少切换开销。

本发明又一实施例提供一种服务器40,所述服务器用于存储qos控制策略的实现方法,如图5所示,所述服务器40包括处理器41和接口电路42,图5中还示出了存储器43和总线44,该处理器41、接口电路42和存储器43通过总线44连接并完成相互间的通信。

需要说明的是,这里的处理器41可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsingnalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。

存储器43可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器43可以包括随机存储器(ram),也可以包括非易失性存储器(non-volatilememory),例如磁盘存储器,闪存(flash)等。

总线44可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。该总线44可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

其中,处理器41调用存储器43中的程序代码,用于执行以上方法实施例中存储qos服务层执行的操作。

具体的,所述处理器41用于确定单位时间内处理输入/输出i/o的数量;以及,用于当接收到各卷需要下发的i/o消息时,确定当前需要下发i/o所属卷的权重比值;以及,用于根据所述权重比值和所述单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;以及,用于确定所述i/o下发序列,以便于根据所述i/o下发序列的顺序通过接口电路42下发所述当前需要下发的i/o,所述i/o下发序列中属于相同卷的i/o连续排列的个数等于所述数量值。

进一步的,所述处理器41还用于根据所述当前需要下发i/o所属卷的兆位每秒mbps或每秒进行读写操作的次数iops确定当前需要下发i/o所属卷的权重比值。

进一步的,所述处理器41还用于判断所述当前需要下发i/o所属卷的时延周期是否已经启动,所述时延周期为各卷需要下发的i/o等待排序的时间;以及,用于当所述当前需要下发i/o所属卷的时延周期未启动时,启动所述时延周期;以及,用于当所述当前需要下发i/o所属卷的时延周期已经启动时,等待所述时延周期结束后,执行所述步骤确定当前需要下发i/o所属卷的权重比值。

进一步的,所述处理器41还用于判断是否存在属于所述当前需要下发i/o所属卷且未下发的i/o;以及,用于当存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期已经启动;以及,用于当不存在属于所述当前需要下发i/o所属卷且未下发的i/o时,确定所述时延周期未启动。

本发明实施例中确定单位时间内处理i/o的数量;然后当接收到各卷需要下发的i/o消息时确定当前需要下发i/o所属卷的权重比值,并根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的数量值;再确定i/o下发序列,以便于根据i/o下发序列的顺序下发当前需要下发的i/o,/o下发序列中属于相同卷的i/o连续排列的个数等于数量值。如此,本发明中根据权重比值和单位时间内处理i/o的数量确定i/o下发序列中属于相同卷i/o连续排列的个数,实现以卷为粒度基于时间片进行io的排序下发,从而避免确定的i/o下发序列中不同卷的i/o频繁的交叉排列,进而在下发i/o时减少cpu的切换次数,提升io处理的效率,同时减少切换开销。

本发明实施例提供的存储qos控制策略的实现装置可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的存储qos控制策略的实现方法及装置可以适用于存储qos服务层,但不仅限于此。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

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

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