CN103329106B - Alua首选项和状态转换的主机发现和处理 - Google Patents
Alua首选项和状态转换的主机发现和处理 Download PDFInfo
- Publication number
- CN103329106B CN103329106B CN201180051200.4A CN201180051200A CN103329106B CN 103329106 B CN103329106 B CN 103329106B CN 201180051200 A CN201180051200 A CN 201180051200A CN 103329106 B CN103329106 B CN 103329106B
- Authority
- CN
- China
- Prior art keywords
- controller
- lun
- state
- array
- alua
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
- G06F11/201—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
不同系统和方法可以发现非对称逻辑单元(LUN)访问(ALUA)首选项和/或状态转换并使用这些首选项和/或状态转换来控制一个主机如何访问一个ALUA阵列中的一个LUN。一种这类方法包括检测LUN的一个首选控制器,然后检测到该LUN的一个当前所有者控制器不是该首选控制器。作为响应,该方法可以从该当前所有者控制器向该首选控制器发起所有权变化。另一种方法包括检测与一个LUN有关的一个第一控制器的一种初始状态。然后该方法在检测该初始状态之后检测与该LUN有关的第一控制器的一种后续状态。接着响应于该后续状态不是有效优化状态,该方法可以使一个计算装置通过一个第二控制器访问该LUN。
Description
哈里·克利须那·维姆瑞
楚萨·瑞文德奈斯·高瑟威
奈哈·拉伽德拉普拉萨德·甘地
技术领域
本发明涉及非对称逻辑单元(LUN)访问(ALUA)阵列。
背景技术
一些类型的存储阵列提供了通向存储单元阵列的冗余路径,这些存储单元称为逻辑单元或LUN。非对称逻辑单元(LUN)访问(ALUA)是定义存储阵列的行为的一种标准机制。在ALUN阵列中,主计算装置可以通过若干阵列控制器内的任意一个访问该阵列中的每个LUN。然而,在任意给定时刻,针对一个给定的LUN,这些控制器中只有一个处于优化状态(并因此提供更优性能)。因此,如果主机试图通过未处于优化状态的控制器访问LUN时,性能可能会受到不利影响(例如,当访问LUN和/或完全不能访问LUN时,提供的I/O吞吐量下降)。
发明的披露
在此披露了发现并处理ALUA阵列控制器状态转换的不同系统和方法。一种这类方法包括:检测非对称逻辑单元(LUN)访问(ALUA)阵列内的LUN的首选控制器,然后检测该LUN的当前所有者控制器不是该首选控制器。作为响应,该方法可以发起从当前所有者控制器到首选控制器的所有权变化。这种方法可以通过实施多路径代理的计算装置来执行。
检测首选控制器可以包括:访问该ALUA阵列提供的静态首选项指示器,检测与该LUN的当前所有者控制器相关联的状态信息,和/或从集群中的一个其他节点接收首选控制器,在该集群中该其他节点选择多个控制器之一作为首选控制器(例如,根据预先设定的算法)。
另一种方法包括检测与LUN有关的一个ALUA阵列中的第一控制器的一种初始状态。这种初始状态是有效优化状态。然后该方法在检测初始状态之后检测与该LUN有关的第一控制器的一种后续状态。该方法不响应于从该ALUA阵列接收到表示一种状态转换的消息而检测后续状态(例如,该方法因此可以操作在一些系统中,在这些系统中不通过执行该方法的多路径代理来接收这类消息)。接着响应于后续状态不是有效优化状态,该方法使一个计算装置通过第二控制器来访问LUN。当执行上述动作时第二控制处于有效优化状态。
检测后续状态可以包括:在该计算装置通过第一控制器访问LUN时检测输入/输出性能下降,从ALUA阵列请求信息(该信息识别与LUN有关的第一控制器的状态),和/或当计算装置通过第一控制器访问LUN时检测输入/输出错误。检测后续状态的动作可以响应于计算装置从管理员接收请求而执行。
一种系统的示例可以包括一个或多个处理器以及连接至这些处理器的存储器。该存储器存储程序指令,这些程序指令可执行用于实施像上述方法的一种方法。同样,这些程序指令可以存储在计算机可读存储介质中。
前述内容是概述,因此必然包含简单化、一般化和细节省略;因此,本领域的那些普通技术人员将认识到概述仅是说明性的并且不用于任何限制。仅由权利要求所定义的本发明的其他方面、发明性特点和优点将在以下给出的非限制性详细描述中变得明显。
附图简要说明
通过参考附图,本发明可以得到更好的理解,并且其众多目标、特征以及优点对本领域的普通技术人员是明显的。
图1是根据本发明的一个实施例的一种包括ALUA阵列的系统的方框图。
图2是根据本发明的实施例的一种用于发现并处理ALUA阵列中的首选项的方法的流程图。
图3是根据本发明的一个实施例的一种用于发现并处理ALUA阵列中的所有权转换的方法的流程图。
图4是根据本发明的一个实施例的一种计算装置的方框图,该方框图展示了ALUA阵列的主机接口可以如何在软件中实施。
图5是根据本发明的一个实施例的一种网络系统的框图,该框图展示了各种计算装置如何通过网络进行通信。
尽管本发明易于进行各种修改和替换,但在附图和详细描述中本发明的具体实施例作为示例来提供。应当理解,附图和详细描述不用于将本发明限制于所披露的具体形式。相反,本发明应涵盖落在所附权利要求定义的精神和范围之内的所有修改形式、等同形式和替代形式。
实施本发明的一种或多种模式
图1是一种计算系统的方框图,该系统包括一个非对称逻辑单元(LUN)访问(ALUA)阵列。在这种系统中,每个主装置实现一个多路径代理(例如,像被配置用于执行动态多路径(DMP)的代理),该代理被配置用于检测ALUA阵列中的控制器之间的LUN所有权上的变化和/或检测ALUA阵列中的首选LUN所有权。然后该多路径代理可以使用两组信息之一或全部来控制包括该多路径代理的主机如何访问ALUA内的LUN。
如图所示,图1的计算机系统包括ALUA阵列10,该阵列通过网络30连接至3个主机算装置20(1)、20(2)、和20(3)(统称为主机20)。每个主计算装置包括一个多路径代理。因此主机20(1)包括多路径代理25(1),主机20(2)包括多路径代理25(2),而主机20(3)包括多路径代理25(3)。
ALUA阵列10包括2个控制器15(1)和15(2)(统称为控制器15)和若干LUN18(1)、18(2)、…、18(n)(统称为LUN18)。尽管主机、控制器和LUN的具体数量已经示于图1的示例中,但应当注意的是每种类型组件的数量可以在实施例之间变化。因此,一些实施例可以包括远多于3个的主机。类似地,一些实施例可以包括多于2个的控制器。
LUN18各自都是逻辑存储装置。每个LUA可以包括各种不同存储装置中的一个或多个存储装置中的每一个的至少一部分,这些装置包括硬盘、光盘、数字通用光盘、固态驱动器(SSD)存储器(例如闪存)等。
主机20各自可以包括各种不同类型计算装置中的任意一种,这些装置包括服务器、个人计算装置、膝上计算机、上网本、个人数字助理、蜂窝电话等。每个主机20被配置用于访问(例如,创建、读取、写入或删除)ALUA阵列10内的LUN18的一个或多个中存储的信息。每个主机20通过与控制器15之一进行通信来访问LUN18。
最初,当图1的系统启动时,ALUA阵列10的管理员或默认算法可用于将每个LUN18的所有权分配给控制器15之一。这种初始配置也称为ALUA阵列10的首选项。LUN的初始所有者可以称为该LUN的首选所有者。
拥有LUN18的控制器15将保留所拥有的LUN的缓存信息(例如,最近存取的数据的信息,这些数据读取自和/或写入到该LUN)。因此,如果主机20试图通过非所有控制器访问该LUN,那么该非所有控制器将需要与拥有控制器进行通信以获得该LUN的当前缓存。这在通过非所有控制器访问LUN时通常会降低输入/输出(I/O)性能。
对控制器进行LUN所有权的初始分配所采用的方式可以是对ALUA阵列的操作进行负载平衡。例如,LUN可以在控制器之间等分。可替代地,可以考虑所期望的访问模式,这样分配了更多受欢迎LUN(例如,期望具有更频繁的访问的LUN、期望提供更高服务质量的LUN、或其他类似特征)的所有权的控制器比分配了不太受欢迎LUN的所有权的控制器分配了相对较少的LUN。
每个控制器可以针对于一个给定LUN在若干状态之一中操作。如果控制器正确操作并且可以提供对该LUN的访问,该控制器就处于有效状态。如果有效的控制器当前是该LUN的所有者,该控制器就操作在有效优化状态中(例如,因为通过该所有控制器访问该LUN提供更优的性能)。相反如果该有效控制器不是该LUN的当前所有者,控制器就操作在有效非优化状态中(例如,因为通过该非所有控制器访问LUN提供了较差的性能)。控制器还可以操作在等待状态中(例如,如果当前不提供对LUN的访问,但可用作故障转移控制器)或不可用状态中(例如,如果无法或不能访问该LUN)。
应当注意的是,LUN的所有权可以从一个控制器向另一个转换。因此,LUN的当前所有者可以不是首选所有者。尽管大部分ALUA阵列允许多路径代理来访问识别LUN的当前所有者的信息,很多ALUA阵列不向多路径代理提供直接识别LUN的首选所有者的任意信息。(如以下描述的,一些ALUA阵列的确以首选项指示器的形式提供这种信息;然而,此特点不包括在很多ALUA阵列中。而且,尽管一些ALUA阵列提供首选项指示符,但并不是所有都静态地保留该指示器,因此与首选所有者相反的是,指示器最终只识别当前的所有者。)
主机20内的多路径代理25可以(通过不同的控制器)发现可用于访问每个主机的每个LUN的多个路径并控制各个主机使用哪条路径来访问每个LUN。如果在该路径(当前正用于访问一个LUN)上观察到性能失效或下降,多路径代理可以使主机开始使用另一条路径来访问该LUN。因此,多路径代理允许主机受益于ALUA阵列所提供的冗余路径。
另外,多路径代理可以发现LUN的首选控制器所有权。当ALUA阵列中出现变化时,这允许多路径代理紧密地跟踪首选分配。例如,假设最初将LUN18(1)的所有权分配给控制器15(1),从而使得控制器15(1)是LUN18(1)的首选所有者。接着,控制器15(1)发生故障,所有权转移至控制器15(2)。后来,控制器15(1)得到维修并转向有效操作。此时,多路径代理可以检测到正用于访问LUN的当前控制器不是该LUN的首选控制器并且首选控制器是可用的。作为响应,多路径代理可以使该LUN的所有权转移回修复的控制器15(1)(例如,通过发起从控制器15(2)到控制器15(1)的故障恢复)。
通过检测首选配置并在可能时将操作恢复到首选配置,多路径代理可以帮助保留专用于ALUA阵列的初始配置。例如,这可以帮助保留最初为ALUA阵列建立的负载平衡配置。
在一些实施例中,多路径代理可以通过简单访问每个LUN的ALUA阵列提供的静态首选项信息来发现该LUN的首选配置。这种首选项信息识别该LUN的首选所有者。应当注意,每个多路径代理将看到相同的首选项信息并以相同的方式使用该信息,因此可以配置所有的主机通过相同的控制器访问给定的LUN。
在很多实施例中,ALUA阵列不为每个LUN提供首选项信息。在一些这类实施例中,可以配置多路径代理跟踪每个LUN/控制器对上出现的状态转换。然后跟踪的状态转换可以用于识别该LUN的首选配置。例如,如果多路径代理已经检测到针对一个给定LUN的单一状态转换(例如,从一个控制器向另一个的故障转移将有效优化状态转移到其他控制器),多路径代理可以识别控制器(LUN从该控制器进行故障转移)是该LUN的首选所有者。多次转换同样可以进行跟踪并用于识别首选拥有者。每个多路径代理可以采用相同方式跟踪并使用这些状态转换,这样可以配置所有主机使用相同的控制器来访问给定的LUN。
在一些实施例中,可以通过从LUN的控制器请求状态信息(例如,对称访问状态(AAS)值和/或ALUA“状态码”值)可以检测状态转换。状态信息可以集中表示是否控制器已经针对该LUN改变了状态以及转换的原因。例如,如果AAS指示控制器是有效未优化的并且状态码指示该LUN已经发生了转换,多路径代理可以检测到控制器是首选控制器。相反,如果控制器是有效优化的并且状态码指示已经进行了转换,多路径代理可以检测控制器不是首选控制器。如果状态码指示没有检测到状态变化,多路径代理可以基于控制器的当前状态来确定它是否是首选控制器(例如,如果当前是有效优化控制器,就是首选的,如AAS所指示)。
一些ALUA阵列实现方式可以不保留状态信息,例如状态码值,其方式是允许状态信息用于识别首选控制器。具体而言,ALUA标准不规定故障恢复(例如,如果控制器15(1)是首选控制器,从控制器15(1)到15(2)进行故障转移,然后返回到控制器15(1))后的状态码值。因此,在故障恢复后ALUA阵列的一些实现方式不重置状态码值。在故障恢复后无法重置状态码值可能会阻止多路径代理不能以上述方式识别首选控制器。
在一些实施例中,代替跟踪状态转换的是(例如,如果ALUA阵列不提供状态信息(例如状态码值)或如果ALUA阵列在故障恢复后不重置状态码值),多路径代理可以仅使用一种一致性算法来识别首选配置。该一致性算法由相同系统中的所有多路径代理使用,这样可以配置所有主机来使用相同的控制器访问一个给定LUN。
一致性算法的一个示例是被配置用于仅使用控制器的特征(例如,控制器的标识符)来选择LUN的所有者。例如,可以配置所有多路径代理来选择具有最低(或最高)标识符的有效控制器作为LUN的首选所有者。类似地,可以配置多路径代理使用当前有效优化控制器作为LUN的首选所有者。
一致性算法的另一个示例是配置一个主机(例如,集群中的主节点)用于选择一个给定LUN的首选控制器。然后该主机将它的选择传输给系统中的所有其他主机,其他主机将使用所提供的选择。例如,该主机可以使用集群通讯协议来传输它的选择。
一旦检测到首选配置,多路径代理可以确定LUN的当前所有者是否是该LUN的首选所有者(例如,通过比较当前所有者控制器和首选所有者控制器的标识符)。如果当前所有者不是首选所有者并且首选所有者是可用的(例如,处于有效或等待状态),多路径代理可以开始从当前所有者向首选所有者进行所有权转换并使包括多路径代理的主机开始通过首选所有者访问LUN。多路径代理可以例如通过对首选所有者发起故障恢复操作或通过执行自动非法入侵操作(在支持自动非法入侵的实施例中)来发起这些动作以便通过首选所有者访问LUN。
除了(或替代)能够检测ALUA阵列的首选配置并使用首选项配置来控制主机使用哪个路径来访问LUN外,多路径代理可以检测何时进行状态转换并使用该信息控制各个主机如何访问ALUA阵列中的LUN。
如上所述,控制器状态转换可以使ALUA阵列配置不同于它的初始配置。可以出于各种原因进行这些状态转换。例如,可以因为控制器故障、管理员配置LUN的所有权、另一个主机使LUN的所有权发生转换、ALUA阵列执行负载均衡、出现有效入侵等而进行状态转换。
在ALUA实现方式中可能出现一个问题,其中控制器状态转换的ALUA阵列通知不会到达主机的多路径代理上。例如,当一些ALUA阵列向主机发送一条单元注意通知警告时,该警告常常由一个较低软件层(例如,微型计算机系统接口(SCSI驱动器)层)来使用,该层比多路径代理所实施的层更低,这样单元注意通知警告永远不会到达多路径代理。
在某些情况下,多路径代理仍然会发现状态转换。例如,如果由于控制器故障而出现状态转换,多路径代理将在下一次主机试图通过故障控制器访问LUN时检测错误。因此,多路径代理可以接着开始使用新的有效优化控制器来访问LUN。
然而在其他情况中,多路径代理可以不发现状态转换。例如,如果出现状态转换,但先前的有效优化控制器仍是有效的并且是可用的,多路径代理可用通过该控制器继续访问LUN并且不会看到任何错误消息。结果,当访问LUN时主机开业开始体验次佳性能。
为了防止主机通过未优化控制器访问LUN的情况,可以配置多路径代理来检测ALUA阵列内的控制器状态转换。最初,当开始操作时,多路径代理可以识别每个LUN的初始有效优化控制器。例如,多路径代理可以访问识别每个LUN的当前所有者的状态信息(例如,如上文所述的给定LUN的控制器的AAS码)并使用该信息来识别给定LUN的有效优化控制器。然后多路径代理可以存储该信息以备后用。
在启动后的后续时间中,多路径代理可以重新检查LUN的初始有效优化控制器的状态。因此,如果该控制器的状态已经转换,多路径代理将能够检测到这种转换,尽管并未从ALUA阵列接收到转换的任何通知。需要注意的是,多路径代理以此方式检测状态转换,不必首先从ALUA阵列接收到通知(例如,采用单元注意警报消息的形式)。
在一些实施例中,可以配置多路径代理以通过常规性地(例如,周期性地或响应于预定激励)对状态进行重新检查。例如,如果最初发现控制器15(1)是LUN18(1)的有效优化控制器,多路径代理可以周期性地请求与LUN18(1)相关的控制器15(1)的AAS值(例如,如上文所述的)。如果AAS值已经发生变化,这表明已经进行了转换,那么多路径代理可以识别LUN18(1)的新的有效优化控制器。
在其他实施例中,代替常规性地请求控制器的状态的是,当主机通过当前控制器访问LUN时多路径代理可以监控输入/输出(I/O)性能(例如,根据执行I/O时的吞吐量和/或错误消息)。如果检测到I/O性能下降(例如,通过检测吞吐量和/或错误消息的下降),那么多路径代理可以如上所述请求控制器的状态。
在又一些其他实施例中,多路径代理可以提供接口(例如,图形用户接口、命令行接口、应用程序编程接口等),该接口允许管理员和/或其他用户(例如,人类用户或应用程序)来请求多路径代理重新检查当前用于访问LUN的控制器的状态。可以代替和/或除了上述那些方式以外而实施这种触发方式。
如果多路径代理检测到已经发生转换并且当前正用于访问LUN的控制器不再是该LUN的有效优化控制器,多路径代理可以使主机开始使用新的有效优化控制器来访问该LUN。
每个多路径代理可以被配置用于实施相同的功能以检测并处理状态转换(例如,利用上述技术中的一个或多个)。因此,如果发生状态转换,每个主机上的多路径代理将以相同方式检测并处理状态转换。这样,如果LUN的所有者发生变化,主机中的每一个将以相同方式响应并通过相同的控制器(LUN的新所有者)开始访问LUN,即使那些主机不在它们自己之间传送与这种转换有关的任何信息。另外,如果一个主机触发了所有权变化,其他主机可以检测该转换并适当地作出响应,甚至在触发该变化的主机未通知变化的情况下。
图2是一种发现ALUA阵列内的LUN的首选控制器并且然后使用该信息使主机使用首选控制器(如果可用)访问LUN的方法的流程图。这种方法可由多路径代理来执行,像图1的多路径代理25。
该方法开始于200,此时多路径代理检测是否ALUA阵列为LUN指定了首选控制器。该操作可以通过从ALUA阵列请求LUN的首选指示器来执行。与首选指示器是否是静态的相关信息可以从ALUA阵列技术参数来确定(例如,在系统配置过程中由管理员完成)。
如果ALUA阵列不指定首选控制器(例如,如果ALUA阵列不支持首选指示器和/或不静态地保留首选指示器),多路径代理可以确定是否可以检测LUN的状态转换,如205所示。例如,多路径代理可以从ALUN阵列请求状态信息(例如上述的AAS和状态码值),该信息与LUN和控制器相关联。这种状态信息可以集中表示与该LUN相关的控制器的状态是否转换。基于状态信息(并且可能基于与该LUN有关的其他控制器相关的信息)所指示的一个或多个状态转换(如果有的话),多路径控制器可以确定该LUN的首选控制器,如210所示。以上针对图1描述了基于这些状态信息检测首选控制器的各种技术。
如果指示状态转换的信息不可用和/或如果状态码值在故障恢复后未重置(例如,如阵列技术参数中所指明的),多路径代理可以使用一致性算法来选择LUN的首选控制器,如215所示。这种算法是一致的,因为在系统中每个多路径代理使用相同的算法,这样所有多路径代理所获得的结果与整个系统中每个其他代理将是一致的。以上针对图1描述了各种一致性算法。
一旦检测到LUN的首选控制器,那么多路径代理可以检测该首选控制器在ALUA阵列内当前是否是有效的,如220所示。例如,多路径代理可以从ALUA阵列请求首选控制器的状态。然后如果首选控制器是可用的,多路径代理可以使包括该多经代理的主机通过该首选控制器访问LUN,如225所示。如果首选控制器不是主机当前所用的控制器,多路径代理可以通过例如发起从当前控制器向首选控制器的故障恢复来执行操作225。如果首选控制器当前不可用,多路径代理可以允许主机通过非首选控制器来访问LUN,如230所示。
图2中所示的操作可以由若干不同多路径代理的每一个来执行并用于若干不同LUN的每一个。在某些实施例中可以忽略一些操作,而其他实施例可以代替和/或除图2中所描述的那些实施例外而包括其他操作。例如,在一些实施例中,可以仅配置多路径代理来执行操作200、205和215中的一些(与配置用于执行全部操作相反)。例如,可以配置一些多路径代理仅通过访问识别状态转换的信息来检测首选控制器(与此相反的是,还能够基于首选指示器和/或一致性算法来检测首选控制器)。
图3是一种发现并控制ALUA阵列内的状态转换的方法的流程图。这种方法可以通过多路径代理(像图1的多路径代理25)来执行。
该方法开始于300,此时多路径代理检测ALUA阵列内的LUN的当前有效优化控制器。多路径代理可以通过从ALUA阵列请求该LUN的有效优化控制器的身份来执行这种操作。在一些实施例中,操作300响应于启动多路径代理而执行,或响应于多路径代理检测到ALUA阵列已经启动和/或可用于多路径代理而执行。
随后,多路径代理可以监控300中识别的控制器的状态转换,如305所示。多路径代理可以采用各种方式执行操作305。例如,可以配置多路径代理常规地(例如,周期地)从ALUA阵列请求控制器的状态(例如,采用AAS状态码的形式)。可替代地,多路径代理可以被配置用于监控通过控制器访问LUN的I/O性能。如果观察到性能下降,那么多路径代理可以从ALUA阵列请求控制器的状态。还可以配置多路径代理响应于接收到这样做的请求(例如,从用户、应用程序或管理员)而从ALUA阵列请求控制器的状态。如果出现状态转换,多路径代理可以使它的主机开始通过LUN的新的有效优化(即,所有者)控制器来访问LUN,如310所示。
如同图2的操作,图3的操作由若干不同多路径代理的每一个来执行并用于若干不同LUN的每一个。在某些实施例中可以忽略一些操作,而其他实施例可以替代和/或除了图3描述的那些操作外而包括其他操作。
图4是一种能够实施具有上述备份接口的档案模块的计算系统410的方框图。计算系统410广义上代表能够执行计算机可读指令的任意单一或多个处理器计算装置或系统。计算系统410的示例包括但不限限于多种装置的任意一个或多个,这些装置包括工作站、个人计算机、膝上计算机、客户侧终端、服务器、分布式计算系统、手持装置(例如,个人数字助理和移动电话)、网络家电、存储控制器(例如,阵列控制器、磁带驱动控制器、或硬盘驱动控制器)等。在其大部分基本配置中,计算系统410可以包括至少一个处理器414和系统存储器416。通过执行实施多路径代理25的软件,计算系统410成为专用的计算装置,该装置被配置用于检测ALUA阵列内的首选项和/或状态转换并使用检测到的信息来控制计算系统410如何访问ALUA阵列内的LUN。
处理器414总体上代表能够处理数据或解释并执行指令的任意类型或形式的处理单元。在某些实施例中,处理器414可以从软件应用程序或模块接收指令。这些指令可以使处理器414执行本文描述和/或展示的实施例的一个或多个的功能。例如,处理器414可以执行和/或作为一种手段执行本文描述的操作中的所有或一些。处理器414还可以执行和/或作为一种手段执行本文描述和/或展示的任意其他操作、方法或进程。
系统存储器416总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或介质。系统内存416的多个示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储装置。在一个示例中,实施具有多路径代理25的档案模块50的程序指令可以载入到系统存储器416中。
在某些实施例中,除了处理器414和系统存储器416外,计算系统410还可以包括一个或多个组件或元件。例如,如图4中所示,计算系统410可以包括存储控制器418、输入/输出(I/O)控制器420以及通信接口422,这些装置中的每一个可以通过通信架构412相互连接。通信架构412总体上代表能够在计算装置的一个或多个组件之间协助通信的任意类型或形式的架构。通信架构412的示例包括但不限于通信总线(例如,工业标准架构(ISA)、外围组件互联(PCI)、串行总线(PCIe)或类似总线)以及网络。
存储控制器418总体上代表在计算系统410的一个或多个组件之间操作存储器或数据或者控制通信的任意类型或形式的装置。例如,在某些实施例中,存储控制器418可以通过通信架构412控制处理器414、系统存储器416以及I/O控制器420之间的通信。在某些实施例中,存储控制器418可以独立地或与其他元件相结合地执行和/或作为一种手段执行本文描述和/或展示的多个步骤或特征中的一个或多个。
I/O控制器420总体上代表能够协调和/或控制计算装置的输入和输出功能的任意类型或形式的模块。例如,在某些实施例中,I/O控制器420可以控制或协助计算系统410的一个或多个元件之间的数据传输,这些元件例如是处理器414、系统存储器416、通信接口422、显示适配器426、输入接口430和存储接口434。
通信接口422广义上代表能够协助计算系统410和一个或多个附加装置之间的通信的任意类型或形式的通信装置。例如,在某些实施例中通信接口422可以协助计算系统410和包括附加计算系统的私有或公共网络之间的通信。通信接口422的示例包括但不限于有线网络接口(例如,网络接口卡)、无线网络接口(例如,无线网络接口卡)、调制解调器以及任意其他适合的接口。在至少一个实施例中,通信接口422可以通过连接至网络(例如互联网)的直接链路向远程服务器提供直接连接。通信接口422还可以通过例如局域网(如,以太网)、个人区域网络、电话或电缆网络、蜂窝电话连接、卫星数据连接或任意其他适合的连接而间接地提供这类连接。
在某些实施例中,通信接口422还可以代表主机适配器,该主机适配器被配置用于协助计算系统410和一个或多个附加网络或存储装置之间的经由外部总线或通信信道的通信。主机适配器的示例包括但不限于小型计算机系统接口(SCSI)、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、串行高级技术附件(SATA)、串行连接SCSI(SAS)和外部SATA(eSATA)主机适配器、先进技术附件(ATA)和并行ATA(PATA)主机适配器、光纤通道接口适配器、以太网适配器等。
通信接口422还可以允许计算系统410参与分布式或远程计算。例如,通信接口422可以从远程装置接收指令或向远程装置发送指令以便执行。
如图4所示,计算系统410还可以包括通过显示适配器424连接至通信基础设施412的至少一个显示装置426。显示装置424总体上代表能够可视地呈现显示适配器426所转发的显示信息的任意类型或形式的装置。相似地,显示适配器426总体上代表任意类型或形式的装置,这些装置被配置用于从通信基础设施412(或从本领域已知的帧缓冲器)转发图形、文本以及其他数据以便显示在显示装置424上。
如图4所示,计算系统410还可以包括通过输入接口428连接至通信基础设施412的至少一个输入装置430。输入装置428总体上代表能够向示例性计算系统410提供由计算机或人员生成的输入的任意类型或形式的输入装置。输入装置428的示例包括但不限于键盘、定位装置、语音识别装置或任意其他输入装置。
如图4所示,计算系统410还可以包括通过存储接口434连接至通信基础设施412的一个主存储装置432和一个备份存储装置433。存储装置432和433总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。例如,存储装置432与433各自可以包括磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器、或者类似装置。存储接口434总体上代表用于在存储装置432和433以及计算系统410的其他组件之间传输数据的任意类型或形式的接口或装置。类似主存储装置432的存储装置可用于实施如上所述的档案数据存储库和/或备份存储器。
在某些实施例中,存储装置432和433可以被配置为用于读取自和/或写入到可移动存储单元,该可移动存储单元被配置用于存储计算机软件、数据、或其他计算机可读信息。适合的可移动存储单元的示例包括但不限于软盘、磁带、光盘、闪存装置等。存储装置432和433还可以包括其他类似的结构或装置,以允许计算机软件、数据或其他计算机可读指令载入到计算系统410中。例如,存储装置432和433可以被配置用于读或写软件、数据或其他计算机可读信息。存储装置432和433还可以作为计算系统410的一部分或可以是通过其他接口系统访问的一个分离的装置。
很多其他装置或子系统可以连接至计算系统410上。相反,为了实施在此描述和/或展示的实施例,不需要图4中所示的所有组件和装置。以上引用的这些装置和子系统还可以采用不同于图4中所示的方式相互连接。
计算系统410还可以使用任何数量的软件、固件、和/或硬件的配置。例如,可以将在此披露的示例性实施例中的一个或多个编码为一种计算机可读介质上的计算机程序(还称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)。计算机可读介质的示例包括磁性存储介质(例如,硬盘驱动器和软盘驱动器)、光存储介质(例如,CD-ROM或DVD-ROM)、电子存储介质(例如,固态驱动器和闪存介质)等。这种计算机程序还可以通过网络(例如互联网)或在载体介质上传输到计算系统410以存储在存储器中。
包含计算机程序的计算机可读介质可以载入到计算系统410中。然后存储在计算机可读介质上的所有或部分计算机程序可以存储在系统内存416和/或存储装置432和433的不同部分上。当由处理器414执行时,载入到计算系统410中的计算机程序可以使处理器414执行和/或作为一种手段执行在此描述和/或展示的示例性实施例中的一个或多个的功能。另外或可替代地,在此所说明和/或展示的示例性实施例中的一个或多个可以在固件和/或硬件中实施。例如计算系统410可被配置用作一种专用集成电路(ASIC),它被适配为用于实施在此所披露的这些示例性实施例中的一个或多个。
图5是示例性网络架构500的方框图,在该网络架构中客户端系统510、520和530以及服务器540和545可以连接至网络550。客户端系统510、520和530通常代表任意类型或形式的计算装置或系统。
类似地,服务器540和545总体上代表被配置用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,例如在计算装置(例如图4中的计算系统410)上实施的应用程序服务器或数据库服务器。网络550总体上代表任意电信或计算机网络,例如它包括内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。在一个示例中,客户端系统510、520和/或530和/或服务器540和/或545可以包括如图1和4中所示的多路径代理25。
如图5所示,一个或多个存储装置560(1)-(N)可以直接附接至服务器540。类似地,一个或多个存储装置570(1)-(N)可以直接附接至服务器545。存储装置560(1)-(N)和存储装置570(1)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质并且可以组织到如上所述的一个ALUA阵列中。在某些实施例中,存储装置560(1)-(N)和存储装置570(1)-(N)可代表被配置为用于使用不同协议(例如网络文件系统(NFS)、服务器消息块(SMB)、或公共互联网文件系统(CIFS)来与服务器540和545进行通信的网络附联存储(NAS)装置。
服务器540和545还可以连接至存储区域网络(SAN)结构580。SAN结构580总体上代表能够协助多个存储装置之间通信的任意类型或形式的计算机网络或体系结构。SAN结构580可以协助服务器540和545与多个存储装置590(1)-(N)和/或一个智能存储器阵列595(例如,ALUA阵列)之间的通信。SAN结构580还可以通过网络550以及服务器540和545协助客户端系统510、520和530与存储装置590(1)-(N)和/或智能存储器阵列595之间的通信,其方式为装置590(1)-(N)和阵列595对客户端系统510、520和530呈现为本地附接的装置。与存储装置560(1)-(N)和存储装置570(1)-(N)一样,存储装置590(1)-(N)和存储阵列595总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。
在某些实施例中,参考图4的示例性计算系统410,通信接口(例如,图4中的通信接口422)可用于在每一个客户端系统510、520和530以及网络550之间提供连接性。客户端系统510、520和530能够利用例如网络浏览器或其他客户端软件来访问服务器540和545上的信息。这种软件可以允许客户端系统510、520和530访问由服务器540、服务器545、存储装置560(1)-(N)、存储装置570(1)-(N)、存储装置590(1)-(N)或智能存储器阵列595管理的数据。尽管图5描绘了使用网络(例如互联网)进行数据交换,但在此描述和/或展示的实施例不限于互联网或任意具体的基于网络的环境。
在至少一个实施例中,本文披露的示例性实施例中的一个或多个的全部或一部分可被编码为一种计算机程序并且由服务器540、服务器545、存储装置560(1)-(N)、存储装置570(1)-(N)、存储装置590(1)-(N)、智能存储阵列595、或它们中的任意组合加载并执行。在此披露的多个示例性实施例的一个或多个的全部或一部分还可以被编码为计算机程序,存储在服务器540中,由服务器545运行,并在网络550上分发给客户端系统510、520和530。
在一些示例中,图1、4和5中的计算装置的所有或一部分可以代表云计算或基于网络的环境的多个部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。
另外,本文描述的这些组件中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如,图1中的多路径代理可以改变计算装置的行为以使得计算装置基于检测到的信息(与ALUA阵列内的首选项和/或状态转换有关)来调整对ALUA阵列的访问。
尽管已经结合若干实施例描述了本发明,但本发明不用于限制到本文提出的具体形式。相反,意在涵盖这些替代形式、修改形式以及等同形式,它们可以适当地包括在所附权利要求定义的本发明范围内。
工业实用性
本发明应用于计算和数据存储领域。
Claims (21)
1.一种发现并处理非对称逻辑单元访问阵列即ALUA阵列控制器状态转换的方法,包括:
检测一个非对称逻辑单元即LUN访问阵列即ALUA阵列内的一个LUN的多个控制器中的哪个控制器是一个首选控制器,其中
该ALUA阵列中的每个LUN被初始分配给一个首选控制器,
该ALUA阵列不向一个多路径代理提供识别该首选控制器的信息,以及
检测该首选控制器是基于该ALUA阵列的一种初始配置的;
检测该LUN的一个当前所有者控制器不是该首选控制器;并且发起从该当前所有者控制器向首选控制器的一种所有权变化,
其中
将该首选控制器指定为首选不受该所有权变化影响,以及
检测该首选控制器、检测该当前所有者控制器、以及该发起由实施该多路径代理的一个计算装置来执行。
2.如权利要求1所述的方法,其中检测该首选控制器包括访问该ALUA阵列提供的一个静态首选指示器。
3.如权利要求1所述的方法,其中检测该首选控制器包括检测与该LUN的当前所有者控制器相关联的状态信息。
4.如权利要求1所述的方法,其中检测该首选控制器包括从一个集群中的一个其他节点接收识别该首选控制器的信息,其中该其他节点选择多个控制器之一作为该首选控制器。
5.如权利要求1所述的方法,其进一步包括:
检测该ALUA阵列中与该LUN有关的一个第一控制器的一种初始状态,其中该初始状态是一种有效优化状态;
检测与该LUN有关的该第一控制器的一种后续状态,其中检测该后续状态在检测该初始状态之后执行,并且其中检测该后续状态在不存在检测从该ALUA阵列接收到表示一种状态转换的一条消息的情况下被执行;并且
响应于该后续状态不是该有效优化状态,使该计算装置通过一个第二控制器来访问该LUN,其中当使该计算装置通过该第二控制器来访问该LUN被执行时该第二控制器处于该有效优化状态。
6.如权利要求5所述的方法,其中检测该后续状态包括在该计算装置通过该第一控制器访问该LUN时检测到一种输入/输出性能下降。
7.如权利要求5所述的方法,其中检测该后续状态包括从该ALUA阵列请求信息,该信息识别与该LUN有关的第一控制器的一种状态。
8.如权利要求5所述的方法,其中检测该后续状态响应于该计算装置从一个管理员接收到一条请求而执行。
9.如权利要求5所述的方法,其中检测该后续状态包括当该计算装置通过该第一控制器访问该LUN时检测一个输入/输出错误。
10.一种用于发现并处理非对称逻辑单元访问即ALUA阵列控制器状态转换的计算机实施的系统,其中该计算机实施的系统包括:
用于检测一个非对称逻辑单元即LUN访问阵列即ALUA阵列内的一个LUN的多个控制器中的哪个控制器是一个首选控制器的装置,其中
该ALUA阵列中的每个LUN被初始分配给一个首选控制器,
该ALUA阵列不向一个多路径代理提供识别该首选控制器的信息,以及
检测该首选控制器是基于该ALUA阵列的一种初始配置的;
用于检测该LUN的一个当前所有者控制器不是该首选控制器的装置;并且
用于发起从该当前所有者控制器向该首选控制器的一种所有权变化的装置,其中
将该首选控制器指定为首选不受该所有权变化影响。
11.如权利要求10所述的计算机实施的系统,其中用于该首选控制器的检测的装置被配置为访问该ALUA阵列提供的一个静态首选指示器。
12.如权利要求10所述的计算机实施的系统,其中用于检测该首选控制器的装置被配置为检测与该LUN的当前所有者控制器相关联的状态信息。
13.如权利要求10所述的计算机实施的系统,其进一步包括:
用于检测该ALUA阵列中与该LUN有关的一个第一控制器的一种初始状态的装置,其中该初始状态是一个有效优化状态;
用于检测与该LUN有关的该第一控制器的一种后续状态的装置,其中检测该后续状态在检测该初始状态之后执行,并且其中检测该后续状态在不存在检测从该ALUA阵列接收到表示一种状态转换的一条消息的情况下被执行;并且
用于响应于该后续状态不是该有效优化状态使该计算机实施的系统通过一个第二控制器来访问该LUN的装置,其中当使该计算机实施的系统通过该第二控制器来访问该LUN时该第二控制器处于该有效优化状态。
14.如权利要求13所述的计算机实施的系统,其中用于检测该后续状态的装置被配置为在所述计算机实施的系统通过该第一控制器访问该LUN时检测到一种输入/输出性能下降。
15.如权利要求13所述的计算机实施的系统,其中用于检测该后续状态的装置被配置为通过从该ALUA阵列请求识别与该LUN有关的第一控制器的一种状态的信息检测该后续状态。
16.一种发现并处理非对称逻辑单元访问阵列即ALUA阵列控制器状态转换的系统,包括:
一个或多个处理器;以及
存储器,该存储器连接至该一个或多个处理器,其中该存储器存储可由该一个或多个处理器执行的程序指令,以便:
检测一个非对称逻辑单元即LUN访问阵列即ALUA阵列内的一个LUN的多个控制器中的哪个控制器是一个首选控制器,
其中
该ALUA阵列中的每个LUN被初始分配给一个首选控制器,
该ALUA阵列不向一个多路径代理提供识别该首选控制器的信息,以及
检测该首选控制器是基于该ALUA阵列的一种初始配置的;检测该LUN的一个当前所有者控制器不是该首选控制器;并且
发起从该当前所有者控制器向首选控制器的一种所有权变化,其中
将该首选控制器指定为首选不受该所有权变化影响。
17.如权利要求16所述的系统,其中该首选控制器的检测包括访问该ALUA阵列提供的一个静态首选指示器。
18.如权利要求16所述的系统,其中检测该首选控制器包括检测与该LUN的当前所有者控制器相关联的状态信息。
19.如权利要求16所述的系统,其中该程序指令进一步可执行,以便:
检测该ALUA阵列中与该LUN有关的一个第一控制器的一种初始状态,其中该初始状态是一个有效优化状态;
检测与该LUN有关的该第一控制器的一种后续状态,其中检测该后续状态在检测该初始状态之后执行,并且其中检测该后续状态在不存在检测从该ALUA阵列接收到表示一种状态转换的一条消息的情况下被执行;并且
响应于该后续状态不是该有效优化状态,使一个计算装置通过一个第二控制器来访问该LUN,其中当使得该计算装置通过该第二控制器访问该LUN时该第二控制器处于该有效优化状态。
20.如权利要求19所述的系统,其中检测该后续状态包括在该计算装置通过该第一控制器访问该LUN时检测到一种输入/输出性能下降。
21.如权利要求19所述的系统,其中检测该后续状态是通过从该ALUA阵列请求识别与该LUN有关的第一控制器的一种状态的信息来执行的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/945467 | 2010-11-12 | ||
US12/945,467 US8930620B2 (en) | 2010-11-12 | 2010-11-12 | Host discovery and handling of ALUA preferences and state transitions |
PCT/US2011/054135 WO2012064420A1 (en) | 2010-11-12 | 2011-09-30 | Detection and handling of alua preferences and state transitions by host |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103329106A CN103329106A (zh) | 2013-09-25 |
CN103329106B true CN103329106B (zh) | 2016-12-21 |
Family
ID=44903350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180051200.4A Active CN103329106B (zh) | 2010-11-12 | 2011-09-30 | Alua首选项和状态转换的主机发现和处理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8930620B2 (zh) |
EP (1) | EP2638469B1 (zh) |
JP (1) | JP5986577B2 (zh) |
CN (1) | CN103329106B (zh) |
WO (1) | WO2012064420A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9134913B2 (en) * | 2011-09-09 | 2015-09-15 | Avago Technologies General Ip (Singapore) Pte Ltd | Methods and structure for improved processing of I/O requests in fast path circuits of a storage controller in a clustered storage system |
JP5874933B2 (ja) * | 2013-01-29 | 2016-03-02 | 日本電気株式会社 | パス制御装置、パス制御方法、およびパス制御プログラム |
US9672178B1 (en) * | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9519580B2 (en) | 2013-11-11 | 2016-12-13 | Globalfoundries Inc. | Load balancing logical units in an active/passive storage system |
US9317210B2 (en) | 2013-12-13 | 2016-04-19 | International Business Machines Corporation | Balancing traffic through logical unit range partitioning |
US20150262632A1 (en) * | 2014-03-12 | 2015-09-17 | Fusion-Io, Inc. | Grouping storage ports based on distance |
JP6307962B2 (ja) * | 2014-03-19 | 2018-04-11 | 日本電気株式会社 | 情報処理システム、情報処理方法、及び、情報処理プログラム |
US20150293708A1 (en) * | 2014-04-11 | 2015-10-15 | Netapp, Inc. | Connectivity-Aware Storage Controller Load Balancing |
CN104991874B (zh) * | 2015-07-22 | 2018-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于scst的多控制器存储设备alua配置方法 |
CN105204779B (zh) * | 2015-09-14 | 2018-10-02 | 北京鲸鲨软件科技有限公司 | 基于双控的scsi target访问控制方法和装置 |
JP6809797B2 (ja) * | 2016-02-26 | 2021-01-06 | 日本電気株式会社 | ストレージ装置の制御装置、ストレージ装置の制御方法、およびストレージ装置の制御プログラム |
US10545678B2 (en) | 2016-12-28 | 2020-01-28 | Sandisk Technologies Llc | Shared data storage system with high availability and hot plugging |
US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
US10454810B1 (en) | 2017-03-10 | 2019-10-22 | Pure Storage, Inc. | Managing host definitions across a plurality of storage systems |
US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US10296216B2 (en) | 2017-05-17 | 2019-05-21 | International Business Machines Corporation | Prioritizing dedicated host ports when N-port ID virtualization is enabled in a storage controller |
US10635529B2 (en) * | 2017-05-25 | 2020-04-28 | Western Digital Technologies, Inc. | Parity offload for multiple data storage devices |
US10725859B2 (en) | 2017-05-25 | 2020-07-28 | Western Digital Technologies, Inc. | Parity generation offload using peer-to-peer data transfers in data storage system |
US10761929B2 (en) | 2017-05-25 | 2020-09-01 | Western Digital Technologies, Inc. | Data storage drive rebuild with parity generation offload using peer-to-peer data transfers |
US10732893B2 (en) | 2017-05-25 | 2020-08-04 | Western Digital Technologies, Inc. | Non-volatile memory over fabric controller with memory bypass |
US10860508B2 (en) | 2017-05-25 | 2020-12-08 | Western Digital Technologies, Inc. | Offloaded disaggregated storage architecture |
US10642525B2 (en) | 2017-12-07 | 2020-05-05 | Western Digital Technologies, Inc. | Multiple-stage data lifetime management for storage devices |
US20190235959A1 (en) * | 2018-01-30 | 2019-08-01 | International Business Machines Corporation | Proactive Node Preference Changing in a Storage Controller |
US11054991B2 (en) | 2018-03-21 | 2021-07-06 | Western Digital Technologies, Inc. | Data storage system scale-out with local address remapping |
US11068315B2 (en) * | 2018-04-03 | 2021-07-20 | Nutanix, Inc. | Hypervisor attached volume group load balancing |
US10789018B2 (en) | 2018-10-31 | 2020-09-29 | EMC IP Holding Company LLC | Supporting non-disruptive movement of a logical volume of non-volatile data storage between storage appliances |
CN111930312B (zh) * | 2020-08-12 | 2023-10-20 | 北京计算机技术及应用研究所 | 一种双控存储阵列异步逻辑单元访问方法 |
WO2022076856A1 (en) * | 2020-10-09 | 2022-04-14 | Pure Storage, Inc. | Data path virtualization |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1115064A2 (en) * | 1999-12-14 | 2001-07-11 | Hitachi, Ltd. | Storage subsystem and storage controller |
US7127545B1 (en) * | 2003-11-19 | 2006-10-24 | Veritas Operating Corporation | System and method for dynamically loadable storage device I/O policy modules |
US7318138B1 (en) * | 2005-08-30 | 2008-01-08 | Symantec Operating Corporation | Preventing undesired trespass in storage arrays |
CN101102256A (zh) * | 2006-07-04 | 2008-01-09 | 国际商业机器公司 | 存储区域网系统以及在存储网络中确定数据路径的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018576A (en) * | 1996-12-31 | 2000-01-25 | Mci Communications Corporation | Method and apparatus for automated node-based normalization after network restoration |
US6393535B1 (en) * | 2000-05-02 | 2002-05-21 | International Business Machines Corporation | Method, system, and program for modifying preferred path assignments to a storage device |
WO2002084471A1 (en) | 2001-04-13 | 2002-10-24 | Sun Microsystems, Inc. | Virtual host controller interface with multipath input/output |
US7111084B2 (en) * | 2001-12-28 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Data storage network with host transparent failover controlled by host bus adapter |
JP3964212B2 (ja) * | 2002-01-16 | 2007-08-22 | 株式会社日立製作所 | 記憶装置システム |
US6779064B2 (en) * | 2002-01-24 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | System, method, and computer program product for on-line replacement of a host bus adapter |
US7406039B2 (en) * | 2002-02-26 | 2008-07-29 | Dell Products L.P. | System and method for a failover protocol in storage area network controllers |
US6928513B2 (en) * | 2002-03-26 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | System and method for managing data logging memory in a storage area network |
US7307948B2 (en) * | 2002-10-21 | 2007-12-11 | Emulex Design & Manufacturing Corporation | System with multiple path fail over, fail back and load balancing |
US7194662B2 (en) * | 2003-02-28 | 2007-03-20 | International Business Machines Corporation | Method, apparatus and program storage device for providing data path optimization |
US7260737B1 (en) * | 2003-04-23 | 2007-08-21 | Network Appliance, Inc. | System and method for transport-level failover of FCP devices in a cluster |
US7783779B1 (en) * | 2003-09-19 | 2010-08-24 | Vmware, Inc | Storage multipath management in a virtual computer system |
JP4492084B2 (ja) * | 2003-10-07 | 2010-06-30 | 株式会社日立製作所 | ストレージパス制御方法 |
JP4012498B2 (ja) * | 2003-11-18 | 2007-11-21 | 株式会社日立製作所 | 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム |
US7937617B1 (en) * | 2005-10-28 | 2011-05-03 | Symantec Operating Corporation | Automatic clusterwide fail-back |
JP5068023B2 (ja) * | 2006-03-29 | 2012-11-07 | 株式会社日立製作所 | 計算機システム及び論理パス切替方法 |
US7668981B1 (en) * | 2007-03-28 | 2010-02-23 | Symantec Operating Corporation | Storage paths |
US8060775B1 (en) * | 2007-06-14 | 2011-11-15 | Symantec Corporation | Method and apparatus for providing dynamic multi-pathing (DMP) for an asymmetric logical unit access (ALUA) based storage system |
US7908418B2 (en) * | 2007-11-16 | 2011-03-15 | Fujitsu Limited | Storage system, storage device, and host device |
US8041987B2 (en) * | 2008-11-10 | 2011-10-18 | International Business Machines Corporation | Dynamic physical and virtual multipath I/O |
US8639808B1 (en) * | 2008-12-30 | 2014-01-28 | Symantec Corporation | Method and apparatus for monitoring storage unit ownership to continuously balance input/output loads across storage processors |
-
2010
- 2010-11-12 US US12/945,467 patent/US8930620B2/en not_active Expired - Fee Related
-
2011
- 2011-09-30 CN CN201180051200.4A patent/CN103329106B/zh active Active
- 2011-09-30 WO PCT/US2011/054135 patent/WO2012064420A1/en active Application Filing
- 2011-09-30 JP JP2013538722A patent/JP5986577B2/ja not_active Expired - Fee Related
- 2011-09-30 EP EP11776935.6A patent/EP2638469B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1115064A2 (en) * | 1999-12-14 | 2001-07-11 | Hitachi, Ltd. | Storage subsystem and storage controller |
US7127545B1 (en) * | 2003-11-19 | 2006-10-24 | Veritas Operating Corporation | System and method for dynamically loadable storage device I/O policy modules |
US7318138B1 (en) * | 2005-08-30 | 2008-01-08 | Symantec Operating Corporation | Preventing undesired trespass in storage arrays |
CN101102256A (zh) * | 2006-07-04 | 2008-01-09 | 国际商业机器公司 | 存储区域网系统以及在存储网络中确定数据路径的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2014502390A (ja) | 2014-01-30 |
US8930620B2 (en) | 2015-01-06 |
CN103329106A (zh) | 2013-09-25 |
JP5986577B2 (ja) | 2016-09-06 |
US20120124312A1 (en) | 2012-05-17 |
EP2638469B1 (en) | 2015-12-16 |
WO2012064420A1 (en) | 2012-05-18 |
EP2638469A1 (en) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103329106B (zh) | Alua首选项和状态转换的主机发现和处理 | |
JP6317856B2 (ja) | クラスタ間冗長構成におけるスムーズな制御部交代 | |
US9137148B2 (en) | Information processing system and information processing apparatus | |
US8706837B2 (en) | System and method for managing switch and information handling system SAS protocol communication | |
EP2972746B1 (en) | Storage unit selection for virtualized storage units | |
US20180081591A1 (en) | Storage system with read cache-on-write buffer | |
CN100568881C (zh) | 用于选择存储群集以用来存取存储装置的方法和系统 | |
JP4688514B2 (ja) | ストレージ制御装置 | |
US7389367B2 (en) | Method of managing I/O interface modules in a computer system | |
CN109857445A (zh) | 存储系统和控制软件配置方法 | |
US20110145452A1 (en) | Methods and apparatus for distribution of raid storage management over a sas domain | |
US20060156055A1 (en) | Storage network that includes an arbiter for managing access to storage resources | |
US8639808B1 (en) | Method and apparatus for monitoring storage unit ownership to continuously balance input/output loads across storage processors | |
CN102469025A (zh) | 多存储系统上的多路径交换 | |
KR20110044858A (ko) | 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 | |
JP2008009497A (ja) | ストレージサブシステム、ホストコンピュータ、ストレージシステム、負荷分散方法、負荷分散プログラム | |
CN102999587A (zh) | 用于故障转移的跨不同服务器的镜像数据库的布置 | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN107438096A (zh) | 针对分布式存储的拥塞感知负载平衡 | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
WO2013043172A1 (en) | Sas expander | |
CN101535979A (zh) | 存储资源装置的管理 | |
US9268493B2 (en) | Systems and methods for smart storage interconnection in a heterogeneous storage environment | |
US20100082793A1 (en) | Server-Embedded Distributed Storage System | |
CN105074660A (zh) | 部署数据-路径相关插件 |
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 |