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

一种支持IOPS突发的方法、装置、电子设备及可读存储介质与流程

2023-01-04 18:05:51 来源:中国专利 TAG:

一种支持iops突发的方法、装置、电子设备及可读存储介质
技术领域
1.本发明实施例涉及存储技术领域,特别是涉及一种支持iops突发的方法、一种支持iops突发的装置、一种电子设备以及一种计算机可读存储介质。


背景技术:

2.在传统端到端网络通信中,传统的ip(internet protocol 网际互连协议)网络不会区别对待所有报文,同时,网络设备处理报文采用的策略是先进先出,它依据报文到达时间的先后顺序分配转发所需要的资源,并且所有的报文共享网络和设备的带宽等资源。这样就会导致网络发生拥塞时,一些关键业务的通信质量得不到保障,进而影响客户体验,因此需要网络qos(quality of service 服务质量)来解决这个问题。另外,存储qos与网络qos类似,存储qos确保特定应用程序或工作负载始终能够获得特定的性能级别,对于存储集群,此级别通常表示为iops(input/output operations per second 每秒进行读写操作的次数),iops可以为不同的应用分配不同级别qos的卷,从而通过为不同的卷限流来指定优先级别,进而确保在当前存储固定处理能力、固定带宽等条件下,高优先级的应用能够获得更好的读写性能。
3.在存储集群中,同样经常遇到i/o(input/output 输入/输出)风暴的问题。一般关系型数据库(relational database)所产生的 iops 峰值都是很尖的凸起,数据库加载和表扫描需要的就是一个峰值形态的数据吞吐操作,在启动虚拟机时,也会产生i/o风暴,其中i/o风暴发生时伴随的现象有:在短时间内,只有少量存储卷会产生i/o风暴;i/o风暴的持续时间不长;在大部分情况下,整个存储集群的负载不高,因此如何解决i/o风暴和限流之间的矛盾,成为存储技术人员需要解决的一个问题。


技术实现要素:

