一种流量控制方法及装置
技术领域
本发明涉及网络存储技术领域,尤其涉及一种流量控制方法及装置。
背景技术
超融合架构(Hyper-Converged Infrastructure)是指将多台具备独立计算、网络和存储的通用服务器组成集群,以虚拟机为单位向用户提供可以横向扩展的计算和存储服务。集群对外提供虚拟机的同时,将各台服务器的存储资源虚拟化成一个存储池,为虚拟机提供存储块。也就是说,由服务器组成的存储集群的直接使用者是集群自身。该架构中用户的业务运行在虚拟机,虚拟机使用存储集群的存储块。对给定的集群,它的总体性能(包括吞吐量、IOPS(Input/output Operations Per Second,即每秒进行读写(I/O)操作的次数))是固定的。
发明内容
本发明提供一种流量控制方法及装置,以解决现有流量控制方案中流量控制效果较差的问题。
根据本发明实施例的第一方面,提供一种流量控制方法,应用于超融合架构,所述超融合架构中各服务器中包括限流节点Throttle节点,所述超融合构架中各服务器中的Throttle节点中包括一个主Throttle节点,所述方法包括:
主Throttle节点获取各服务器的存储块的实际负载;
当所述主Throttle节点确定需要进行流量控制时,所述主Throttle节点根据各服务器的存储块的实际负载以及存储块的每秒进行读写操作的次数IOPS阈值对存储块进行流量控制。
根据本发明实施例的第二方面,提供一种限流控制装置,应用于超融合架构的服务器中的限流节点Throttle节点中,其中,所述超融合构架中各服务器中的Throttle节点中包括一个主Throttle节点,所述装置包括:
获取单元,用于当所述Throttle节点为主Throttle节点时,获取各服务器的存储块的实际负载;
控制单元,用于当所述Throttle节点为主Throttle节点,且确定需要进行流量控制时,根据各服务器的存储块的实际负载以及存储块的每秒进行读写操作的次数IOPS阈值对存储块进行流量控制。
应用本发明实施例,通过在超融合架构中的各服务器中的Throttle节点中选择一个主Throttle节点,该主Throttle节点可以获取各服务器中的存储块的实际负载,并当确定需要进行流量控制时,主Throttle节点可以根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制,与现有技术中各服务器的Throttle节点只根据自身所在服务器的存储块的实际负载和IOPS阈值进行流量控制的方案相比,主Throttle节点进行流量控制时,可以参考存储块的整体负载情况,充分考虑各服务器的存储块之间的性能影响,可以优化流量控制的效果。
附图说明
图1是本发明实施例提供的一种流量控制方法的流程示意图;
图2A是本发明实施例提供的一种独立存储块应用场景的结构示意图;
图2B是本发明实施例提供的一种共享存储块应用场景的结构示意图;
图3是本发明实施例提供的一种流量控制装置的结构示意图;
图4是本发明实施例提供的另一种流量控制装置的结构示意图;
图5是本发明实施例提供的另一种流量控制装置的结构示意图;
图6是本发明实施例提供的另一种流量控制装置的结构示意图。
具体实施方式
超融合架构中各服务器中同时运行Hypervisor(一种在虚拟环境中的“元”操作系统)和Storage(存储)服务。其中,Hypervisor也叫做虚拟机监视器(VMM,Virtual MachineMonitor),可以协调访问服务器上的所有物理设备和虚拟机。通常,这些Hypervisor内部都带有Throttle节点(限流节点),用于限制给定虚拟机存储块的流量。当为用户的虚拟机提供一个存储块时,在Hypervisor中设置该存储块IOPS的上限值。如果用户流量超过这个阈值,Hypervisor将通过一系列措施,例如减少CPU(Center Process Unit,中央处理单元)时间,来限制对该存储块的操作,以避免该存储块的IOPS影响到其它存储块的IOPS,从而影响业务。
然而实践发现,上述流量控制方案中,每台服务器仅根据本服务器中存储块的实际负载以及IOPS阈值进行流量控制,流量控制效果较差。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,图1为本发明实施例提供的一种流量控制方法的流程示意图,该方法可以应用于超融合架构,该超融合架构中各服务器中包括Throttle节点,其中,该超融合架构中各服务器中的Throttle节点中包括一个主Throttle节点,如图1所示,该方法可以包括以下步骤:
值得说明的是,在本发明实施例中,Throttle节点可以部署于各服务器中的Hypervisor中,也可以独立于Hypervisor部署。为便于说明,以下以Throttle节点独立于Hypervisor部署为例进行描述。
步骤101、主Throttle节点获取各服务器的存储块的实际负载。
本发明实施例中,考虑到现有流量控制方案中,各服务器的Throttle节点只能限制该服务器中的存储块的IOPS,而没有考虑该服务器的存储块的IOPS对其它服务器的存储块的IOPS的影响,导致流量控制效果较差,为了提高流量控制效果,可以从超融合架构中各服务器中的Throttle节点中选择出一个主Throttle节点,该主Throttle节点可以动态调整超融合架构各服务器中的存储块的IOPS实际阈值。
其中,主Throttle节点可以由用户(如管理员)手动指定或通过Paxos(一种基于消息传递的一致性算法)等算法从各服务器的Throttle节点中选出。
本发明实施例中,为了实现流量控制,主Throttle节点可以获取各服务器的存储块的实际负载。
优选地,主Throttle节点可以周期性地获取各服务器的存储块的实际负载。其中,主Throttle节点获取各服务器的存储块的实际负载的周期(本文中称为第一周期)可以根据实际应用场景设定,如半个小时、1个小时等。
作为一种可选的实施方式,在本发明实施例中,主Throttle节点获取各服务器的存储块的实际负载,可以包括:
主Throttle节点获取自身所在服务器的存储块的实际负载,并接收各从Throttle节点发送的各从Throttle节点所在服务器的存储块的实际负载。
在该实施方式中,超融合架构中各服务器中的Throttle节点可以获取自身所在服务器的存储块的实际负载,该实际负载可以包括但不限于IO队列使用情况、实时IOPS等信息。
在该实施方式中,从Throttle节点(除主Throttle节点之外的Throttle节点均可以称为从Throttle节点)获取到自身所在服务器的存储块的实际负载之后,可以将其发送给主Throttle节点。
步骤102、当主Throttle节点确定需要进行流量控制时,主Throttle节点根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制。
本发明实施例中,主Throttle节点获取到各服务器的存储块的实际负载之后,可以根据各服务器的存储块的实际负载确定是否需要进行流量控制。当主Throttle节点确定需要进行流量控制时,主Throttle节点可以根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制。
作为一种可选的实施方式,在本发明实施例中,当各服务器的存储块为独立存储块时,
主Throttle节点确定需要进行流量控制可以包括:
当运行关键业务的第一存储块的实际IOPS低于第一存储块的IOPS上限,且第一存储块的队列处于满的状态,以及运行普通业务的第二存储块的实际IOPS高于第二存储块的IOPS下限时,主Throttle确定需要进行流量控制。
在该实施方式中,当各服务器的存储块为独立存储块时,主Throttle节点获取到各服务器的存储块的实际负载之后,可以根据各存储块的实际负载确定运行关键业务的存储块的性能是否已经受到了运行普通业务的存储块的影响;其中,存储块中运行的业务为关键业务或普通业务是相对而言的,存储块为运行关键业务的存储块或运行普通业务的存储块可以由根据用户为存储块设置的IOPS阈值确定,用户为存储块设置的IOPS下限越高,表明该存储块中运行的业务越重要;或者也可以在存储块中运行的业务中携带用于标识该业务为普通业务或关键业务的业务标识,进而可以根据存储块中运行的业务中携带的业务标识来确定业务为关键业务或普通业务。
在该实施方式中,当主Throttle节点根据获取到的存储块的实际负载发现运行关键业务的存储块(本文中称为第一存储块)的队列长度满足预设条件,以及运行普通业务的存储块(本文中称为第二存储块)实际IOPS高于第二存储块的IOPS下限时,主Throttle节点可以认为运行关键业务的存储块的性能是否已经受到了运行普通业务的存储块的影响,从而,主Throttle可以确定需要进行流量控制。其中,第一存储块的队列长度满足预设条件可以包括但不限于第一存储块的队列长度超过预设长度阈值(可以根据具体场景预先设定,如队列最大长度的80%、90%等)或第一存储块的队列长度超过第二存储块的队列长度。
值得说明的是,在本发明实施例中,主Throttle节点仅在第二存储块的实际IOPS高于第二存储块的IOPS下限的情况下,对第二存储块进行IOPS限制以提升第一存储块的实际IOPS;然而在实际场景中,当第一存储块的队列满足预设条件时,第二存储块的实际IOPS也可能会低于第二存储块的IOPS下限,在该情况下,主Throttle节点可以不进行流量控制处理,或者按照其它策略进行相应处理,本发明实施例对此不做限定。
相应地,在该实施方式中,主Throttle节点根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制,可以包括以下步骤:
11)、主Throttle节点根据第二存储块的实际IOPS以及第二存储块的IOPS下限,确定第二存储块的IOPS实际阈值,其中,第二存储块的IOPS实际阈值低于第二存储块的上述实际IOPS,高于第二存储块的IOPS下限;
12)、主Throttle节点根据第二存储块的IOPS实际阈值对第二存储块的IOPS进行控制,以使控制后的第二存储块的IOPS不超过该第二存储块的IOPS实际阈值。
在该实施方式中,当主Throttle节点确定需要进行流量控制,即第一存储块的性能受到了第二存储块的影响时,主Throttle节点可以确定需要降低第二存储块的IOPS,以提高第一存储块的IOPS。
具体的,主Throttle可以为第二存储块设置一个新的IOPS阈值(本文中称为IOPS实际阈值),其中,第二存储块的IOPS实际阈值应该低于第二存储块的上述实际IOPS,且高于第二存储块的IOPS下限。
例如,主Throttle节点可以通过以下公式确定第二存储块的IOPS实际阈值Tr:
Tr=L+a*(C-L)
其中,L为第二存储块的IOPS下限,C为第二存储块的实际IOPS,a为常数,且0<a<1,如a=0.95、a=0.9等。
在该实施方式中,主Throttle节点确定第二存储块的IOPS实际阈值后,可以根据第二存储块的IOPS实际阈值对第二存储块进行流量控制,以降低第二存储块的实际IOPS,从而提高第一存储块的实际IOPS。
在该实施方式中,主Throttle节点根据第二存储块的IOPS实际阈值对第二存储块进行流量控制,可以包括:
若第二存储块为主Throttle节点所在服务器中的存储块,则主Throttle节点可以直接根据该第二存储块的IOPS实际阈值对第二存储块的IOPS进行控制,以使控制后的第二存储块的IOPS不超过该第二存储块的实际阈值;
若第二存储块为从Throttle节点所在服务器中的存储块,则主Throttle节点可以向该从Throttle节点发送携带有该第二存储块的IOPS实际阈值的流量控制指令,由从Throttle节点根据该第二存储块的IOPS实际阈值对第二存储块的IOPS进行控制,以使控制后的第二存储块的IOPS不超过该第二存储块的实际阈值。
值得说明的是,在本发明实施例中,当主Throttle节点根据第二存储块的实际IOPS对第二存储块进行流量控制之后,主Throttle节点可以周期性地检测第一存储块的队列长度以及第二存储块的实际IOPS,若流量控制后第一存储块的队列长度仍满足预设条件,且第二存储块的实际IOPS仍高于第二存储块的IOPS下限,则主Throttle节点可以再次对第二存储块进行流量控制,直至第一存储块的队列长度不满足预设条件,或者第二存储块的实际IOPS低于等于第二存储块的IOPS下限。其中,主Throttle节点对第二存储块进行流量控制之后,检测第一存储块的队列长度以及第二存储块的实际IOPS的周期(本文中称为第二周期)可以根据实际应用场景设定,且第二周期可以与第一周期相同,也可以与第一周期不同。
作为另一种可选的实施方式,在本发明实施例中,当各服务器的存储块为共享存储块时,
主Throttle节点确定需要进行流量控制可以包括:
当各服务器的存储块的实际IOPS之和超过存储块的IOPS上限时,主Throttle确定需要进行流量控制。
在该实施方式中,当各服务器的存储块为共享存储块时,主Throttle节点获取到各服务器的存储块的实际负载之后,可以根据各存储块的实际负载确定各服务器的存储块的实际IOPS之和是否超过存储块的IOPS上限,若各服务器的存储块的实际IOPS之和超过了存储块的IOPS上限,则主Throttle节点可以确定需要进行流量控制。
相应地,在该实施方式中,主Throttle节点根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制,可以包括以下步骤:
21)、主Throttle节点根据各服务器的存储块的实际IOPS以及该存储块的IOPS上限,确定各服务器的存储块的IOPS实际阈值,其中,各服务器的存储块的IOPS实际阈值之和低于等于存储块的IOPS上限,且高于等于存储块的IOPS下限;
22)、主Throttle节点根据各服务器的存储块的IOPS实际阈值对各服务器的存储块的IOPS进行控制,以使控制后的各服务器的存储块的IOPS不超过各服务器的存储块的IOPS实际阈值。
在该实施方式中,当主Throttle节点确定需要进行流量控制,即各服务器的存储块的IOPS之和超过了存储块的IOPS上限时,主Throttle节点可以确定需要降低各服务器的存储块的IOPS。
具体的,主Throttle可以为各服务器设置一个新的存储块的IOPS阈值(本文中称为IOPS实际阈值),其中,各服务器的存储块的IOPS实际阈值之和应该低于等于存储块的IOPS上限,且高于等于存储块的IOPS下限,既可以保证各服务器的存储块的实际IOPS之和不会超过存储块的IOPS上限,又可以保证充分利用存储块的性能。
优选地,各服务器的存储块的IOPS实际阈值之和等于存储块的IOPS上限,
例如,以超融合架构中包括3个服务器(Server A、Server B和Server C)为例,主Throttle节点可以通过以下公式确定各服务器的存储块的IOPS实际阈值:
T(i)=(I(i)/(I(A)+I(B)+I(C)))*TH
其中,i为3台服务器中的任一台,T(i)为服务器i的存储块的IOPS实际阈值,I(i)为服务器i的存储块的实际IOPS,I(A)、I(B)和I(C)分别为Server A、Server B和Server C的存储块的实际IOPS,TH为存储块的IOPS上限。
通过上述公式确定各服务器的存储块的IOPS实际阈值,即可以限制存储块的流量,又考虑到了各服务器的存储块的不同负载,提高了流量控制效果。
在该实施方式中,主Throttle节点确定各服务器的存储块的IOPS实际阈值后,可以根据该各服务器的存储块的IOPS实际阈值对各服务器的存储块的IOPS进行控制,以使控制后的各服务器的存储块的IOPS不超过各服务器的存储块的IOPS实际阈值。
在该实施方式中,主Throttle节点根据各服务器的存储块的IOPS实际阈值对各服务器的存储块的IOPS进行控制,可以包括:
对于主Throttle节点所在服务器,主Throttle节点可以直接根据对应的存储块的IOPS实际阈值对该服务器的存储块的IOPS进行控制,以使控制后的主Throttle节点所在服务器的存储块的IOPS不超过对应的存储块的IOPS实际阈值;
对于从Throttle节点所在服务器,主Throttle节点可以向从Throttle节点发送携带对应的存储块IOPS实际阈值的流量控制指令,由从Throttle节点根据该存储块的IOPS实际阈值对该从Throttle节点所在服务器的存储块的IOPS进行控制,以使控制后的该从Throttle节点所在服务器的存储块的IOPS不超过对应的存储块的IOPS实际阈值。
可见,在图1所示的方法流程中,通过在超融合架构中的各服务器中的Throttle节点中选择一个主Throttle节点,该主Throttle节点可以获取各服务器中的存储块的实际负载,并当确定需要进行流量控制时,主Throttle节点可以根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制,与现有技术中各服务器的Throttle节点只根据自身所在服务器的存储块的实际负载和IOPS阈值进行流量控制的方案相比,主Throttle节点进行流量控制时,可以参考存储块的整体负载情况,充分考虑各服务器的存储块之间的性能影响,可以优化流量控制的效果。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案进行描述。
请参见图2A,为本发明实施例提供的一种独立存储块的应用场景的结构示意图,如图2A所示,该应用场景中包括3个服务器(Server A、Server B和Server C),各服务器中可以包括VM(Virtual Machine,虚拟机)、Hypervisor、Throttle节点以及Storage Node(存储节点,以下称为存储块),各服务器使用独立存储块。其中:
假设存储块A的IOPS阈值为5K~10K(即IOPS上限为10K,IOPS下限为5K,下同),存储块C的IOPS阈值为3K~7K(在该实施例中,以根据存储块的IOPS下限确定存储块中运行的为关键业务或普通业务为例,即存储块A中运行的为关键业务,存储块C中运行的为普通业务),Throttle节点B为主Throttle节点。
在该实施例中,Throttle节点A和Throttle节点C周期性地向Throttle节点B发送存储块A和存储块C的实际负载,该实际负载包括IO队列使用情况、实际IOPS等。假设某时间刻,存储块A和存储块C的实际IOPS均为6K,并且存储块A的队列处于满的状态,即存储块A的性能已经受到了存储块C的影响。
若按照现有流量控制方案,各Throttle节点仅对自身所在服务器的存储块进行流量控制,则由于存储块A和存储块C的实际IPOS均未超过存储块的IOPS上限,因此,不会进行流量控制,从而,存储块A的性能会持续被存储块C影响,关键业务的运行不能得到保证。
而使用本发明实施例提供的流量控制方案,Throttle节点B接收到Throttle节点A和Throttle节点C发送的存储块A和存储块C的实际负载之后,可以发现运行关键业务的存储块A的性能受到了运行普通业务的存储块C的影响,从而可以确定需要对存储块C进行流量控制。
在该实施例中,Throttle节点B可以按照以下公式确定存储块C的IOPS实际阈值Tr:
Tr=L+0.95*(C-L)
其中,L为存储块C的IOPS下限(即3K),C为存储块C的实际IOPS(即6K),从而存储块C的IOPS实际阈值Tr为3+0.95*(6-3)=5.85K。
在该实施例中,Throttle节点B确定了存储块C的IOPS实际阈值后,可以向Throttle节点C发送携带该IOPS实际阈值的流量控制指令;Throttle节点C接收到该流量控制指令之后,可以根据该IOPS实际阈值对存储块C的IOPS进行控制,即降低存储块C的IOPS,以提高存储块A的性能,使存储块A的队列尽快消费掉。
Throttle节点B对存储块C进行流量控制之后,还可以周期性检测存储块A的队列长度以及存储块C的实际IOPS,若存储块A的队列仍然处于满的状态,且存储块C的实际IOPS高于存储块C的IOPS下限,则Throttle节点B可以继续对存储块C进行流量控制,直至存储块A的队列不为满的状态,或存储块C的实际IOPS低于等于存储块C的IOPS下限。
可见,对于独立存储块模式,本发明实施例提供的流量控制方案可以有效地保证运行关键业务的存储块的性能,降低运行普通业务的存储块对运行关键业务的存储块的性能的影响。
请参见图2B,为本发明实施例提供的一种共享存储块的应用场景的结构示意图,如图2B所示,该应用场景中包括3个服务器(Server A、Server B和Server C,图中仅示出Throttle节点),各服务器为共享存储块模式。其中:假设Throttle节点B为主Throttle节点,存储块的IOPS阈值为3K~9K。
若按照现有流量控制方案,则需要在各服务器上分别设置存储块IOPS阈值,存储块的IOPS阈值为3台服务器的存储块IOPS阈值之和(例如各服务器的存储块IOPS阈值可以分别设置为1K~3K),在3台服务器的业务流量稳定的情况下,按照现有流量控制方案也可以稳定运行,但实际情况中,服务器的业务流量是动态变化的,例如,Server A和Server B的业务流量很低(假设实际IOPS均为2K),但是Server C的业务流量很大(假设实际IOPS为6K),此时,按照现有流量控制方案,Server C需要对存储块进行限流,将IOPS降低为3K,此时存储块的IOPS(2+2+3)并未达到上限,导致存储块未得到充分利用。
而使用本发明实施例提供的流量控制方案,不需要分别为各服务器设置存储块阈值,即各服务器的存储块阈值均可以为3K~9K,Throttle节点B周期性地获取自身所在服务器的存储块的实际负载,此外,Throttle节点A和Throttle节点C周期性地向Throttle节点B发送存储块的实际负载。假设某时间刻,Server A、Server B和Server C的存储块实际IOPS分别为2K、5K和3K,此时各服务器的存储块的实际IPOS之和(2+5+3=10K)超过了存储块的IOPS上限(9K),因此,Throttle节点B确定需要进行流量控制。
在该实施例中,Throttle节点B可以通过以下公式确定各服务器的存储块的IOPS实际阈值:
T(i)=(I(i)/(I(A)+I(B)+I(C)))*TH
其中,对于Server A,T(A)=(2/2+5+3)*9=1.8K;
对于Server B,T(B)=(5/2+5+3)*9=4.5K;
对于Server C,T(C)=(3/2+5+3)*9=2.7K。
通过该公式确定各服务器的存储块的IOPS实际阈值,即可以限制存储块的流量,又考虑到了各服务器的存储块的不同负载,而且可以保证存储块性能的充分利用。
在该实施例中,Throttle节点B确定了各服务器的存储块的IOPS实际阈值后,一方面,可以根据自身所在服务器的存储块的IOPS实际阈值(4.5K)对自身所在服务器(ServerB)的存储块的IOPS进行控制;另一方面,可以向Throttle节点A和Throttle节点C发送携带有对应的IOPS实际阈值的流量控制指令,以使Throttle节点A和Throttle节点C分别根据对应的IOPS实际阈值(Throttle节点A为1.8K,Throttle节点C为2.7K)对Server A和Server C的存储块的IOPS进行控制。
可见,对于共享存储块模式,本发明实施例提供的流量控制方案可以充分考虑各服务器的存储块的实际负载,从而在实现存储块限流的同时,保证存储块的性能得到充分利用。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过在超融合架构中的各服务器中的Throttle节点中选择一个主Throttle节点,该主Throttle节点可以获取各服务器中的存储块的实际负载,并当确定需要进行流量控制时,主Throttle节点可以根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制,与现有技术中各服务器的Throttle节点只根据自身所在服务器的存储块的实际负载和IOPS阈值进行流量控制的方案相比,主Throttle节点进行流量控制时,可以参考存储块的整体负载情况,充分考虑各服务器的存储块之间的性能影响,可以优化流量控制的效果。
请参见图3,为本发明实施例提供的一种流量控制装置的结构示意图,其中,该流量控制装置可以应用于超融合架构中的服务器中的Throttle节点,其中,超融合架构中各服务器中的Throttle节点中包括一个主Throttle节点,如图3所示,该流量控制装置可以包括:
获取单元310,用于当所述Throttle节点为主Throttle节点时,获取各服务器的存储块的实际负载;
控制单元320,用于当所述Throttle节点为主Throttle节点,且确定需要进行流量控制时,根据各服务器的存储块的实际负载以及存储块的每秒进行读写操作的次数IOPS阈值对存储块进行流量控制。
在可选实施例中,所述获取单元310,可以具体用于周期性地获取各服务器的存储块的实际负载。
请一并参阅图4,图4为本发明实施例提供的另一种流量控制装置的结构示意图,在图3所示的实施例的基础上,图4所示的流量控制装置中,获取单元310可以包括:
获取子单元311,用于当所述Throttle节点为主Throttle节点时,获取自身所在服务器的存储块的实际负载;
接收子单元312,用于当所述Throttle节点为主Throttle节点时,接收各从Throttle节点发送的各从Throttle节点所在服务器的存储块的实际负载。
请一并参阅图5,图5为本发明实施例提供的另一种流量控制装置的结构示意图,在图3所示的实施例的基础上,图5所示的流量控制装置中,当各服务器的存储块为独立存储块时,所述控制单元320包括:
第一确定子单元321,用于当运行关键业务的第一存储块的队列长度满足预设条件,以及运行普通业务的第二存储块的实际IOPS高于第二存储块的IOPS下限时,确定需要进行流量控制;
第二确定子单元322,用于根据第二存储块的实际IOPS以及第二存储块的IOPS下限,确定第二存储块的IOPS实际阈值;其中,第二存储块的IOPS实际阈值低于第二存储块的所述实际IOPS,高于第二存储块的IOPS下限;
第一控制子单元323,用于根据所述第二存储块的IOPS实际阈值对第二存储块的IOPS进行控制,以使控制后的第二存储块的IOPS不超过该第二存储块的IOPS实际阈值。
请一并参阅图6,图6为本发明实施例提供的另一种流量控制装置的结构示意图,在图3所示的实施例的基础上,图6所示的流量控制装置中,当各服务器的存储块为共享存储块时,所述控制单元320包括:
第三确定子单元324,用于当各服务器的存储块的实际IOPS之和超过存储块的IOPS上限时,确定需要进行流量控制;
第四确定子单元325,用于根据各服务器的存储块的实际IOPS以及该存储块的IOPS上限,确定各服务器的存储块的IOPS实际阈值;其中,各服务器的存储块的IOPS实际阈值之和低于等于存储块的IOPS上限,且高于等于存储块的IOPS下限;
第二控制子单元326,用于根据各服务器的存储块的IOPS实际阈值对各服务器的存储块的IOPS进行控制,以使控制后的各服务器的存储块的IOPS不超过各服务器的存储块的IOPS实际阈值。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过在超融合架构中的各服务器中的Throttle节点中选择一个主Throttle节点,该主Throttle节点可以获取各服务器中的存储块的实际负载,并当确定需要进行流量控制时,主Throttle节点可以根据各服务器的存储块的实际负载以及存储块的IOPS阈值对存储块进行流量控制,与现有技术中各服务器的Throttle节点只根据自身所在服务器的存储块的实际负载和IOPS阈值进行流量控制的方案相比,主Throttle节点进行流量控制时,可以参考存储块的整体负载情况,充分考虑各服务器的存储块之间的性能影响,可以优化流量控制的效果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。