网络附加存储系统和用于其中的请求处理的对应方法
【专利摘要】本发明涉及一种网络附加存储系统和用于其中的请求处理的对应方法。网络附加存储系统(1A)包括经由外部网络(190)连接到至少一个外部设备(180)的存储系统(100A),存储系统(100A)包括至少一个存储介质和至少一个控制器(110A),其向至少一个外部设备(180)提供存储系统(100A)的存储容量,至少一个外部设备(180)向存储系统(100A)发送请求(172),至少一个控制器(110A)接收和服务于请求(172),在服务于请求(172)之后向发出请求的外部设备(180)发送响应(174);至少一个控制器(110A)包括延迟功能(112A),其向请求(172)的执行过程引入可变长度延迟。
【专利说明】网络附加存储系统和用于其中的请求处理的对应方法
【技术领域】
[0001]本发明一般地涉及存储系统管理领域,具体地说,涉及网络附加存储系统和用于网络附加存储系统中的请求处理的对应方法。更具体地说,本发明涉及用于网络附加存储系统中的请求处理的数据处理程序和计算机程序产品。
【背景技术】
[0002]本发明的【技术领域】关于网络附加存储(NAS)客户机管理策略及其在网络附加存储(NAS)系统,尤其是支持CIFS(通用因特网文件系统)协议的存储系统中的应用;然而本发明并不仅限于该应用。
[0003]网络附加存储(NAS)系统经由网络,将其内部存储容量提供给网络附加存储(NAS)客户机,例如服务器、个人计算机、移动设备等。任何此类客户机可以在任何时间访问或不访问网络附加存储(NAS),因此不能可靠预测网络附加存储(NAS)系统将遇到多少输入/输出(I/O)负载。随着I/O负载增加,网络附加存储(NAS)系统可能无法及时服务于所有客户机,从而导致未及时被服务的客户机断开连接(I/O请求超时)。从客户机的角度来看,此类断开连接是破坏性的,因此在当今的网络附加存储(NAS)环境中暴露出严重的问题。
[0004]图1示出根据现有技术的用于网络附加存储系统I中的请求处理的现有技术方法;以及图2示出根据图1的用于现有技术网络附加存储系统I中的请求处理的现有技术方法的固定负载的完成时间分布。
[0005]参考图1,网络附加存储系统I包括包含一个或多个控制器110的存储系统100,控制器I1经由外部网络190为一个或多个客户机180提供存储系统100的存储容量。每个存储控制器110可以具有多个到外部网络190的接入点。存储控制器110在内部存储介质上存储入站数据。
[0006]仍然参考图1,客户机180在步骤S300经由外部网络190向存储系统100的控制器I1发送请求172。控制器110在步骤S310接收请求172,并且在步骤S320服务于请求172。然后控制器110在步骤S330经由外部网络190向请求客户机180发送对应的响应174,请求客户机180在步骤S340接收响应174。如果请求172的处理花费太长时间,则夕卜部设备180的输入/输出处理机向应用生成超时错误。应用可能没有针对这些错误做好充分准备一因此这些错误可能导致应用终止,从而可能在存储系统100上遗留不一致数据而导致数据损坏。
[0007]随着并发请求172的数量增加,请求172的处理时间增加。换言之,如果越来越多的客户机180向存储子系统100发出请求172,则每个单独客户机请求172的处理时间增力口,从而逐渐接近超时阈值To。
[0008]给出以上所述,其只是以下问题:为存储系统100加载足够的I/O请求172在连接的客户机180处导致超时。
[0009]观察对网络附加存储(NAS)系统I的存储系统100的普通访问表明,客户机180或客户机180上的应用/进程向存储系统100发送存储、读取、创建、删除之类的服务请求172,等待完成,然后发出下一个请求172。
[0010]仍然参考图2,所示序列(步骤S300到步骤S340)完成的越快,可以在给定时间段内更多地执行这些序列。因此,该网络附加存储(NAS)客户机180可以在网络附加存储(NAS)系统I上放置更多负载,即I/O请求172。
[0011]如果完成时间Tc (定义为步骤S300 “发送请求”和步骤S340 “接收响应”之间的持续时间)超过客户机超时阈值To,则当应用未准备好处理这种情况时,将丢弃请求172并且可能丢失数据。
[0012]主要由步骤S320 “服务于请求”确定完成时间Tc。多个客户机180接收的请求172越多,平均服务时间增加的越多,并且单独请求172花费的时间可能长于超时阈值To的概率越高。
[0013]值得注意的是,对于企业存储系统100,通常许多客户机180同时发出I/O请求172 (数千个)。一个示例性实例是大学,其中数千个学生通过网络附加存储(NAS)协议访问存储在单个共享存储子系统100上的数据。
[0014]参考图3,增加负载将按照图中指示向上和向右推动分布,随着负载的增加呈指数推动。因此,被移动图的尾部将快速覆盖其中完成时间Tc超过客户机超时阈值To的范围,从而导致客户机断开连接,并且即使在高负载下,也会远在达到超时阈值To之前服务于相当大的一部分请求172。
【发明内容】
[0015]本发明涉及的技术问题是提供一种网络附加存储系统和一种用于网络附加存储系统中的请求处理的对应方法,它们能够维持客户机连接,防止网络附加存储中的超时,并且解决网络附加存储系统中的现有技术请求处理的上述缺点和痛点。
[0016]根据本发明,通过提供以下各项解决该问题:一种具有权利要求1的特征的网络附加存储系统、一种具有权利要求9的特征的用于网络附加存储系统中的请求处理的方法、一种具有权利要求14的特征的用于网络附加存储系统中的请求处理的数据处理程序,以及一种具有权利要求15的特征的用于网络附加存储系统中的请求处理的计算机程序产品。在从属权利要求中提及本发明的有利实施例。
[0017]因此,在本发明的一个实施例中,一种网络附加存储系统包括经由外部网络连接到至少一个外部设备的存储系统,其中所述存储系统包括至少一个存储介质和至少一个控制器,所述控制器向所述至少一个外部设备提供所述存储系统的存储容量。所述至少一个外部设备向所述存储系统发送请求,其中所述至少一个控制器接收和服务于所述请求,并且在服务于所述请求之后向发出请求的外部设备发送响应。此外,所述至少一个控制器包括延迟功能,所述延迟功能基于所述存储系统的当前输入/输出负载、最大允许请求响应时间、请求完成时间以及测量的当前请求执行时间,向所述请求的执行过程引入可变长度延迟。
[0018]在本发明的进一步实施例中,当所述存储系统的输入/输出负载低于特定负载阈值并且没有外部设备遇到其中所述请求的所述完成时间超过所述最大允许请求响应时间值的超时条件时,所述至少一个控制器完全关闭所述延迟功能。
[0019]在本发明的进一步实施例中,所述至少一个控制器的所述延迟功能在服务于所述请求之后测量所述当前请求执行时间,并且基于所测量的请求执行时间,确定对应请求的所述请求完成时间。
[0020]在本发明的进一步实施例中,当所述请求完成时间超过小于所述最大允许请求响应时间值的特定阈值时,所述延迟功能不向所述请求的所述执行过程添加延迟。
[0021]在本发明的进一步实施例中,当所述请求完成时间低于特定阈值时,所述延迟功能向所述请求的所述执行过程添加单独延迟持续时间。
[0022]在本发明的进一步实施例中,所述延迟功能确定所述单独延迟持续时间,使得所测量的请求执行时间与所述单独延迟持续时间的总和接近所述最大允许请求响应时间。
[0023]根据本发明的进一步实施例,所述延迟功能通过计算所述请求的所测量的当前执行时间或所确定的请求完成时间与所述请求的所述最大允许请求响应时间之间的差,确定所述单独延迟持续时间。
[0024]在本发明的进一步实施例中,所述延迟功能确定每个外部设备的单独最大允许请求响应时间。
[0025]在本发明的另一个实施例中,提供一种用于网络附加存储系统中的请求处理的方法,所述网络附加存储系统包括经由外部网络连接到至少一个外部设备的存储系统,其中所述存储系统包括至少一个存储介质和至少一个控制器,所述控制器向所述至少一个外部设备提供所述存储系统的存储容量,所述方法包括以下步骤:所述至少一个外部设备向所述存储系统发送请求,所述存储系统的所述至少一个控制器接收和服务于所述请求;所述至少一个控制器的延迟功能基于所述存储系统的当前输入/输出负载、最大允许请求响应时间、请求完成时间以及测量的执行时间,向所述请求的执行过程引入可变长度延迟;所述至少一个控制器向发出请求的外部设备发送响应;以及所述至少一个外部设备接收所述响应。
[0026]在本发明的进一步实施例中,当所述存储系统的输入/输出负载低于特定负载阈值并且没有外部设备遇到其中所述请求的所述完成时间超过所述最大允许请求响应时间值的超时条件时,完全关闭所述延迟功能。
[0027]在本发明的进一步实施例中,在服务于所述请求之后测量所述当前请求执行时间,并且基于所测量的请求执行时间,确定对应请求的所述请求完成时间。
[0028]在本发明的进一步实施例中,当所述请求完成时间超过特定阈值时,不向所述请求的所述执行过程添加延迟持续时间;以及其中当所述请求完成时间低于特定阈值时,向所述请求的所述执行过程添加单独延迟持续时间。
[0029]在本发明的进一步实施例中,以所述请求执行时间与所述单独延迟持续时间的总和接近所述最大允许请求响应时间的方式确定所述单独延迟持续时间。
[0030]在本发明的另一个实施例中,一种用于在数据处理系统中执行的数据处理程序包括软件代码部分,所述软件代码部分用于在所述数据处理系统上运行所述程序时,执行用于网络附加存储系统中的请求处理的方法。
[0031]在本发明的另一个实施例中,一种存储在计算机可用介质上的计算机程序产品包括计算机可读程序装置,所述计算机可读程序装置用于在计算机上运行所述程序时,导致所述计算机执行用于网络附加存储系统中的请求处理的方法。
[0032]总而言之,本发明的各实施例引入一种智能延迟功能,所述延迟功能引入可变长度的I/O请求延迟。如果系统具有低负载并且没有客户机遇到超时,则可以完全关闭所述延迟功能。当开启时,所述延迟功能不会向花费很长时间的I/o请求添加延迟时间,因此不会使情况变得更糟。此外,当开启时,所述延迟功能针对远低于客户机的可接受超时阈值To的所有I/o请求添加延迟。针对每个单独请求确定该延迟。调整该延迟以便完成时间Tc接近但保持低于客户机超时阈值To。因为在服务于所述请求之后确定该延迟,所以可以准确计算延迟持续时间,从而导致在非常类似的时间内服务于所有请求。
[0033]因此,记住单独客户机的顺序性,在开启所述智能延迟功能的情况下,快速响应请求的总数减少。起初这可能看似不利于生产,但在具有许多并发连接的客户机的网络附加存储(NAS)系统的上下文中,这将增加显著利益。以此方式,本发明的各实施例从系统移除某些负载,从而允许减少平均服务时间,因此减少单独请求超过客户机的可接受超时阈值To的概率。需要再次强调的是,I/O请求超时对客户机具有破坏性,但客户机完全容许花费更长时间但没有超时的I/O请求。
[0034]总的来说,为了改善在【背景技术】部分中概述的现有技术解决方案的缺点和问题,本发明的各实施例引入一种智能延迟功能,所述延迟功能可选地针对每个服务请求添加具有可变延迟持续时间的延迟步骤。该延迟步骤放置在服务于实际请求之后。
[0035]在以下详细书面描述中,本发明的上述以及其它目的、特性和优点将变得显而易见。
【专利附图】
【附图说明】
[0036]在附图中示出下面详细描述的本发明的优选实施例,这些附图是:
[0037]图1是用于网络附加存储系统中的请求处理的现有技术方法的示意流程图;
[0038]图2是根据图1的用于网络附加存储系统中的请求处理的现有技术方法的固定负载的完成时间分布的示意图;
[0039]图3是根据本发明的一个实施例的网络附加存储(NAS)系统的框图;
[0040]图4是根据本发明的一个实施例的用于网络附加存储系统中的请求处理的方法的示意流程图;
[0041]图5是根据本发明的一个实施例的图4的用于网络附加存储系统中的请求处理的方法的更详细的示意流程图;
[0042]图6是根据图4和5的用于网络附加存储系统中的请求处理的方法的固定负载的完成时间分布的示意图。
【具体实施方式】
[0043]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0044]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0045]计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0046]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0047]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0048]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0049]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0050]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0051]图3示出根据本发明的一个实施例的网络附加存储(NAS)系统;图4和5各自示出根据本发明的一个实施例的用于网络附加存储系统中的请求处理的方法;以及图6示出根据图4和5的用于网络附加存储系统中的请求处理的方法的固定负载的完成时间分布。
[0052]参考图3和4,示出的本发明实施例采用一种包括存储系统100A的网络附加存储系统1A。存储系统100A包括两个或更多控制器110A,控制器I1A经由外部网络190向一个或多个客户机180 (例如服务器180a、个人计算机180b、移动设备180c和智能设备180d)提供存储系统100A的存储容量。每个存储控制器IlOA可以具有多个到外部网络190的接入点120。存储控制器IlOA经由内部网络140 (例如光纤通道、TCP/IP、以太网和InfiniBand),在内部存储介质130(例如磁盘驱动器、磁带盒、固态磁盘(SSD)、非易失性RAM)上存储入站数据。存储系统100A可以包括多个内部存储介质130和多个内部网络140。具有多于两个控制器IlOA的存储系统100A也称为集群存储系统。
[0053]使用从外部设备180经由网络190和接入点120到控制器IlOA的连接170向存储系统100A读写数据。使用基于文件的数据协议(如NFS、FTP和HTTP)处理外部设备180和存储系统100A之间的数据传输。至少一个外部设备180向存储系统100A发送请求172,其中至少一个控制器IlOA接收和服务于请求172,并且在服务于请求172之后向发出请求的外部设备180发送响应174。至少一个控制器IlOA包括延迟功能112A,延迟功能112A基于存储系统100A的当前输入/输出负载、最大允许请求响应时间To、请求完成时间Tc以及测量的当前请求执行时间Te,向请求172的执行过程引入可变长度延迟。
[0054]参考图4和5,示出的本发明实施例采用一种用于网络附加存储系统IA中的请求处理的方法,所述方法包括以下步骤:在步骤S300,至少一个外部设备180经由外部网络190向存储系统100A发送请求172。在步骤S310,存储系统100A的至少一个控制器IlOA接收请求172,并且在步骤S320,服务于请求172。在步骤S320和步骤S330之间,延迟功能112A基于存储系统100A的当前输入/输出负载、最大允许请求响应时间To、请求完成时间Tc以及测量的执行时间Te,向请求172的执行过程引入可变长度延迟。在步骤S330,至少一个控制器IlOA经由外部网络190向发出请求的外部设备180发送响应174。在步骤S340,至少一个外部设备180接收响应174。
[0055]参考图5,为了向请求172的执行过程引入可变长度延迟,至少一个控制器IlOA在步骤S321证明是否激活延迟功能112A。如果未激活延迟功能112A,则所述过程继续步骤S330,并且经由外部网络190向发出请求的客户机180发送对应的响应174。例如,当存储系统100A的输入/输出负载低于特定负载阈值并且没有外部设备180遇到其中请求172的完成时间Tc超过最大允许请求响应时间值To的超时条件时,完全关闭延迟功能112A。如果激活延迟功能112A,则在步骤S322确定最大允许请求响应时间值To,并且在步骤S323测量当前请求执行时间Te。在步骤S324,基于步骤S324中的测量的请求执行时间Te,确定对应请求172的请求完成时间Tc。在步骤S325,延迟功能112A将所确定的请求完成时间Tc与小于最大允许请求响应时间值To的特定阈值Tl相比较。如果请求完成时间Tc低于特定阈值Tl,则延迟功能112A在步骤S326确定单独延迟持续时间,并且在步骤S327向请求172的执行过程添加所确定的延迟持续时间。当请求完成时间Tc对应于或超过特定阈值Tl,则在步骤S328,不向请求172的执行过程添加延迟。
[0056]例如,I/O请求控制器IlOA的延迟功能112A通过请求172的所测量的执行时间Te与整体建议的响应时间Tc的差,确定延迟持续时间。I/O请求控制器IlOA基于整体系统负载确定目标响应时间。如果它检测到系统过载,则将选择基于协议的最大可接受响应时间。
[0057]参考图6,本发明的各实施例引入延迟功能112A,延迟功能112A向请求172的执行过程添加可变长度延迟。如果系统IA具有低负载并且没有客户机180遇到超时,则可以完全关闭延迟功能112A。当开启时,延迟功能112A不向花费很长时间的I/O请求添加延迟时间,但延迟功能112A针对远低于客户机180的可接受超时阈值To的所有I/O请求添加延迟。针对每个单独请求172确定该延迟。调整该延迟以便完成时间Tc接近但保持低于客户机超时阈值To。例如,采用以下方式确定单独延迟持续时间:测量的请求执行时间Te与单独延迟持续时间的总和接近最大允许请求响应时间To。因为在服务于请求172之后确定该延迟,所以可以准确计算延迟持续时间,从而导致所有请求172在非常类似的时间内被服务,如图6中所示。因此,本发明的各实施例从系统IA移除某些负载,从而允许系统IA减少平均服务时间,因此减少单独请求172超过客户机180的可接受超时阈值To的概率。
[0058]因此,如果系统负载增加(由长的平均响应时间指示),则延迟功能112A仅向在平均增加响应时间时仍然远离超时阈值To的单独快速请求172添加延迟持续时间。
[0059]在示出的实施例中,延迟功能112A通过单独连接确定最大允许响应时间To,以便每个客户机180可以具有基于客户机实现版本的不同超时阈值To,并且单独请求将具有保持低于单独连接的客户机超时阈值限制To的延迟持续时间。
[0060]在一个备选实施例中,可变延迟“响应时间目标”允许基于所检测的负载和/或平均响应时间,在从“无额外延迟”到“最大额外延迟”的范围内平稳变化。
[0061]此外,本发明的实施例允许以高于现有技术中可能实现的粒度处理客户机I/O请求。在另一个实施例中,I/o请求控制器IlOA与智能延迟功能112A—起可以以优选方式处理特定客户机180或客户机池。与给出更高响应时间增加的其它连接的客户机相比,可能为例如与特定IP地址连接的特定客户机提供更高的优先级和/或更小和/或无I/O响应时间增加。
[0062]附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0063]出于示例目的给出了对本发明的不同实施例的描述,但所述描述并非旨在是穷举的或是限于所公开的实施例。在不偏离所述实施例的范围和精神的情况下,对于所属【技术领域】的普通技术人员来说许多修改和变化都将是显而易见的。在此使用的术语的选择,旨在最好地解释实施例的原理、实际应用或对市场中的技术的技术改进,或者使所属【技术领域】的其它普通技术人员能理解在此所公开的实施例。
【权利要求】
1.一种网络附加存储系统,其包括经由外部网络(190)连接到至少一个外部设备(180)的存储系统(100A),其中所述存储系统(100A)包括至少一个存储介质(130)和至少一个控制器(110A),所述至少一个控制器(110A)向所述至少一个外部设备(180)提供所述存储系统(100A)的存储容量,其中所述至少一个外部设备(180)向所述存储系统(100A)发送请求(172),其中所述至少一个控制器(110A)接收和服务于所述请求(172),并且在服务于所述请求(172)之后向发出请求的外部设备(180)发送响应(174);其中所述至少一个控制器(110A)包括延迟功能(112A),所述延迟功能(112A)基于所述存储系统(100A)的当前输入/输出负载、最大允许请求响应时间(To)、请求完成时间(Tc)以及测量的当前请求执行时间(Te),向所述请求(172)的执行过程引入可变长度延迟。
2.根据权利要求1的网络附加存储系统,其中当所述存储系统(100A)的输入/输出负载低于特定负载阈值并且没有外部设备遇到其中所述请求(172)的所述完成时间(Tc)超过所述最大允许请求响应时间值(To)的超时条件时,所述至少一个控制器(110A)完全关闭所述延迟功能(112A)。
3.根据权利要求1或2的网络附加存储系统,其中所述至少一个控制器(110A)的所述延迟功能(112A)在服务于所述请求(172)之后测量所述当前请求执行时间(Te),并且基于所测量的请求执行时间(Te),确定对应请求(172)的所述请求完成时间(Tc)。
4.根据上述权利要求1至3之一的网络附加存储系统,其中当所述请求完成时间(Tc)超过小于所述最大允许请求响应时间值(To)的特定阈值(Tl)时,所述延迟功能(112A)不向所述请求(172)的所述执行过程添加延迟。
5.根据上述权利要求1至4之一的网络附加存储系统,其中当所述请求完成时间(Tc)低于特定阈值(Tl)时,所述延迟功能(112A)向所述请求(172)的所述执行过程添加单独延迟持续时间。
6.根据权利要求5的网络附加存储系统,其中所述延迟功能(112A)确定所述单独延迟持续时间,使得所测量的请求执行时间(Te)与所述单独延迟持续时间的总和接近所述最大允许请求响应时间(To)。
7.根据权利要求6的网络附加存储系统,其中所述延迟功能(112A)通过计算所述请求(172)的所测量的当前执行时间(Te)或所确定的请求完成时间(Tc)与所述请求(172)的所述最大允许请求响应时间(To)之间的差,确定所述单独延迟持续时间。
8.根据上述权利要求1至7之一的网络附加存储系统,其中所述延迟功能(112A)确定每个外部设备(180)的单独最大允许请求响应时间(To)。
9.一种用于网络附加存储系统中的请求处理的方法,所述网络附加存储系统包括经由外部网络(190)连接到至少一个外部设备(180)的存储系统(100A),其中所述存储系统(100A)包括至少一个存储介质(130)和至少一个控制器(110A),所述至少一个控制器(110A)向所述至少一个外部设备(180)提供所述存储系统(100A)的存储容量,所述方法包括以下步骤: 所述至少一个外部设备(180)向所述存储系统(100A)发送请求(172), 所述存储系统(100A)的所述至少一个控制器(110A)接收和服务于所述请求(172); 所述至少一个控制器(110A)的延迟功能(112A)基于所述存储系统(100A)的当前输入/输出负载、最大允许请求响应时间(To)、请求完成时间(Tc)以及测量的执行时间(Te),向所述请求(170)的执行过程引入可变长度延迟; 所述至少一个控制器(110A)向发出请求的外部设备(180)发送响应(174);以及 所述至少一个外部设备(180)接收所述响应(174)。
10.根据权利要求9的方法,其中当所述存储系统(100A)的输入/输出负载低于特定负载阈值并且没有外部设备遇到其中所述请求的所述完成时间(Tc)超过所述最大允许请求响应时间值(To)的超时条件时,完全关闭所述延迟功能(112A)。
11.根据权利要求9或10的方法,其中在服务于所述请求(172)之后测量所述当前请求执行时间(Te),并且基于所测量的请求执行时间(Te),确定对应请求(172)的所述请求完成时间(Tc)。
12.根据上述权利要求9至11之一的方法,其中当所述请求完成时间(Tc)超过特定阈值(Tl)时,不向所述请求(172)的所述执行过程添加延迟;以及 其中当所述请求完成时间(Tc)低于特定阈值(Tl)时,向所述请求(172)的所述执行过程添加单独延迟持续时间。
13.根据权利要求11或12的方法,其中以所述请求执行时间(Te)与所述单独延迟持续时间的总和接近所述最大允许请求响应时间(To)的方式确定所述单独延迟持续时间。
【文档编号】H04L29/08GK104516685SQ201410508519
【公开日】2015年4月15日 申请日期:2014年9月28日 优先权日:2013年10月4日
【发明者】M·迪德里希, R·沃拉夫卡, I·门茨, H·齐斯根 申请人:国际商业机器公司