CN100447732C - 用于存储网络的方法和系统 - Google Patents
用于存储网络的方法和系统 Download PDFInfo
- Publication number
- CN100447732C CN100447732C CNB2006101083628A CN200610108362A CN100447732C CN 100447732 C CN100447732 C CN 100447732C CN B2006101083628 A CNB2006101083628 A CN B2006101083628A CN 200610108362 A CN200610108362 A CN 200610108362A CN 100447732 C CN100447732 C CN 100447732C
- Authority
- CN
- China
- Prior art keywords
- storage
- device driver
- multipath
- described storage
- queue depth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000003860 storage Methods 0.000 claims abstract description 111
- 238000012544 monitoring process Methods 0.000 claims abstract description 5
- 230000005055 memory storage Effects 0.000 claims description 31
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 230000007423 decrease Effects 0.000 abstract description 7
- 238000004590 computer program Methods 0.000 abstract description 2
- 230000015572 biosynthetic process Effects 0.000 description 14
- 238000013500 data storage Methods 0.000 description 8
- 208000034657 Convalescence Diseases 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000002401 inhibitory effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 101150053844 APP1 gene Proteins 0.000 description 2
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 2
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 2
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 2
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001609030 Brosme brosme Species 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据计算机程序产品、设备和方法,提供一种冗余网络,其中主机计算机通过以下操作而与多个存储装置一起操作:监测多路径存储网络的条件,并结合相关联的存储多路径装置输入/输出(I/O)等待队列,控制存储多路径装置驱动器,以当I/O需求增加时增加到存储装置驱动器的I/O吞吐量,以及在I/O错误条件的情况下减少到存储装置驱动器的I/O吞吐量,其中存储装置驱动器诸如磁盘装置驱动器。
Description
技术领域
本发明一般地涉及数据存储网络、系统和方法,并且更具体地涉及在存储区域网(SAN)型体系结构中有用的数据队列管理设备和方法。
背景技术
对于数据存储装置,诸如基于磁盘的数据存储装置,通常对于它在良好条件下以及在错误条件下能够处理的请求的数目具有一个推荐值。该值通常被称作队列深度(Queue Depth),并且可以被磁盘装置驱动器用来控制对存储装置的输入/输出(I/O)流。
在多路径配置环境中,存在多条路径来向I/O提供磁盘装置驱动器。由于从磁盘装置驱动器发送到存储装置的I/O的数目还由队列深度值所限定,所以会有很多任务在磁盘装置驱动器等待队列中排队。这在错误恢复期间会引起问题,因为磁盘装置驱动器通常将多次重试对队列的所有请求(例如,每个排队请求进行五次重试)。由于在多路径配置环境中等待队列会变得长得多,所以这会导致在错误恢复期间显著的性能下降,或者在最坏的情况下,系统悬置(hanging)导致应用超时。
为了解决这个问题,存储多路径装置驱动器可以在其用以限制发送到磁盘装置驱动器的I/O量的级别上实现队列深度控制。该处理可以帮助解决在错误恢复进程期间在磁盘装置驱动器级别上的性能下降问题。
然而,这会在存储多路径装置驱动器级别上具有大I/O或繁重I/O的正常条件(非错误)期间引入进一步的问题,特别是在向少量的存储装置泛洪非常大的I/O的特定类型应用的情况下。在这种条件下,会在存储多路径装置驱动器的等待队列,将大量任务加入队列,这会导致严重的性能下降和/或系统悬置情况。
可以理解,在存储多路径装置驱动器级别上缺少队列深度限制的情况下,磁盘装置驱动器会成为错误恢复情形中的瓶颈。但是,如果存储多路径装置驱动器使用队列深度来限制I/O流,则在具有繁重I/O的正常(非错误)条件期间,存储多路径装置驱动器会成为该瓶颈。
在Lumb等人的题为“Quality of Service Controller and Method fora Data Storage System”的US2004/0194095A1中,公开了针对多个存储系统工作负载的每一个的请求进行优先级排序。根据请求的优先级,将请求选择性地转发到存储装置队列,使得将装置队列维持在目标队列深度。响应于请求的等待时间值,调整目标队列深度,其中基于对每个工作负载的请求的到达时间与完成时间之差,计算等待时间值。通过基于监测到的请求的到达时间和其工作负载的目标等待时间,计算请求的目标期限时间,可以完成对请求的优先级排序。为了减少等待时间,当工作负载的目标等待时间小于其计算的等待时间值时,可以减小目标队列深度,以及为了增加吞吐量,当每个工作负载的目标等待时间大于每个计算的等待时间值时可以增加目标队列深度。
在Kahn等人的题为“Adaptive Throttling for Fiber Channel Disks”的US6,636,909B1中,公开了一种向磁盘发送写请求并且如果磁盘队列已满则响应于从磁盘接收到队列已满信号来设定抑制值的方法。该方法试图通过在本地软件磁盘驱动器队列中对将使存储装置过载的命令进行排队来避免触发存储装置的队列已满状态。由于对命令发布的预定限制不可行,取而代之的是发起者装置必须能够识别可能的错误产生情形并且之后限制或抑制发出的命令数。因此,通过向磁盘发送写请求,如果磁盘队列已满则从磁盘接收队列已满信号,以及响应于接收设定抑制值的队列已满信号并且之后动态地调整抑制值以将存储装置维持在稳定状态,由此操作该方法。
在Gaertner等人的题为“Disc Drive Data Storage System andMethod for Dynamically Scheduling Queued Commands”的US6,170,042B1中,公开了一种对命令进行调度的数据存储系统和方法,其中将命令存储在命令类型队列和调度的命令队列中。对在命令类型队列中的命令进行归类并且分配一个优先级。最后,将命令类型队列中的命令传送到调度的命令队列,其中在不进一步归类的情况下,执行调度的命令队列中的命令。根据命令类型队列的队列深度和表示执行调度的命令队列中命令的速率的命令执行速率值,确定所期望的调度的命令队列的队列深度或大小。使用命令类型队列的队列深度和命令执行速率值作为对查找表的输入,可以动态地确定所期望的队列深度。数据存储系统可以包括执行来自主机系统的命令的小计算机系统接口(SCSI)盘驱动。
这些美国专利和美国专利公开没有针对上述的特定问题,并因而不提供对这些问题的解决方案。
发明内容
根据本发明的目前优选的实施例,可以克服上述以及其他问题并实现其它优点。
根据计算机程序产品、设备和方法,提供一种冗余网络,其中通过结合相关联的存储多路径装置输入/输出(I/O)等待队列,监测多路径存储网络的条件以及控制存储多路径装置驱动器,主计算机与至少一个存储装置操作,以在I/O需求增加时增加对诸如磁盘装置驱动器的存储装置驱动器的I/O吞吐量,以及在I/O错误条件的情况下减少对存储装置驱动器的I/O吞吐量。
附图说明
通过结合附图阅读以下对优选实施例的详细描述,可以使本发明的前述以及其它方面更加明白,其中:
图1是适于实施本发明的存储区域网(SAN)系统的框图;以及
图2是说明根据本发明的示例性实施例的方法的逻辑流程图。
具体实施方式
图1是适于实施本发明的存储区域网(SAN)系统10的框图。该SAN系统10包括主机12,其经由至少一条总线,这里也称作电缆或数据路径14,耦合到至少一个存储装置,诸如磁盘驱动器16。该主机12可以是计算机,诸如大型计算机、工作站、个人计算机或任何类型的计算装置。该磁盘驱动器16实际上可以包括多个磁盘驱动器,诸如磁盘驱动器阵列15,并且可以实施为廉价磁盘冗余阵列(RAID)。可以有一个磁盘驱动控制器19来整体负责将数据存储在磁盘驱动器16中以及从磁盘驱动器16中读取数据。路径14可以为光纤信道(FC)型总线,并且可以实现SCSI型接口。路径14的确切属性和/或路径协议的种类与实施本发明的示例性实施例没有太大关系。
为了描述本发明的示例性实施例的目的,假设主机12包括存储多路径装置驱动器(SMDD)12A,其与存储多路径装置I/O等待队列12B一起操作。进一步假设主机12包括磁盘装置驱动器(DDD)18A,其与磁盘装置驱动器I/O等待队列18B一起操作。
存储多路径装置驱动器12A和磁盘装置驱动器18A中的一个或其二者都可以使用执行存储的软件程序的数据处理器、或者具有硬件逻辑单元的数据处理器、或者具有软件程序和硬件逻辑单元的组合的数据处理器来实现。I/O等待队列12B和18B可以使用任何合适类型的读/写存储器诸如半导体随机访问存储器(RAM)来实现。
可以假设主机12包括或者耦合到至少一个应用(APP),并且更典型地包括或者耦合到多个应用(APP1,APP2,…,APPn),其中至少一些应用经由存储多路径装置驱动器12A执行基于磁盘的I/O。典型地,存储多路径装置驱动器12A经由操作系统13耦合到应用(APP1,APP2,…,APPn)。
为了本发明的目的,可以将总线14看作是路径,并且实际上在主机12和存储装置之间可以有多条路径(即,多路径)。这可以使用耦合到至少两条路径以及耦合到交换结构20的至少一个主机适配器(HA)12C来实现,从该交换结构20,多路径发散到存储装置。在主机12和存储装置之间多路径的使用提供了冗余并且避免产生单点故障(POF)。通过使用多个路径14,SAN 10可以看作是冗余SAN。假设存储多路径装置驱动器12A知晓将主机12连接到存储装置16的各种路径14的操作状态。另一个HA 12C可以用于直接地或者经由另一个交换结构(未示出)耦合到另外一个或多个存储装置22。
通过示例,每一个磁盘驱动器可以有十个存储装置LUN(逻辑单元数),并且到每个LUN可以有八条路径14。
根据本发明的示例性实施例,通过在存储多路径装置驱动器12A级别上向工作负载管理添加智能来解决上述问题。和使用与工作负载变化无关的恒定深度的I/O等待队列12B相反,存储多路径装置驱动器12A根据工作负载的变化,动态地调整发送到磁盘装置驱动器18A的I/O的量。该技术有助于在正常(非错误)操作和错误恢复操作的各种条件下,平衡存储多路径装置驱动器I/O等待队列12B以及磁盘装置驱动器I/O等待队列18B的长度。
通过使用本发明的示例性实施例,当来自应用的需求增加时,I/O吞吐量增加,因而避免性能下降并且防止由存储多路径装置驱动器12A执行的队列深度控制所引起的系统悬置。在I/O故障的情况下,存储多路径装置驱动器12A敏感于该变化并且有效地将发送到磁盘装置驱动器18A的I/O量“调谐”为较小值,以防止在磁盘装置驱动器18A级别上的I/O悬置或性能下降,因为通常将会对每个I/O请求进行多次重试。
在存储多路径装置驱动器12A级别上,对于在I/O等待队列18B处排队的每个任务,不与磁盘装置驱动器18A相同程度地执行多次重试(即使执行的话)。一旦特定路径14接收到一些特定数目的连续错误,则使其断开。如果所有的路径14都断开,则存储多路径装置驱动器12A会将I/O等待队列12B上的所有I/O请求返回到应用,而不进行任何重试。因此,存储多路径装置驱动器12A通常不会遇到与磁盘装置驱动器18A相同的在错误恢复过程期间的性能下降。
通过在存储多路径装置驱动器12A中添加智能,变得能够动态地感知和响应变化的I/O量以及I/O错误的发生,使得有效地处理正常或良好条件以及错误条件两者。可以在任何平台上,通过使用I/O队列12B的队列深度以动态地控制I/O流,利用任何存储多路径装置驱动器来实施本发明的非限定性实施例。
为了实现本发明的示例性实施例,建立一组规则来控制I/O流,以便于避免繁重I/O和/或错误恢复期间的性能下降和/或系统悬置。至少考虑以下要素来建立该组规则:
(a)由存储装置控制器19(例如,磁盘驱动器16的控制器)推荐的队列深度值;
(b)当存储多路径装置驱动器12A开始经历繁重I/O(大量)条件期间的性能下降时,存储多路径装置驱动器I/O等待队列12B的长度(其中所有未处理的I/O请求进行排队);
(c)当磁盘装置驱动器18A开始经历错误恢复期间的性能下降时,磁盘装置驱动器I/O等待队列18B的长度;以及
(d)当错误恢复期间开始经历性能下降时由存储多路径装置驱动器12A用来控制到磁盘装置驱动器18A的I/O流的队列深度的系数。
在确定了以上要素之后,存储多路径装置驱动器12A使用这些要素来实现以下逻辑。还参考图2的逻辑流程图。
在正常条件期间,在块A处,存储多路径装置驱动器12A使用以下公式来计算发送到磁盘装置驱动器18A的I/O量:
发送到装置上的磁盘装置驱动器18A的I/O总量=队列深度×用于队列深度的全局系数×功能路径的总数;
其中用于队列深度的全局系数=1。注意,优选地,用于队列深度的全局系数为由所有多路径存储装置16所使用的队列深度值的系数。
“正常条件”可以看作是一个其中不存在繁重I/O和/或错误条件的情况。这里采用的“繁重I/O”可以看作是应用初始存储装置活动量,其超出正常活动量某个预定量。该预定量可以是固定的或者可以是根据系统条件可变的。例如,在装有主机12系统的AIXTM操作系统13(AIXTM是一个开放操作系统,基于UNIXTM,可从本专利申请的受让人那里获得)上,以下表定义了用于该实现的适当规则(n为I/O请求数):
等待队列的长度 用于队列深度的全局系数(用于所有存储装置)
n>=1200 3
800<n<1200 2
n<800 1
例如,如果I/O等待队列12B上的I/O请求数为1100,则由存储多路径装置驱动器12A使用上述公式执行的计算使用针对用于队列深度的全局系数为2的值。
在繁重I/O环境中,以及在块B处,存储多路径装置驱动器12A监测I/O等待队列12B的长度并且相应地调整用于队列深度的全局系数值以允许更多的I/O发送到磁盘装置驱动器18A。
在错误条件中,在块C处,存储多路径装置驱动器12A监测功能路径数并且相应地调整用于队列深度的单个系数以减少发送到磁盘装置驱动器18A的I/O量。如果多路径装置的功能路径的百分比(这里称作m)降低到小于100%,则存储多路径装置驱动器12A从使用用于正常或繁重I/O条件的全局系数转换为该磁盘16的单独系数,用于控制在错误条件期间的队列深度。
例如,再次假设安装在主机12上的AIXTM操作系统13的非限定性情况,以下说明用于该实现的适当规则:
如果50%<m<100%,则给出由(f)指示的用于队列深度的单独系数(每个多路径装置)如下:
如果用于队列深度的全局系数>=2,则f=用于队列深度的全局系数-1;
否则
如果m<=50%,则f=1。
例如,在示例性情况中假设到存储装置16的路径总数为八,功能路径数为六,并且假设用于队列深度的全局系数为三。在这种情况下,满足50%<m<100%的条件。因此,由存储多路径装置驱动器12A执行以下计算:
发送到磁盘装置驱动器18A的I/O总量=队列深度×(用于队列深度的全局系数-1)×功能路径总数。
基于上述讨论,应理解到,通过在存储多路径装置驱动器12A中实现所述方法,可以启动该存储多路径装置驱动器12A,以基于工作负载以及I/O错误的存在与否,来动态地调整到磁盘装置驱动器18A的I/O流,以避免在繁重I/O和错误条件下的性能下降或系统悬置。
本发明的示例性实施例的特征在于,可以对应于I/O条件来调整在主机12和存储装置16之间的带宽,以避免在存储多路径装置驱动器12A或磁盘装置驱动器18A处产生瓶颈。
本发明的示例性实施例的另一特征在于,在非错误条件期间(包括繁重I/O条件期间)避免了存储多路径装置驱动器12A的过载,并且在错误条件期间避免了磁盘装置驱动器18A的过载。
以上描述已经通过示例性且非限定性示例对本发明的实施例提供了全面而有益的描述。但是,对于相关领域技术人员而言,通过结合附图以及所附的权利要求书阅读以上描述,各种改变和修改会变得显而易见。例如,尽管将存储装置描述为了耦合到磁盘装置驱动器18A的磁盘驱动器16,但在其他实施例中,可以使用其他类型的存储装置,诸如磁带存储装置和基于半导体存储器的存储装置。DDD 18A因而可以被更一般地称作存储装置驱动器,以及相关联的I/O队列18B可以被更一般地称作存储装置驱动器I/O等待队列。另外,磁盘驱动器15可以基于磁技术或者光技术,并且可以使用固定的或者可移动的存储介质。更进一步,可以理解到,SMDD 12A可以响应于多个不同的错误条件,诸如在磁盘驱动器16、磁盘驱动控制器19、交换结构20和/或HA 12C中的一个或多个中产生的错误。另外在这方面,如果希望的话,可以根据错误源来调整由SMDD 12A执行的错误条件处理,因而在本质上是自适应的。但是,对本发明教导的所有这样的修改仍将落在本发明的实施例的范围内。
此外,在不对其他特征进行对应使用的情况下,本发明实施例的一些特征可以用来产生有益效果。这样,以上描述应看作是仅用于说明本发明的原理、教导和实施例,而不对其进行限制。
Claims (15)
1.一种用于在冗余存储网络中操作与至少一个存储装置耦合的主机的方法,所述主机包括存储多路径装置驱动器和存储装置驱动器,所述存储多路径装置驱动器与存储多路径装置I/O等待队列一起操作,所述方法包括:
监测所述冗余存储网络的操作;以及
根据所述存储多路径装置I/O等待队列的队列深度,操作所述存储多路径装置驱动器,以当I/O需求增加时增加到所述存储装置驱动器的I/O吞吐量,以及在I/O错误条件的情况下减少到所述存储装置驱动器的I/O吞吐量。
2.如权利要求1所述的方法,其中在正常I/O操作条件期间,操作所述存储多路径装置驱动器包括使用下列公式计算发送到所述存储装置驱动器的I/O量:
发送到存储装置驱动器的I/O总量=队列深度×用于队列深度的全局系数×功能路径的总数,其中用于队列深度的全局系数=1。
3.如权利要求2所述的方法,其中在繁重I/O操作条件期间,操作所述存储多路径装置驱动器包括监测所述I/O等待队列的长度以及相应地调整所述用于队列深度的全局系数,以允许更多的I/O被发送到所述存储装置驱动器。
4.如权利要求2所述的方法,其中在错误条件期间,操作所述存储多路径装置驱动器包括监测所述功能路径的总数以及对应地调整用于队列深度的单独系数,以减少发送到所述存储装置驱动器的I/O量,其中当功能路径的百分比降低到小于100%时,则所述存储多路径装置驱动器从使用所述用于队列深度的全局系数转换为使用存储装置用于控制I/O等待队列深度的单独系数。
5.如权利要求1所述的方法,其中所述至少一个存储装置包括磁盘存储装置。
6.一种包括冗余存储网络的系统,所述冗余存储网络包括经由多条路径耦合到至少一个存储装置的主机,所述主机包括与存储多路径装置输入/输出(I/O)等待队列耦合的存储多路径装置驱动器,所述存储多路径装置驱动器耦合到包括存储装置驱动器I/O队列的存储装置驱动器,所述存储多路径装置驱动器可操作用于监测所述冗余存储网络的条件,以当I/O需求增加时增加到所述存储装置驱动器的I/O吞吐量,以及在I/O错误条件的情况下减少到所述存储装置驱动器的I/O吞吐量。
7.如权利要求6所述的系统,其中在正常I/O操作条件期间,所述存储多路径装置驱动器使用下列公式计算发送到所述存储装置驱动器的I/O量:
发送到存储装置驱动器的I/O总量=队列深度×用于队列深度的全局系数×功能路径的总数,其中用于队列深度的全局系数=1。
8.如权利要求7所述的系统,其中在繁重I/O操作条件期间,所述存储多路径装置驱动器监测所述I/O等待队列的长度,并相应地调整所述用于队列深度的全局系数,以允许更多的I/O被发送到所述存储装置驱动器。
9.如权利要求7所述的系统,其中在错误条件期间,所述存储多路径装置驱动器监测所述功能路径的总数,并对应地调整用于队列深度的单独系数,以减少发送到所述存储装置驱动器的I/O量,其中当功能路径的百分比降低到小于100%时,则所述存储多路径装置驱动器从使用所述用于队列深度的全局系数转换为使用存储装置用于控制I/O等待队列深度的单独系数。
10.如权利要求6所述的系统,其中所述至少一个存储装置包括磁盘存储装置。
11.一种包括多路径接口的主机,所述多路径接口用于经由多条路径耦合到至少一个存储装置,所述主机包括存储多路径装置驱动器,所述存储多路径装置驱动器包括存储多路径装置输入/输出(I/O)等待队列,所述存储多路径装置驱动器耦合到包括存储装置驱动器I/O队列的存储装置驱动器,所述存储多路径装置驱动器可操作为当I/O需求增加时增加到所述存储装置驱动器的I/O吞吐量,以及在I/O错误条件的情况下减少到所述存储装置驱动器的I/O吞吐量。
12.如权利要求11所述的主机,其中在正常I/O操作条件期间,所述存储多路径装置驱动器使用下列公式计算发送到所述存储装置驱动器的I/O量:
发送到存储装置驱动器的I/O总量=队列深度×用于队列深度的全局系数×功能路径的总数,其中用于队列深度的全局系数=1。
13.如权利要求12所述的主机,其中在繁重I/O操作条件期间,所述存储多路径装置驱动器监测所述I/O等待队列的长度,并相应地调整所述用于队列深度的全局系数,以允许更多的I/O被发送到所述存储装置驱动器。
14.如权利要求12所述的主机,其中在错误条件期间,所述存储多路径装置驱动器监测所述功能路径的总数,并对应地调整用于队列深度的单独系数,以减少发送到所述存储装置驱动器的I/O量,其中当功能路径的百分比降低到小于100%时,则所述存储多路径装置驱动器从使用所述用于队列深度的全局系数转换为使用存储装置用于控制I/O等待队列深度的单独系数。
15.如权利要求11所述的主机,其中所述至少一个存储装置包括磁盘存储装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/206,938 | 2005-08-17 | ||
US11/206,938 US7363399B2 (en) | 2005-08-17 | 2005-08-17 | Method, apparatus and computer program product providing storage network dynamic tuning of I/O flow with Queue Depth |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1916833A CN1916833A (zh) | 2007-02-21 |
CN100447732C true CN100447732C (zh) | 2008-12-31 |
Family
ID=37737836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101083628A Expired - Fee Related CN100447732C (zh) | 2005-08-17 | 2006-08-02 | 用于存储网络的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7363399B2 (zh) |
CN (1) | CN100447732C (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024426B2 (en) * | 2007-05-11 | 2011-09-20 | Texas Memory Systems, Inc. | Non-disruptive data path upgrade using target mobility |
US7797487B2 (en) * | 2007-06-26 | 2010-09-14 | Seagate Technology Llc | Command queue loading |
US7870335B2 (en) * | 2007-06-26 | 2011-01-11 | Seagate Technology Llc | Host adaptive seek technique environment |
US8346995B2 (en) | 2008-09-30 | 2013-01-01 | Microsoft Corporation | Balancing usage of hardware devices among clients |
US8479214B2 (en) * | 2008-09-30 | 2013-07-02 | Microsoft Corporation | Hardware throughput saturation detection |
US8245229B2 (en) * | 2008-09-30 | 2012-08-14 | Microsoft Corporation | Temporal batching of I/O jobs |
US8024498B2 (en) | 2008-12-15 | 2011-09-20 | International Business Machines Corporation | Transitions between ordered and ad hoc I/O request queueing |
WO2010073414A1 (en) * | 2008-12-26 | 2010-07-01 | Hitachi, Ltd. | Storage system for optimally controlling a plurality of data transfer paths and method therefor |
US8135924B2 (en) | 2009-01-14 | 2012-03-13 | International Business Machines Corporation | Data storage device driver |
US9325583B2 (en) * | 2009-01-27 | 2016-04-26 | Hewlett Packard Enterprise Development Lp | Method and system for optimizing network input/output performance |
US8151050B2 (en) * | 2009-03-02 | 2012-04-03 | Netapp, Inc. | System for handling input/output requests between storage arrays with different performance capabilities |
US8255596B2 (en) * | 2009-06-10 | 2012-08-28 | International Business Machines Corporation | Multipath-based migration of data across storage controllers |
US8341314B2 (en) * | 2009-06-30 | 2012-12-25 | Hewlett-Packard Development Company, L.P. | Managing I/O request in storage system |
US8417849B2 (en) * | 2009-10-07 | 2013-04-09 | International Business Machines Corporation | Apparatus and method to adjust a multi-path device reservation |
US8893146B2 (en) * | 2009-11-13 | 2014-11-18 | Hewlett-Packard Development Company, L.P. | Method and system of an I/O stack for controlling flows of workload specific I/O requests |
EP2328322B1 (en) * | 2009-11-27 | 2012-10-31 | Tixel GmbH | Method and apparatus for accessing files stored in a storage access network (SAN) or network attached storange (NAS) |
US20110246677A1 (en) * | 2010-04-05 | 2011-10-06 | Lsi Logic Corporation | Systems and methods for controlling commands for target devices |
US8589941B2 (en) * | 2010-04-23 | 2013-11-19 | International Business Machines Corporation | Resource affinity via dynamic reconfiguration for multi-queue network adapters |
US8452901B1 (en) | 2011-12-30 | 2013-05-28 | Emc Corporation | Ordered kernel queue for multipathing events |
US9317382B2 (en) | 2013-05-21 | 2016-04-19 | International Business Machines Corporation | Storage device with error recovery indication |
US9081741B2 (en) | 2013-05-21 | 2015-07-14 | International Business Machines Corporation | Minimizing delay periods when accessing mirrored disks |
KR102086778B1 (ko) * | 2013-09-30 | 2020-04-14 | 삼성전자 주식회사 | 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법 |
US9575664B2 (en) * | 2015-04-08 | 2017-02-21 | Prophetstor Data Services, Inc. | Workload-aware I/O scheduler in software-defined hybrid storage system |
US10599340B1 (en) | 2017-07-13 | 2020-03-24 | EMC IP Holding LLC | Policy driven IO scheduler to improve read IO performance in hybrid storage systems |
US10509739B1 (en) * | 2017-07-13 | 2019-12-17 | EMC IP Holding Company LLC | Optimized read IO for mix read/write scenario by chunking write IOs |
US10346054B1 (en) * | 2017-07-13 | 2019-07-09 | EMC IP Holding Company LLC | Policy driven IO scheduler resilient to storage subsystem performance |
US10592123B1 (en) | 2017-07-13 | 2020-03-17 | EMC IP Holding Company LLC | Policy driven IO scheduler to improve write IO performance in hybrid storage systems |
US10719245B1 (en) | 2017-07-13 | 2020-07-21 | EMC IP Holding Company LLC | Transactional IO scheduler for storage systems with multiple storage devices |
US11435944B2 (en) * | 2019-07-24 | 2022-09-06 | Micron Technology, Inc. | Dynamic memory address write policy translation based on performance needs |
US11599271B2 (en) * | 2021-02-12 | 2023-03-07 | Hewlett Packard Enterprise Development Lp | Controlling I/O Q-connections in NVMe devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170042B1 (en) * | 1998-02-24 | 2001-01-02 | Seagate Technology Llc | Disc drive data storage system and method for dynamically scheduling queued commands |
US6636909B1 (en) * | 2000-07-05 | 2003-10-21 | Sun Microsystems, Inc. | Adaptive throttling for fiber channel disks |
US20040194095A1 (en) * | 2003-03-27 | 2004-09-30 | Christopher Lumb | Quality of service controller and method for a data storage system |
US20050154797A1 (en) * | 2003-11-20 | 2005-07-14 | International Business Machines Corporation | Method, apparatus, and program for detecting sequential and distributed path errors in MPIO |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680539A (en) * | 1995-07-11 | 1997-10-21 | Dell Usa, L.P. | Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation |
US6105122A (en) * | 1998-02-06 | 2000-08-15 | Ncr Corporation | I/O protocol for highly configurable multi-node processing system |
US6452915B1 (en) * | 1998-07-10 | 2002-09-17 | Malibu Networks, Inc. | IP-flow classification in a wireless point to multi-point (PTMP) transmission system |
US6711137B1 (en) * | 1999-03-12 | 2004-03-23 | International Business Machines Corporation | System and method for analyzing and tuning a communications network |
US7305492B2 (en) * | 2001-07-06 | 2007-12-04 | Juniper Networks, Inc. | Content service aggregation system |
US7581017B2 (en) * | 2001-11-22 | 2009-08-25 | Panasonic Corporation | Data transmission system, data transmission apparatus, data reception apparatus, and data transmission method |
US6839817B2 (en) * | 2002-04-24 | 2005-01-04 | International Business Machines Corporation | Priority management of a disk array |
JP2005538639A (ja) | 2002-09-10 | 2005-12-15 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | リアルタイムのリトライ限界−無線ローカル・エリア・ネットワークのスループットを最大化し、パケット・ロスを最小化するシステムおよび方法 |
GB0312171D0 (en) * | 2003-05-28 | 2003-07-02 | Ibm | Workload balancing |
US7162550B2 (en) * | 2003-07-21 | 2007-01-09 | Intel Corporation | Method, system, and program for managing requests to an Input/Output device |
US7242960B2 (en) * | 2004-12-13 | 2007-07-10 | Broadcom Corporation | Method and system for cellular network services and an intelligent integrated broadcast television downlink having intelligent service control with feedback |
US7688924B2 (en) * | 2005-03-24 | 2010-03-30 | Agere Systems Inc. | Methods and apparatus for asynchronous serial channel connections in communication systems |
US7761875B2 (en) * | 2005-06-10 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
-
2005
- 2005-08-17 US US11/206,938 patent/US7363399B2/en not_active Expired - Fee Related
-
2006
- 2006-08-02 CN CNB2006101083628A patent/CN100447732C/zh not_active Expired - Fee Related
-
2007
- 2007-10-26 US US11/924,782 patent/US20080046609A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170042B1 (en) * | 1998-02-24 | 2001-01-02 | Seagate Technology Llc | Disc drive data storage system and method for dynamically scheduling queued commands |
US6636909B1 (en) * | 2000-07-05 | 2003-10-21 | Sun Microsystems, Inc. | Adaptive throttling for fiber channel disks |
US20040194095A1 (en) * | 2003-03-27 | 2004-09-30 | Christopher Lumb | Quality of service controller and method for a data storage system |
US20050154797A1 (en) * | 2003-11-20 | 2005-07-14 | International Business Machines Corporation | Method, apparatus, and program for detecting sequential and distributed path errors in MPIO |
Also Published As
Publication number | Publication date |
---|---|
US7363399B2 (en) | 2008-04-22 |
US20070043854A1 (en) | 2007-02-22 |
CN1916833A (zh) | 2007-02-21 |
US20080046609A1 (en) | 2008-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100447732C (zh) | 用于存储网络的方法和系统 | |
US7934069B2 (en) | Enabling and disabling cache in storage systems | |
US7761629B2 (en) | Method for using host and storage controller port information to configure paths between a host and storage controller | |
JP3726484B2 (ja) | 記憶サブシステム | |
US8281085B2 (en) | Storage system construction managing device and construction management method | |
US7685342B2 (en) | Storage control apparatus and method for controlling number of commands executed in storage control apparatus | |
JP4921054B2 (ja) | 負荷分散制御システム及び負荷分散制御方法 | |
US8214844B2 (en) | Systems and methods for adjusting service queue capacity | |
US20060294045A1 (en) | Control of service workload management | |
US7565508B2 (en) | Allocating clusters to storage partitions in a storage system | |
US7797487B2 (en) | Command queue loading | |
US7950013B2 (en) | System for monitoring time proportion for interrupt or task processing with restriction placed in subsequent monitoring time period when allowable time proportion is exceed | |
US20080301333A1 (en) | System and article of manufacture for using host and storage controller port information to configure paths between a host and storage controller | |
JP2005275829A (ja) | ストレージシステム | |
US6898664B2 (en) | Optimizing performance for a storage device within a computer system | |
US8745326B2 (en) | Request priority seek manager | |
JP2019095971A (ja) | ストレージシステム、ストレージ制御装置およびプログラム | |
US7222348B1 (en) | Universal multi-path driver for storage systems | |
US7406617B1 (en) | Universal multi-path driver for storage systems including an external boot device with failover and failback capabilities | |
US20100107161A1 (en) | Method of Improving or Managing Performance of Storage System, System, Apparatus, and Program | |
US7870335B2 (en) | Host adaptive seek technique environment | |
US7178146B1 (en) | Pizza scheduler | |
US7058758B2 (en) | Load balancing to support tape and disk subsystems on shared fibre channel adapters | |
US8122120B1 (en) | Failover and failback using a universal multi-path driver for storage devices | |
US20130111154A1 (en) | Control device of virtual storage system, virtual storage system, and method for controlling virtual storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081231 |