4.本发明实施例是提供一种支持iops突发的方法、装置、电子设备以及计算机可读存储介质,以解决i/o风暴和限流之间的矛盾的问题。
5.本发明实施例公开了一种支持iops突发的方法,应用于存储集群,所述存储集群包括一个或多个存储卷和令牌桶,所述令牌桶内有令牌,所述令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,所述存储卷主桶用于控制所述存储卷的最大iops,所述存储卷突发容量桶用于控制所述存储卷的iops突发时长,所述存储卷突发速率桶用于控制所述存储卷的iops突发速率,所述方法包括:响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量;计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量;根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态;
所述i/o的状态用于反映iops的状态;根据所述i/o的状态,对所述i/o进行相应处理。
6.可选地,在所述响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量之前,还包括:获取所述存储集群的配置和规模;根据所述存储集群的配置和规模,得到所述存储集群的i/o总处理能力;其中,所述存储集群的i/o总处理能力为基于所述令牌桶内的令牌数表示;当所述存储集群的所述i/o总处理能力所对应的令牌数大于或等于在所述存储集群中创建所述存储卷所需要的预设令牌数值时,在所述存储集群中创建存储卷;当所述存储集群的所述i/o总处理能力所对应的令牌数小于在所述存储集群中创建所述存储卷所需要的预设令牌数值时,禁止在所述存储集群中创建存储卷。
7.可选地,所述存储集群的所述i/o总处理能力包括最大iops处理能力和突发iops处理能力,其中,所述最大iops处理能力和所述突发iops处理能力所对应的令牌数由所述i/o总处理能力所分配。
8.可选地,还包括:当在所述存储集群中创建所述存储卷时,设置所述存储卷的最大iops和突发iops。
9.可选地,所述存储卷的最大iops和突发iops对应消耗所述存储集群的最大iops处理能力和突发iops处理能力所对应的令牌数。
10.可选地,所述令牌桶内的令牌数为所述令牌桶的容量,所述存储卷主桶的容量对应为所述存储卷主桶内的令牌数,所述存储卷突发容量桶的容量对应为所述存储卷突发容量桶内的令牌数,以及,所述存储卷突发速率桶的容量对应为所述存储卷突发速率桶内的令牌数。
11.可选地,所述预设令牌流入桶速率包括预设令牌流入主桶速率,所述计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量,包括:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;根据所述时间差与所述预设令牌流入主桶速率,更新所述存储卷主桶的容量;其中,所述存储卷主桶的容量为所述时间差与所述预设令牌流入主桶速率的乘积。
12.可选地,所述预设令牌流入桶速率包括预设令牌流入突发桶速率,所述计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量,包括:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;
根据所述时间差与所述预设令牌流入突发桶速率,更新所述存储卷突发速率桶的容量;其中,所述存储卷突发速率桶的容量为所述时间差与所述预设令牌流入突发桶速率的乘积。
13.可选地,所述存储卷突发容量桶设置有桶容量恢复定时器,包括:当发生所述i/o读写操作的i/o数量小于或等于所述存储卷主桶的容量,消耗所述存储卷主桶内的令牌数时,若所述存储卷突发容量桶的桶容量恢复定时器未启动,则启动所述桶容量恢复定时器;当所述i/o发生突发的突发时间间隔达到预设突发间隔时长时,将所述存储卷突发容量桶的容量状态更新为满桶状态,并且停止使用所述桶容量恢复定时器。
14.可选地,所述存储卷突发容量桶设置有桶容量清空定时器,包括:当发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量,并且小于所述存储卷突发容量桶的容量和所述存储卷突发速率桶的容量,消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数时,若所述存储卷突发容量桶的桶容量清空定时器未启动,则启动所述桶容量清空定时器;当所述i/o发生突发的突发时长达到预设突发时长时,将所述存储卷突发容量桶的容量状态更新为空桶状态,并且停止使用所述桶容量清空定时器。
15.可选地,还包括:若所述存储卷发生i/o读写操作,则消耗所述令牌桶内的令牌;其中,所述令牌桶消耗的令牌数和所述i/o读写操作的i/o数量相同。
16.可选地,所述根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态,包括:若发生所述i/o读写操作的i/o数量小于或等于所述存储卷主桶的容量,则消耗所述存储卷主桶内的令牌数;其中,所述存储卷主桶消耗的令牌数和所述i/o读写操作的i/o数量相同;当消耗所述存储卷主桶的令牌数为所述i/o数量,并且所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为正常i/o。
17.可选地,所述根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态,包括:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量,并且小于所述存储卷突发容量桶的容量和所述存储卷突发速率桶的容量,则消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数;其中,所述存储卷突发容量桶消耗的令牌数、所述存储卷突发速率桶消耗的令牌数均和所述i/o读写操作的i/o数量相同;当消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均为所述i/o数量,并且所述存储卷主桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为突发i/o。
18.可选地,所述根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突
发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态,包括:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量,则不满足所述i/o进行读写操作的条件;当消耗所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数以及所述存储卷突发速率桶的令牌数均为零时,则所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均保持不变,确定所述i/o读写操作中i/o的状态为超过突发限制的i/o。
19.可选地,所述根据所述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进行拆分。
20.可选地,还包括:采用指定颜色分别对不同的状态下的i/o进行标记;其中,所述正常i/o为采用绿色进行标记,所述突发i/o为采用黄色进行标记,所述超过突发限制的i/o为采用红色进行标记。
21.可选地,在所述当所述i/o读写操作中i/o的状态为超过突发限制的i/o时,对所述超过突发限制的i/o进行拆分之后,所述方法还包括:在对所述超过突发限制的i/o进行拆分后,得到新i/o;将所述新i/o作为i/o,并返回执行所述响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量的步骤。
22.本发明实施例还公开了一种支持iops突发的装置,应用于存储集群,所述存储集群包括一个或多个存储卷和令牌桶,所述令牌桶内有令牌,所述令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,所述存储卷主桶用于控制所述存储卷的最大iops,所述存储卷突发容量桶用于控制所述存储卷的iops突发时长,所述存储卷突发速率桶用于控制所述存储卷的iops突发速率,所述装置包括:数据记录模块,用于响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量;容量更新模块,用于计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量;i/o状态确定模块,用于根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态;所述i/o的状态用于反映iops的状态;i/o处理模块,用于根据所述i/o的状态,对所述i/o进行相应处理。
23.可选地,所述预设令牌流入桶速率包括预设令牌流入主桶速率,所述容量更新模块具体用于:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读
写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;根据所述时间差与所述预设令牌流入主桶速率,更新所述存储卷主桶的容量;其中,所述存储卷主桶的容量为所述时间差与所述预设令牌流入主桶速率的乘积。
24.可选地,所述预设令牌流入桶速率包括预设令牌流入突发桶速率,所述容量更新模块具体用于:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;根据所述时间差与所述预设令牌流入突发桶速率,更新所述存储卷突发速率桶的容量;其中,所述存储卷突发速率桶的容量为所述时间差与所述预设令牌流入突发桶速率的乘积。
25.可选地,所述i/o状态确定模块具体用于:若发生所述i/o读写操作的i/o数量小于或等于所述存储卷主桶的容量,则消耗所述存储卷主桶内的令牌数;其中,所述存储卷主桶消耗的令牌数和所述i/o读写操作的i/o数量相同;当消耗所述存储卷主桶的令牌数为所述i/o数量,并且所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为正常i/o。
26.可选地,所述i/o状态确定模块具体用于:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量,并且小于所述存储卷突发容量桶的容量和所述存储卷突发速率桶的容量,则消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数;其中,所述存储卷突发容量桶消耗的令牌数、所述存储卷突发速率桶消耗的令牌数均和所述i/o读写操作的i/o数量相同;当消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均为所述i/o数量,并且所述存储卷主桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为突发i/o。
27.可选地,所述i/o状态确定模块具体用于:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量,则不满足所述i/o进行读写操作的条件;当消耗所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数以及所述存储卷突发速率桶的令牌数均为零时,则所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均保持不变,确定所述i/o读写操作中i/o的状态为超过突发限制的i/o。
28.可选地,所述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进行拆分。
29.本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
30.本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
31.本发明实施例包括以下优点:在本发明实施例中,应用于存储集群,存储集群包括一个或多个存储卷和令牌桶,令牌桶内有令牌,令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,其中,存储卷主桶用于控制存储卷的最大iops,存储卷突发容量桶用于控制存储卷的iops突发时长,存储卷突发速率桶用于控制存储卷的iops突发速率,响应于针对各个存储卷的i/o读写操作,记录i/o读写操作的当前i/o读写时间和i/o数量,接着计算当前i/o读写时间和上一次i/o读写时间的时间差,并根据时间差与预设令牌流入桶速率,更新存储卷主桶的容量和存储卷突发速率桶的容量,然后,根据i/o数量和更新后的存储卷主桶的容量、存储卷突发容量桶的容量以及存储卷突发速率桶的容量的大小关系,确定i/o读写操作中i/o的状态,其中,i/o的状态用于反映iops的状态,最后根据i/o的状态,对i/o进行相应处理。本发明实施例通过存储卷主桶控制存储卷的最大iops,存储卷突发容量桶控制存储卷的iops突发时长,存储卷突发速率桶控制存储卷的iops突发速率,能够进一步地控制存储卷业务iops的上限、存储卷业务iops过量突发时的速率、持续时间和间隔时间,以及,通过存储卷主桶、存储卷突发容量桶和存储卷突发速率桶之间的相互作用和协调,判断i/o的状态并进行相应地处理,有效地完善了i/o的处理策略,保证了各存储卷之间的资源隔离、互不影响。
32.此外,本发明实施例在存储集群创建存储卷时,通过设置存储集群最大iops处理能力以及突发iops处理能力,能够控制存储集群在创建存储卷时不超出存储集群支持能力,保证了所有存储卷负载不会超出存储集群的负荷。
附图说明
33.图1是本发明实施例中提供的一种支持iops突发的方法的步骤流程图;图2是本发明实施例中提供的存储集群处理能力管理示意图;图3本发明实施例中提供的令牌桶和双定时器的处理流程示意图;图4本发明实施例中提供的存储卷i/o处理的流程示意图;图5是本发明实施例中提供的一种支持iops突发的装置的结构框图;图6是本发明实施例中提供的一种计算机可读存储介质的结构示意图;图7是实现本发明各个实施例的一种电子设备的硬件结构示意图。
具体实施方式
34.为了使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
35.为了使本领域技术人员更好地理解本发明实施例的技术方案,下面对本发明实施例中涉及的部分技术特征进行解释、说明:iops(input/output operations per second 每秒进行读写i/o操作的次数),是一个用于计算机存储设备(如硬盘(hard disk drive 简称“hdd”)、固态硬盘(solid state drives 简称“ssd”)或存储区域网络(san))性能测试的量测方式,多用于数据库等场合,衡量随机访问的性能。
36.qos(quality of service 服务质量),根据不同服务类型的不同需求提供端到端的服务质量。
37.存储qos,在保障服务带宽与iops的情况下,合理分配存储资源,有效缓解或控制应用服务对资源的抢占,实现流量监控、资源合理分配、重要服务质量保证以及内部流量规避等效果,是存储领域必不可少的一项关键技术。
38.在具体实现中,为了解决i/o风暴和限流之间的矛盾,需要在短时间内,使每个存储卷的iops可以超过qos的限制,以便应付i/o风暴;从长时间来看,每个存储卷的平均iops和平均吞吐率仍然需要被限制,以达到限流的目的。因此存储卷支持突发iops的需求就应运而生,在现有技术中,常见的qos限流方法有固定窗口法、滑动窗口法、令牌桶法。下面对这些技术进行简要介绍。
39.1、固定窗口法固定窗口法是一种较为简单的限流算法,其原理为:在一段时间间隔内,对请求进行计数,并与阈值进行比较从而判断是否需要限流,一旦到了预设时间临界点,将计数器清零。该算法易于理解,实现简单;缺点是流量控制不够精细,容易出现流量翻倍的情况;适合流量平缓并允许流量翻倍的模型。
40.2、滑动窗口法滑动窗口法是固定窗口法的升级版本,其可以规避固定窗口法导致的流量翻倍问题。其原理为:时间窗口被细分若干个小区间,如之前一秒一个窗口(最大允许通过60个请求),现在一秒分成3个小区间,每个小区间最大允许通过20个请求;每个区间都有一个独立的计数器,可以理解一个区间为固定窗口法中的一个限流窗口。该算法对于流量控制更加精准,解决了固定窗口法导致的流量翻倍问题;缺点是区间划分粒度不易确定,粒度太小会增加计算资源,粒度太大又会导致整体流量曲线不够平滑,使得系统负载忽高忽低;适合流量较为稳定,没有大量流量突增的模型。
41.3、令牌桶算法有一个固定的令牌桶,令牌桶里存放着令牌(token)。其原理为:起始令牌桶是空的,系统按固定的速率(rate)往令牌桶里添加令牌,直至令牌装满令牌桶,则多余的请求会被丢弃;当发生请求时,从令牌桶内移除一个令牌,如果令牌桶是空的则拒绝请求或者阻塞。令牌桶的特点有:令牌按固定的速率被放入令牌桶中;令牌桶中最多存放b(假设值)个令牌,当令牌桶为满桶状态时,新添加的令牌被丢弃或拒绝;如果令牌桶中的令牌不足 n (假设值)个,则不会删除令牌,且请求将被限流(丢弃或阻塞)。
42.作为一种示例,当网络发生拥塞时,一些关键业务的通信质量得不到保障,进而影响客户体验,因此需要网络qos来解决这个问题。另外,存储qos与网络qos类似,存储qos确保特定应用程序或工作负载始终能够获得特定的性能级别,对于存储集群,此级别通常表示为iops,iops可以为不同的应用分配不同级别qos的卷,从而通过为不同的卷限流来指定优先级别,进而确保在当前存储固定处理能力、固定带宽等条件下,高优先级的应用能够获得更好的读写性能。在存储集群中,同样经常遇到i/o风暴的问题。一般关系型数据库所产生的 iops 峰值都是很尖的凸起,数据库加载和表扫描需要的就是一个峰值形态的数据吞吐操作,在启动虚拟机时,也会产生i/o风暴。如何解决i/o风暴和限流之间的矛盾,成为存储技术人员需要解决的一个问题。
43.对此,本发明的核心发明点之一在于应用于存储集群,存储集群包括一个或多个存储卷和令牌桶,令牌桶内有令牌,令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,其中,存储卷主桶用于控制存储卷的最大iops,存储卷突发容量桶用于控制存储卷的iops突发时长,存储卷突发速率桶用于控制存储卷的iops突发速率,响应于针对各个存储卷的i/o读写操作,记录i/o读写操作的当前i/o读写时间和i/o数量,接着计算当前i/o读写时间和上一次i/o读写时间的时间差,并根据时间差与预设令牌流入桶速率,更新存储卷主桶的容量和存储卷突发速率桶的容量,然后,根据i/o数量和更新后的存储卷主桶的容量、存储卷突发容量桶的容量以及存储卷突发速率桶的容量的大小关系,确定i/o读写操作中i/o的状态,其中,i/o的状态用于反映iops的状态,最后根据i/o的状态,对i/o进行相应处理。本发明实施例通过存储卷主桶控制存储卷的最大iops,存储卷突发容量桶控制存储卷的iops突发时长,存储卷突发速率桶控制存储卷的iops突发速率,能够进一步地控制存储卷业务iops的上限、存储卷业务iops过量突发时的速率、持续时间和间隔时间,以及,通过存储卷主桶、存储卷突发容量桶和存储卷突发速率桶之间的相互作用和协调,判断i/o的状态并进行相应地处理,有效地完善了i/o的处理策略,保证了各存储卷之间的资源隔离、互不影响。此外,本发明实施例在存储集群创建存储卷时,通过设置存储集群最大iops处理能力以及突发iops处理能力,能够控制存储集群在创建存储卷时不超出存储集群支持能力,保证了所有存储卷负载不会超出存储集群的负荷。
44.参照图1,示出了本发明实施例中提供的一种支持iops突发的方法的步骤流程图,应用于存储集群,所述存储集群包括一个或多个存储卷和令牌桶,所述令牌桶内有令牌,所述令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,所述存储卷主桶用于控制所述存储卷的最大iops,所述存储卷突发容量桶用于控制所述存储卷的iops突发时长,所述存储卷突发速率桶用于控制所述存储卷的iops突发速率,具体可以包括如下步骤:步骤101,响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量;对于存储卷,其位于存储集群上,一个存储集群可以包含一个或多个存储卷;对于存储集群,一个存储集群上可以携带多个物理磁盘,基于物理磁盘,存储集群可以创建逻辑的空间概念,比如创建池、存储卷等;其中,对于i/o读写操作,其为针对各个存储卷所发生的i/o读写操作。
45.其中,对于存储卷的最大iops,其为存储卷允许每秒读写i/o的个数,可以在创建存储卷时所设置;对于存储卷的iops突发时长,其可以为存储卷允许每秒读写i/o的个数超
过固定平均值后突发的持续时间;对于存储卷的iops突发速率,其可以为存储卷允许每秒读写i/o的个数超过固定平均值后所允许突发的最大的突发速率,由于存储卷允许每秒读写i/o的个数可以与突发速率成正比,即存储卷的iops突发速率也可以表示为存储卷允许每秒读写i/o的个数超过固定平均值后允许突发的最大的突发值;其中,对于固定平均值,其可以为针对存储卷的最大iops所限制的一个固定平均值,即客户端业务应用对存储卷的i/o读写每秒不允许超过该值,但是在i/o风暴的情况下,应用存在瞬时i/o读写每秒会超过该固定平均值的情况,因此引入突发iops,即在对iops限制的同时,客户端业务应用允许出现波动超过该固定平均值的情况,同时,允许出现的波动不能一直超过该固定平均值,因此引入存储卷的iops突发时长和存储卷的iops突发速率,以保证不能无限制地超过固定平均值。
46.对于令牌桶,令牌桶内存放着令牌,初始的令牌桶为空桶状态,系统按固定的速率往令牌桶内添加令牌,直至令牌桶为满桶状态,则新加入的令牌会被丢弃,当发生i/o请求时,消耗令牌桶内对应的令牌,若令牌桶内没有足够的令牌或者是空桶状态则拒绝i/o请求或者阻塞,其中,令牌桶允许突发,但是不能超过突发限制;其中,令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶;对于存储卷主桶,其用于控制存储卷的最大iops;对于存储卷突发容量桶,其用于控制存储卷的iops突发时长,对于存储卷突发速率桶,其用于控制存储卷的iops突发速率。
47.对于当前i/o读写时间,其为发生i/o读写时的实时时间,以便系统监控i/o每次发生读写操作时的时长以及与上一次发生i/o读写时的时间差;对于i/o的数量,其为在存储卷上发生i/o时所对应的数量,根据i/o的数量,有利于后续判断i/o的状态。
48.在具体实现中,当发生各个存储卷的i/o读写操作时,对当前的i/o读写时间进行记录,有利于监控i/o每次发生读写操作时的时长以及与上一次或下一次发生i/o读写时的时间差,为此能够更好地制定i/o处理策略,同时,记录当前发生i/o时所对应的i/o数量,对后续判断i/o的状态提供了帮助。
49.步骤102,计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量;对于时间差,其为当前i/o读写时间和上一次i/o读写时间的间隔时长;对于预设令牌流入桶速率,其为预设的恒定速率;可选地,令牌以预设的恒定速率流入令牌桶内,以便计算令牌桶内的令牌数,从而更新令牌桶的容量。
50.对于存储卷主桶的容量,其为存储卷瞬间允许的最大iops的上限,可以对应为存储卷主桶内的令牌数;对于存储卷突发速率桶的容量,其可以对应为存储卷突发速率桶内的令牌数。
51.在具体实现中,当发生存储卷的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读写时间之间的时间间隔,有利于控制存储卷的iops突发时长。
52.步骤103,根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态;所述i/o的状态用于反映iops的状态;对于存储卷突发速率桶,其可以用于控制存储卷的iops突发速率,即可以用于限制i/o突发时的最大io速率;对于i/o的状态,其可以为正常i/o、突发i/o以及超过突发限制的i/o,从而可以根据i/o的不同状态对i/o进行不同的处理。
53.其中,对于iops的状态,其可以由i/o的状态反映,具体地,若某存储设备或某应用程序在一段时间内被接收或者发送的iops保持相对稳定或恒定,则为正常i/o;同理可得,若单位时间内的iops突然猛增并在突发限制范围内,则为突发i/o;若单位时间内的iops突然猛增并超过突发限制范围,则为超过突发限制的i/o。
54.在具体实现中,当发生存储卷的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的状态可以用于反映iops的状态。通过确定i/o读写操作中i/o的状态,能够有针对性地对不同类型的i/o进行不同的处理,制定更完善的i/o处理策略,进而使存储卷满足i/o风暴场景突发吞吐量的需要,还能够达到存储卷限流及各存储卷之间的互相隔离、互不影响。
55.步骤104,根据所述i/o的状态,对所述i/o进行相应处理。
56.对于i/o的状态,其可以为正常i/o、突发i/o或超过突发限制的i/o,对于处理,其可以包括正常读写和拆分。
57.在具体实现中,对正常i/o和突发i/o进行正常读写,对超过突发限制的i/o进行拆分处理,并且超过突发限制的i/o在拆分后生成新的i/o,新的i/o需要进行重新排队和等待,直至能够进行正常读写,有效地完善了i/o的处理策略,并能够实现存储卷限流及各存储卷之间的互相隔离、互不影响。
58.在本发明实施例中,应用于存储集群,存储集群包括一个或多个存储卷和令牌桶,令牌桶内有令牌,令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,其中,存储卷主桶用于控制存储卷的最大iops,存储卷突发容量桶用于控制存储卷的iops突发时长,存储卷突发速率桶用于控制存储卷的iops突发速率,响应于针对各个存储卷的i/o读写操作,记录i/o读写操作的当前i/o读写时间和i/o数量,接着计算当前i/o读写时间和上一次i/o读写时间的时间差,并根据时间差与预设令牌流入桶速率,更新存储卷主桶的容量和存储卷突发速率桶的容量,然后,根据i/o数量和更新后的存储卷主桶的容量、存储卷突发容量桶的容量以及存储卷突发速率桶的容量的大小关系,确定i/o读写操作中i/o的状态,其中,i/o的状态用于反映iops的状态,最后根据i/o的状态,对i/o进行相应处理。本发明实
施例通过存储卷主桶控制存储卷的最大iops,存储卷突发容量桶控制存储卷的iops突发时长,存储卷突发速率桶控制存储卷的iops突发速率,能够进一步地控制存储卷业务iops的上限、存储卷业务iops过量突发时的速率、持续时间和间隔时间,以及,通过存储卷主桶、存储卷突发容量桶和存储卷突发速率桶之间的相互作用和协调,判断i/o的状态并进行相应地处理,有效地完善了i/o的处理策略,保证了各存储卷之间的资源隔离、互不影响。
59.在本发明的一种可选实施例中,在所述步骤101、响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量之前,还包括:获取所述存储集群的配置和规模;根据所述存储集群的配置和规模,得到所述存储集群的i/o总处理能力;其中,所述存储集群的i/o总处理能力为基于所述令牌桶内的令牌数表示;当所述存储集群的所述i/o总处理能力所对应的令牌数大于或等于在所述存储集群中创建所述存储卷所需要的预设令牌数值时,在所述存储集群中创建存储卷;当所述存储集群的所述i/o总处理能力所对应的令牌数小于在所述存储集群中创建所述存储卷所需要的预设令牌数值时,禁止在所述存储集群中创建存储卷。
60.对于存储集群,其为将多台存储设备中的存储空间聚合成一个能够给应用服务器提供统一访问接口和管理界面的存储池;对于存储卷,其由存储集群所创建;对于预设令牌数值,其为存储集群创建存储卷的预设条件。
61.对于存储集群的i/o总处理能力,其为基于令牌桶内的令牌数表示,存储集群的总处理能力包括最大iops处理能力和突发iops处理能力,其中,最大iops处理能力和突发iops处理能力所对应的令牌数由i/o总处理能力所分配。
62.参照图2,示出了本发明实施例中提供的存储集群处理能力管理示意图,在存储集群部署完成后,根据存储集群的配置和规模,评估得到存储集群的i/o总处理能力,其中,存储集群的i/o总处理能力为基于令牌桶内的令牌数表示(图2中表示为总处理能力令牌数),在创建存储集群的i/o总处理能力时,设置存储集群的最大iops处理能力和突发iops处理能力,其中,最大iops处理能力和突发iops处理能力所对应的令牌数由i/o总处理能力所分配,如图中所示,i/o总处理能力所对应的令牌数分配给最大iops处理能力和突发iops处理能力,当最大iops处理能力和突发iops处理能力得到对应的令牌数后,结束存储集群能力分配的过程;另外,存储卷由存储集群所创建,当存储集群创建存储卷时,设置存储卷的最大iops和存储卷的突发iops,存储卷的最大iops和突发iops所对应的令牌数从存储集群的i/o总处理能力中获取,具体地,存储卷的最大iops和突发iops分别对应消耗存储集群的最大iops处理能力和突发iops处理能力所对应的令牌数。在存储集群中创建存储卷时,根据存储卷的最大iops和突发iops消耗集群最大iops处理能力和突发iops处理能力所对应的令牌数,当存储卷将存储集群的最大iops处理能力或突发iops处理能力所对应的令牌数耗尽时,则表示存储集群中的存储卷在最大负载情况下将达到存储集群的性能极限,通过设置存储集群最大iops处理能力及突发iops处理能力,能够控制存储集群创建存储卷时不超出存储集群的支持能力,保证了所有存储卷负载不会超出存储集群的负荷。
63.在本发明实施例中,在存储集群部署完成后,根据存储集群的配置和规模得到存储集群的i/o总处理能力,其中,存储集群的i/o总处理能力为基于令牌桶内的令牌数表示,当存储集群的i/o总处理能力所对应的令牌数大于或等于在存储集群中创建存储卷所需要
的预设令牌数值时,在存储集群中创建存储卷,当存储集群的i/o总处理能力所对应的令牌数小于在存储集群中创建存储卷所需要的预设令牌数值时,禁止在存储集群中创建存储卷。在存储集群创建存储卷时,通过设置存储集群最大iops处理能力以及突发iops处理能力,能够控制存储集群在创建存储卷时不超出存储集群的支持能力,保证了所有存储卷负载不会超出存储集群的负荷。
64.在本发明的一种可选实施例中,所述预设令牌流入桶速率包括预设令牌流入主桶速率,所述步骤102、计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量,包括:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;根据所述时间差与所述预设令牌流入主桶速率,更新所述存储卷主桶的容量;其中,所述存储卷主桶的容量为所述时间差与所述预设令牌流入主桶速率的乘积。
65.对于预设令牌流入主桶速率,其为令牌添加至存储卷主桶的预设恒定速率,以便更好地监控与管理存储卷主桶的容量;对于存储卷主桶的容量,其对应为存储卷主桶内的令牌数。
66.在具体实现中,响应于针对各个存储卷的i/o读写操作,得到当前发生i/o读写操作的当前i/o读写时间,根据当前i/o读写时间和上一次i/o读写时间,计算当前i/o读写时间和上一次i/o读写时间的时间差,然后根据时间差与预设令牌流入主桶速率,更新存储卷主桶的容量,其中,存储卷主桶的容量为时间差与预设令牌流入主桶速率的乘积。通过计算当前i/o读写时间和上一次i/o读写时间的时间差,并根据时间差和预设令牌流入主桶速率之间的关系,能够快速且有效地更新存储卷主桶的容量。
67.参照图3,示出了本发明实施例中提供的令牌桶和双定时器的处理流程示意图,当发生i/o读写操作时,记录当前发生i/o读写操作的当前i/o读写时间,计算当前i/o读写时间和上一次i/o读写时间的时间差,假设存储卷主桶的容量为cvm,预设令牌流入主桶速率为svm,其中,svm为存储卷最大iops的限制大小,当前i/o读写时间和上一次i/o读写时间的时间差为t,则可以根据时间差、预设令牌流入主桶速率以及存储卷主桶的容量之间的关系,得到存储卷主桶的容量并对存储卷主桶的容量进行更新,具体地,存储卷主桶的容量cvm为时间差t与预设令牌流入主桶速率svm的乘积,即cvm=scm*t。
68.在本发明的一种可选实施例中,所述预设令牌流入桶速率包括预设令牌流入突发桶速率,所述步骤102、计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量,包括:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;
根据所述时间差与所述预设令牌流入突发桶速率,更新所述存储卷突发速率桶的容量;其中,所述存储卷突发速率桶的容量为所述时间差与所述预设令牌流入突发桶速率的乘积。
69.对于预设令牌流入突发桶速率,其为令牌添加至存储卷突发速率桶的预设恒定速率,以便更好地监控与管理存储卷突发速率桶的容量;对于存储卷突发速率桶的容量,其对应为存储卷突发速率桶内的令牌数。
70.在具体实现中,响应于针对各个存储卷的i/o读写操作,得到当前发生i/o读写操作的当前i/o读写时间,根据当前i/o读写时间和上一次i/o读写时间,计算当前i/o读写时间和上一次i/o读写时间的时间差,然后根据时间差与预设令牌流入突发桶速率,更新存储卷突发速率桶的容量,其中,存储卷突发速率桶为时间差与预设令牌流入突发桶速率的乘积。通过计算当前i/o读写时间和上一次i/o读写时间的时间差,并根据时间差和预设令牌流入突发桶速率之间的关系,能够快速且有效地更新存储卷突发速率桶的容量。
71.参照图3,示出了本发明实施例中提供的令牌桶和双定时器的处理流程示意图,当发生i/o读写操作时,记录当前发生i/o读写操作的当前i/o读写时间,计算当前i/o读写时间和上一次i/o读写时间的时间差,假设存储卷突发速率桶的容量为cvsb,预设令牌流入突发桶速率为svsb,其中,svsb为存储卷突发iops的限制大小,预设令牌流入突发桶速率svsb大于上述预设令牌流入主桶速率svm,当前i/o读写时间和上一次i/o读写时间的时间差为t,则可以根据时间差、预设令牌流入突发桶速率以及存储卷突发速率桶的容量之间的关系,得到存储卷突发速率桶的容量并对存储卷突发速率桶的容量进行更新,存储卷突发速率桶的容量cvsb为时间差t与预设令牌流入突发桶速率svsb的乘积,即cvsb=svsb*t。
72.值得一提的是,假设存储卷突发容量桶的容量为cvcb,则存储卷突发容量桶的容量cvcb同为时间差t与预设令牌流入突发桶速率svsb的乘积,即cvcb=svsb*t。
73.在本发明的一种可选实施例中,所述存储卷突发容量桶设置有桶容量恢复定时器,包括:当发生所述i/o读写操作的i/o数量小于或等于所述存储卷主桶的容量,消耗所述存储卷主桶内的令牌数时,若所述存储卷突发容量桶的桶容量恢复定时器未启动,则启动所述桶容量恢复定时器;当所述i/o发生突发的突发时间间隔达到预设突发间隔时长时,将所述存储卷突发容量桶的容量状态更新为满桶状态,并且停止使用所述桶容量恢复定时器。
74.对于桶容量恢复定时器,其可以用于计时,具体地,当i/o发生突发的突发时间间隔达到预设突发间隔时长时,将存储卷突发容量桶的容量状态更新为满桶状态,即用于控制当i/o突发结束后在单位时间内允许恢复突发容量桶的最大突发能力,在恢复突发容量桶的最大突发能力之前处理的突发i/o只能使用突发容量桶中当前剩余的令牌,以此来支持最大突发i/o条件下的最大突发时长。
75.参照图3,示出了本发明实施例中提供的令牌桶和双定时器的处理流程示意图,当发生i/o读写操作的i/o数量小于或等于存储卷主桶的容量,消耗存储卷主桶内的令牌数时,若存储卷突发容量桶的桶容量恢复定时器未启动,则启动桶容量恢复定时器,其中,当所述i/o发生突发的突发时间间隔达到预设突发间隔时长时,由桶容量恢复定时器将存储卷突发容量桶的容量状态更新为满桶状态,并且停止使用桶容量恢复定时器。通过利用存
储卷突发容量桶的桶容量恢复定时器来控制存储卷突发容量桶的容量状态,从而能够以此来支持最大突发i/o条件下的存储卷最大突发时长。
76.在本发明的一种可选实施例中,所述存储卷突发容量桶设置有桶容量清空定时器,包括:当发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量,并且小于所述存储卷突发容量桶的容量和所述存储卷突发速率桶的容量,消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数时,若所述存储卷突发容量桶的桶容量清空定时器未启动,则启动所述桶容量清空定时器;当所述i/o发生突发的突发时长达到预设突发时长时,将所述存储卷突发容量桶的容量状态更新为空桶状态,并且停止使用所述桶容量清空定时器。
77.对于桶容量清空定时器,其可以用于计时,具体地,当i/o发生突发的突发时长达到预设突发时长时,将存储卷突发容量桶的容量状态更新为空桶状态,即用于控制当突发i/o的突发时长达到预设突发时长时不再允许进行突发,存储卷突发容量桶的状态为空桶状态则无法获取令牌,进而无法进行i/o突发,以此来控制突发i/o的连续突发时长。
78.对于存储卷突速率桶的容量,其对应为存储卷突发速率桶内的令牌数。
79.参照图3,示出了本发明实施例中提供的令牌桶和双定时器的处理流程示意图,当发生i/o读写操作的i/o数量大于存储卷主桶的容量,并且小于存储卷突发容量桶的容量和存储卷突发速率桶的容量,消耗存储卷突发容量桶的令牌数和存储卷突发速率桶的令牌数时,若存储卷突发容量桶的桶容量清空定时器未启动,则启动桶容量清空定时器,其中,当i/o发生突发的突发时长达到预设突发时长时,将存储卷突发容量桶的容量状态更新为空桶状态,并且停止使用桶容量清空定时器。通过利用存储卷突发容量桶的桶容量清空定时器来控制存储卷突发容量桶的容量状态,从而能够以此来控制突发i/o的连续突发时长。
80.在本发明的一种可选实施例中,所述步骤103、根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态,包括:若发生所述i/o读写操作的i/o数量小于或等于所述存储卷主桶的容量,则消耗所述存储卷主桶内的令牌数;其中,所述存储卷主桶消耗的令牌数和所述i/o读写操作的i/o数量相同;当消耗所述存储卷主桶的令牌数为所述i/o数量,并且所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为正常i/o。
81.对于i/o数量,其为发生i/o读写操作时所对应的i/o数量;对于i/o的状态,其可以反映出iops相对应的状态;对于正常i/o,其为可以进行正常读写的i/o,具体地,若某存储设备或某应用程序在一段时间内被接收或者发送的iops保持相对稳定或恒定,则为正常i/o,可以进行正常的读写操作。
82.在具体实现中,当发生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风暴。
83.在本发明的一种可选实施例中,所述步骤103、根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态,包括:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量,并且小于所述存储卷突发容量桶的容量和所述存储卷突发速率桶的容量,则消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数;其中,所述存储卷突发容量桶消耗的令牌数、所述存储卷突发速率桶消耗的令牌数均和所述i/o读写操作的i/o数量相同;当消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均为所述i/o数量,并且所述存储卷主桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为突发i/o。
84.对于突发i/o,其为可以进行正常读写的突发i/o,具体地,若单位时间内的iops突然猛增并且处于突发限制范围内,则为突发i/o,可以进行正常的读写操作。
85.在具体实现中,当发生所述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风暴。
86.在本发明的一种可选实施例中,所述步骤103、根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态,包括:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量,则不满足所述i/o进行读写操作的条件;当消耗所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数以及所述存储卷突发速率桶的令牌数均为零时,则所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均保持不变,确定所述i/o读写操作中i/o的状态为超过突发限制的i/o。
87.对于读写操作的条件,其为令牌桶内的令牌数需要大于或等于i/o读写操作所对应的i/o数量。
88.对于超过突发限制的i/o,其为需要进行拆分的i/o,不能进行正常的读写操作,具体地,若单位时间内的iops突然猛增并且超出突发限制范围,则为超过突发限制的i/o,需要对超过突发限制的i/o进行拆分并重新排队等待,直至能够进行正常的读写操作。
89.在具体实现中,若发生i/o读写操作的i/o数量大于存储卷主桶的容量、存储卷突发容量桶的容量以及存储卷突发速率桶的容量,则不满足i/o进行读写操作的条件,当消耗存储卷主桶的令牌数、存储卷突发容量桶的令牌数以及存储卷突发速率桶的令牌数均为零时,则存储卷主桶的令牌数、存储卷突发容量桶的令牌数和存储卷突发速率桶的令牌数均
保持不变,确定i/o读写操作中i/o的状态为超过突发限制的i/o。通过确定i/o读写操作中i/o的状态为超过突发限制的i/o,能够有针对性地对超过突发限制的i/o进行处理,并且能够更好地制定超过突发限制的i/o的处理策略,以便应对i/o风暴。
90.在本发明的一种可选实施例中,所述步骤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进行拆分。
91.对于正常i/o,其为可以进行正常读写的i/o,具体地,若某存储设备或某应用程序在一段时间内被接收或者发送的iops保持相对稳定或恒定,则为正常i/o,可以进行正常的读写操作;对于突发i/o,其为可以进行正常读写的i/o,具体地,若单位时间内的iops突然猛增并且处于突发限制范围内,则为突发i/o,可以进行正常的读写操作;对于超过突发限制的i/o,其为需要进行拆分的i/o,不能进行正常的读写操作,具体地,若单位时间内的iops突然猛增并且超出突发限制范围,则为超过突发限制的i/o,需要进行拆分并重新排队等待,直至能够进行正常的读写操作。
92.在具体实现中,当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风暴场景突发吞吐量需要,还能够实现存储卷限流及各存储卷之间的互相隔离、互不影响。
93.在本发明的一种可选实施例中,采用指定颜色分别对不同的状态下的i/o进行标记;其中,所述正常i/o为采用绿色进行标记,所述突发i/o为采用黄色进行标记,所述超过突发限制的i/o为采用红色进行标记。
94.在具体实现中,正常i/o为采用绿色进行标记,突发i/o为采用黄色进行标记,超过突发限制的i/o为采用红色进行标记。通过对不同状态下的i/o进行相应的颜色标记,能够快速的分辨出i/o读写操作中i/o的状态,提高了i/o的处理效率。
95.需要说明的是,本领域技术人员可以根据实际需求对颜色进行调整,或采用其他标记方式,本发明对此不作限制。
96.在本发明的一种可选实施例中,在所述当所述i/o读写操作中i/o的状态为超过突发限制的i/o时,对所述超过突发限制的i/o进行拆分之后,所述方法还包括:在对所述超过突发限制的i/o进行拆分后,得到新i/o;将所述新i/o作为i/o,并返回执行所述响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量的步骤。
97.在具体实现中,在对超过突发限制的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返回执行步骤101,使存储卷满足i/o风暴场景突发吞吐量需要,还能够实现存储卷限流及各存储卷之间的互相隔离、互不影响。
98.为了使本领域技术人员更好地理解本发明实施例的技术方案,下面通过一个例子进行示例性说明:参照图4,示出了本发明实施例中提供的存储卷i/o处理的流程示意图,由图可知:s1、存储卷发生数量为a(假设值)的i/o读写操作,同时记录i/o读写操作的当前i/o读写时间和i/o数量。
99.s2、计算当前i/o读写时间和上一次i/o读写时间的时间差,并根据时间差与预设令牌流入桶速率,更新存储卷主桶的容量和存储卷突发速率桶的容量。
100.s3、当发生i/o读写操作的i/o数量a小于或等于存储卷主桶的容量,消耗存储卷主桶内的令牌数时,若存储卷突发容量桶的桶容量恢复定时器未启动,则启动桶容量恢复定时器;当i/o发生突发的突发时间间隔达到预设突发间隔时长时,将存储卷突发容量桶的容量状态更新为满桶状态,并且停止使用桶容量恢复定时器;其中,存储卷主桶的令牌数减少a,存储卷突发容量桶的令牌数和存储卷突发速率桶的令牌数保持不变,此时确定i/o读写操作中i/o的状态为正常i/o,并采用绿色进行标记,对正常i/o进行正常读写,结束进程。
101.s4、当发生i/o读写操作的i/o数量a大于存储卷主桶的容量,并且小于存储卷突发容量桶的容量和存储卷突发速率桶的容量,消耗存储卷突发容量桶的令牌数和存储卷突发速率桶的令牌数时,若存储卷突发容量桶的桶容量清空定时器未启动,则启动桶容量清空定时器;当i/o发生突发的突发时长达到预设突发时长时,将存储卷突发容量桶的容量状态更新为空桶状态,并且停止使用桶容量清空定时器;其中,存储卷突发容量桶的令牌数和存储卷突发速率桶的令牌数减少a,存储卷主桶的令牌数保持不变,此时确定i/o读写操作中i/o的状态为突发i/o,并采用黄色进行标记,对突发i/o进行正常读写,结束进程。
102.s5、若发生i/o读写操作的i/o数量a大于存储卷主桶的容量、存储卷突发容量桶的容量以及存储卷突发速率桶的容量,则不能进行正常读写;其中,当存储卷主桶的令牌数、存储卷突发容量桶的令牌数和存储卷突发速率桶的令牌数均保持不变时,确定i/o读写操作中i/o的状态为超过突发限制的i/o,并采用红色进行标记,超过突发限制的i/o不能进行正常的i/o读写操作,需要进行拆分并重新排队等待,返回执行步骤s1,直至拆分后的新i/o能够进行正常读写,再结束i/o读写操作的进程。
103.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
104.参照图5,示出了本发明实施例中提供的一种支持iops突发的装置的结构框图,应用于存储集群,所述存储集群包括一个或多个存储卷和令牌桶,所述令牌桶内有令牌,所述令牌桶包括存储卷主桶、存储卷突发容量桶和存储卷突发速率桶,所述存储卷主桶用于控
制所述存储卷的最大iops,所述存储卷突发容量桶用于控制所述存储卷的iops突发时长,所述存储卷突发速率桶用于控制所述存储卷的iops突发速率,具体可以包括如下模块:数据记录模块501,用于响应于针对各个所述存储卷的i/o读写操作,记录所述i/o读写操作的当前i/o读写时间和i/o数量;容量更新模块502,用于计算所述当前i/o读写时间和上一次i/o读写时间的时间差,并根据所述时间差与预设令牌流入桶速率,更新所述存储卷主桶的容量和所述存储卷突发速率桶的容量;i/o状态确定模块503,用于根据所述i/o数量和更新后的所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量的大小关系,确定所述i/o读写操作中i/o的状态;所述i/o的状态用于反映iops的状态;i/o处理模块504,用于根据所述i/o的状态,对所述i/o进行相应处理。
105.在一种可选实施例中,所述预设令牌流入桶速率包括预设令牌流入主桶速率,所述容量更新模块502具体用于:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;根据所述时间差与所述预设令牌流入主桶速率,更新所述存储卷主桶的容量;其中,所述存储卷主桶的容量为所述时间差与所述预设令牌流入主桶速率的乘积。
106.在一种可选实施例中,所述预设令牌流入桶速率包括预设令牌流入突发桶速率,所述容量更新模块502具体用于:响应于针对各个所述存储卷的i/o读写操作,得到所述i/o读写操作的当前i/o读写时间;根据所述当前i/o读写时间和上一次i/o读写时间,计算所述当前i/o读写时间和所述上一次i/o读写时间的时间差;根据所述时间差与所述预设令牌流入突发桶速率,更新所述存储卷突发速率桶的容量;其中,所述存储卷突发速率桶的容量为所述时间差与所述预设令牌流入突发桶速率的乘积。
107.在一种可选实施例中,所述i/o状态确定模块503具体用于:若发生所述i/o读写操作的i/o数量小于或等于所述存储卷主桶的容量,则消耗所述存储卷主桶内的令牌数;其中,所述存储卷主桶消耗的令牌数和所述i/o读写操作的i/o数量相同;当消耗所述存储卷主桶的令牌数为所述i/o数量,并且所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为正常i/o。
108.在一种可选实施例中,所述i/o状态确定模块503具体用于:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量,并且小于所述存储卷突发容量桶的容量和所述存储卷突发速率桶的容量,则消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数;其中,所述存储卷突发容量桶消耗的令牌数、所
述存储卷突发速率桶消耗的令牌数均和所述i/o读写操作的i/o数量相同;当消耗所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均为所述i/o数量,并且所述存储卷主桶的令牌数保持不变时,则确定所述i/o读写操作中i/o的状态为突发i/o。
109.在一种可选实施例中,所述i/o状态确定模块503具体用于:若发生所述i/o读写操作的i/o数量大于所述存储卷主桶的容量、所述存储卷突发容量桶的容量以及所述存储卷突发速率桶的容量,则不满足所述i/o进行读写操作的条件;当消耗所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数以及所述存储卷突发速率桶的令牌数均为零时,则所述存储卷主桶的令牌数、所述存储卷突发容量桶的令牌数和所述存储卷突发速率桶的令牌数均保持不变,确定所述i/o读写操作中i/o的状态为超过突发限制的i/o。
110.在一种可选实施例中,所述i/o处理模块504具体用于:当所述i/o读写操作中i/o的状态为正常i/o时,对所述正常i/o进行正常读写;当所述i/o读写操作中i/o的状态为突发i/o时,对所述突发i/o进行正常读写;当所述i/o读写操作中i/o的状态为超过突发限制的i/o时,对所述超过突发限制的i/o进行拆分。
111.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
112.另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种支持iops突发的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
113.图6为本发明实施例中提供的一种计算机可读存储介质的结构示意图。
114.本发明实施例还提供了一种计算机可读存储介质701,计算机可读存储介质701上存储有计算机程序,计算机程序被处理器执行时实现上述一种支持iops突发的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质701,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
115.图7为实现本发明各个实施例的一种电子设备的硬件结构示意图。
116.该电子设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
117.应理解的是,本发明实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信系统与网络和其他设
备通信。
118.电子设备通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
119.音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与电子设备700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
120.输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(graphics processing unit,gpu)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元706上。经图形处理器7041处理后的图像帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
121.电子设备700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在电子设备700移动到耳边时,关闭显示面板7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
122.显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode, oled)等形式来配置显示面板7061。
123.用户输入单元707可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
124.进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然在图7中,触控面板7071与显示
面板7061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现电子设备的输入和输出功能,具体此处不做限定。
125.接口单元708为外部装置与电子设备700连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元708可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备700内的一个或多个元件或者可以用于在电子设备700和外部装置之间传输数据。
126.存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
127.处理器710是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
128.电子设备700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
129.另外,电子设备700包括一些未示出的功能模块,在此不再赘述。
130.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
131.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
132.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
133.本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
134.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
135.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
136.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
137.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
138.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
139.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献