CN1972312A - 用于选择存储群集以用来存取存储装置的方法和系统 - Google Patents

用于选择存储群集以用来存取存储装置的方法和系统 Download PDF

Info

Publication number
CN1972312A
CN1972312A CN200610132177.2A CN200610132177A CN1972312A CN 1972312 A CN1972312 A CN 1972312A CN 200610132177 A CN200610132177 A CN 200610132177A CN 1972312 A CN1972312 A CN 1972312A
Authority
CN
China
Prior art keywords
storage
storage cluster
main frame
cluster
request
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.)
Granted
Application number
CN200610132177.2A
Other languages
English (en)
Other versions
CN100568881C (zh
Inventor
蒂末希·查尔斯·派伯尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1972312A publication Critical patent/CN1972312A/zh
Application granted granted Critical
Publication of CN100568881C publication Critical patent/CN100568881C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于选择存储群集以用来存取存储装置的方法、系统和程序。在网络上将存取存储装置的输入/输出(I/O)请求传输到第一存储群集。该存储装置可以在网络上另外通过第二存储群集存取,并且第一和第二存储群集都能够存取该存储装置。当第二存储群集可用时,检测第一存储群集的不可用性。在网络上将使用第二存储群集存取存储装置的请求传送到主机。如果第二存储群集可用,接收到所传送的请求的主机通过第二存储群集将I/O请求发送到该存储装置。

Description

用于选择存储群集以 用来存取存储装置的方法和系统
技术领域
本发明涉及一种用于选择存储群集以用来存取存储装置的方法、系统和程序。
背景技术
存储网络中的主机系统可以通过多条路径与存储控制器通信。存储控制器可以包括多个单独的存储群集,其中每个存储群集能够存取存储装置并且提供对存取存储装置的冗余。如果存储群集出故障,则主机可以进行故障恢复以使用其它存储群集来存取存储装置。
在某些系统中,如果存储群集接收到对诸如轨道或卷的存储位置的输入/输出(I/O)请求,而该存储位置也是在另一存储控制器未决的I/O请求的对象,则接收到这些I/O请求的存储群集将把它们转移到该另一存储控制器,以最小化不同存储群集向同一存储位置施加I/O的程度。如果单独的存储控制器以不一致的方式向同一存储位置写数据,则可能导致数据不一致错误。存储群集将I/O请求转移到另一个存储群集以在一个存储群集处合并对同一存储位置的I/O请求的这一处理要求在发生该转移的期间对该转移所涉及的群集停顿I/O请求。这一在存储控制器之间的I/O请求和写转移降低了存储控制器性能。
在本技术领域内需要用于管理主机可以如何选择多个存储群集中的哪个以用来存取存储装置的改进技术。
发明内容
本发明提供了一种用于选择存储群集以用来存取存储装置的方法、系统和程序。在网络上将存取存储装置的输入/输出(I/O)请求传输到第一存储群集。该存储装置可以在网络上另外通过第二存储群集存取,并且第一和第二存储群集都能够存取该存储装置。当第二存储群集可用时,检测第一存储群集的不可用性。在网络上将使用第二存储群集存取存储装置的请求传送到主机。如果第二存储群集可用,接收到所传送的请求的主机通过第二存储群集将I/O请求发送到该存储装置。
另外提供了一种用于处理网络拓扑以确定与第一和第二存储群集的主机连接的方法、系统和程序,其中主机可以通过第一和第二存储群集存取存储装置。响应于确定所有主机可访问所选存储群集,选择所有主机可访问的第一和第二存储群集之一。响应于确定少于全部主机可访问第一和第二存储群集,基于选择策略而选择少于全部主机可访问的第一和第二存储群集之一。将消息发送到可访问所选存储群集的主机,以使用所选存储群集来存取存储装置。
附图说明
图1示出了网络计算环境的实施例。
图2A和2B示出了路径可以如何将主机连接到存储群集的实施例。
图3和4示出了响应于检测到用来存取存储装置的当前存储群集的故障而由主机执行以便选择存储群集以用来存取存储装置的操作的实施例。
图5示出了响应于从另一主机接收到切换使用不同存储群集来存取存储装置的请求而由主机执行的操作的实施例。
图6和7示出了为主机选择一个存储群集以用来存取存储装置的操作的实施例。
图8示出了针对主机维护且用来在图7的操作中选择一个存储群集的主机优先级信息的实施例。
具体实施方式
图1示出了网络计算环境的实施例。存储控制器2在网络6上接收来自主机系统4a、4b...4n的输入/输出(I/O)请求,其被定向到各自被配置成具有一个或多个卷10a、10b(例如,逻辑单元号、逻辑设备等)的存储装置8a、8b。存储控制器2包括两个群集12a、12b,其中每个包括处理器复合体16a、16b和高速缓存18a、18b。群集12a、12b从主机4a、4b...4n接收I/O请求,并且缓冲这些请求。群集12a、12b在它们各自的高速缓存18a、18b中缓冲要写入到存储装置8a、8b的数据,并且缓冲从存储装置8a、8b读取以返回的数据。群集12a、12b可以包括诸如非易失性存储单元(未示出)的附加组件,以提供高速缓存18a、18b中的更新的备份存储。群集12a、12b可以具有不同的能力范围(powerboundary)。在所述实施例中,每个存储群集12a、12b提供对包括存储装置8a、8b的附连存储装置的存取。每个群集12a、12b包括由处理器复合体16a、16b执行的存储管理软件24a、24b,以处理主机4a、4b...4n I/O请求。总线26提供通信接口,以支持群集12a、12b之间的通信。该总线可以包括在本技术领域内公知的任何通信接口,如外围组件互连(PCI)总线、或其它总线接口、或网络通信接口,如广域网(WAN)、存储区域网(SAN)、局域网(LAN)、因特网、无线网络等。
主机4a、4b...4n包括I/O管理器26a、26b...26n程序,以管理在网络6上I/O请求向存储群集12a、12b的传送。在特定实施例中,该环境还可以包括管理器系统28,其包括网络管理器程序30,以协调主机4a、4b...4n对存储群集的存取,从而优化操作。
主机4a、4b...4n和管理器系统28(如果使用的话)可以在相对于网络6的带外网络32上通信。主机4a、4b...4n可以在带外网络32上将其存储网络6拓扑信息传递到管理器系统28,并且管理器系统28可以在带外网络32上与主机4a、4b...4n通信,以协调存储群集12a、12b的主机使用。可选地,主机4a、4b...4n、管理器系统28和存储控制器2可以在单个网络例如网络6上传递I/O请求和协调相关信息。
存储控制器2可以包括在本技术领域内公知的适合存储控制器或服务器,例如国际商业机器(IBM)企业级存储服务器(ESS)(IBM和企业级存储服务器是IBM的注册商标)。可选地,存储控制器2可以包括与高端企业级存储服务器相对的低端存储服务器。群集12a、12b可以如图1所示在同一存储控制器2中,或者在不同的存储控制器中。主机4a、4b...4n可以包括在本技术领域内公知的计算设备,例如服务器、大型机、工作站、个人计算机、手持计算机、膝上型计算机、电话设备、网络设备等。存储网络6可以包括存储区域网(SAN)、局域网(LAN)、内联网、因特网、广域网(WAN)等。带外网络32可以与存储网络6独立,并且使用诸如LAN的网络技术。存储装置8a、8b可以包括存储设备阵列,例如简单盘集群(JBOD)、直接存取存储设备(DASD)、独立盘冗余阵列(RAID)阵列、虚拟化设备、磁带存储设备、闪存等。
主机4a、4b...4n可以与任一存储群集12a、12b通信,以存取存储装置8a、8n。每个主机4a、4b...4n可以具有多条通过单独的适配器(以及可能的交换机)到存储群集12a、12b的单独路径,以便如果一条路径对于一个存储群集12a、12b出故障,则主机4a、4b...4n可以继续在其它路径和适配器上存取存储装置8a...8n。每个适配器可以包括多个端口,其提供多个存取端点。
图1示出了每个群集12a、12b包括其自己的高速缓存18a、18b。在可选实施例中,多个群集可以共享单个高速缓存。
图2A和2B示出了图1中的主机4a和4b与群集12a、12b可以如何连接的不同配置。图2A示出了主机4a、4b如何各自具有多个适配器以提供到存储控制器54中的存储群集12a、12b的单独路径的一个配置,其中在每个主机4a、4b中存在到每个存储群集12a、12b的单独路径。
图2B示出了可选配置,其中每个主机4a、4b具有到每个交换机62a、62b的一条路径,并且每个交换机62a、62b提供到每个存储群集12a、12b的单独路径,从而向每个主机4a、4b提供到每个存储群集12a、12b的附加路径。
在一个实施例中,存储控制器2或存储管理软件24a、24b将在群集之间转移I/O请求,以在一个存储群集12a、12b处合并对同一存储位置的I/O请求,从而避免让存储群集12a、12b都向同一存储位置写入数据。让一个存储群集12a、12b序列化向所分配的存储位置的写入确保了向该位置(例如,卷)的写入将不被群集12a、12b以可能危及数据一致性的方式无序写入。为了将I/O请求和写数据从一个存储群集12a、12b转移到另一个,在转移时段期间停顿I/O请求。
图1、2A和2B示出了特定数目的元件,例如两组卷10a、10b,两个存储装置8a、8b、存储控制器2中的两个群集、特定数目的主机等。然而,另外实施例可以具有任意数目的所示设备,例如卷组、存储装置、群集、主机适配器、交换机等,并且实际实现不局限于在附图中所示的组件的特定数目。
图3示出了在主机4a、4b...4n中的I/O管理器26a、26b...26n代码内实现的操作的实施例,其用于处理用来存取存储装置8a、8b的存储群集12a、12b的故障。由于电源、硬件和/或软件故障,存储群集12a、12b可能出故障。此外,因为存储群集12a、12b可以位于单独的能力范围内,所以一个存储群集12a、12b的故障不一定导致其它存储群的故障。控制以I/O管理器26a、26b...26n检测对存储群集12a、12b的存取的失败开始(在块100),如果主机4a、4b...4n使用的到存储群集12a、12b的所有路径都不可用,则发生该失败。如果(在块102)在网络6上不存在其它可访问的存储群集12a、12b,则I/O管理器26a、26b...26n使任何到存储装置8a、8b的I/O请求失败。否则,如果另一存储群集12a、12b是可访问的,则I/O管理器26a、26b...26n通过广播或将消息直接定址到主机,在网络32上将消息传送到主机4a、4b...4n,以指令主机使用所指示的可用存储群集12a、12b(在块104)。
图4示出了由I/O管理器26a、26b...26n执行的操作的附加实施例,其用于处理用来存取存储装置8a、8b的存储群集12a、12b的故障的检测。响应于检测用来存取存储装置8a、8b的存储群集12a、12b的不可用性或故障(在块150),I/O管理器26a、26b...26n确定另一存储群集12a、12b是否可供用来存取存储装置8a、8b(在块152)。如果否,则I/O管理器26a、26b...26n使任何对存储装置8a、8b的I/O请求失败(在块154)。否则,如果一个存储群集12a、12b可用,则I/O管理器26a、26b...26n通过广播或将消息直接定址到主机,在网络32上传送消息,以请求切换到所指示的可用存储群集的许可(在块156)。响应于从向其发送了消息的主机4a、4b...4n接收到响应(在块158),I/O管理器26a、26b...26n根据所接收的响应而确定是否从一个存储群集12a、12b切换到另一个(在块160)。
在一个实施例中,仅仅接收到该消息的主机4a、4b..4n在所指示的存储群集12a、12b可供该主机用来存取存储装置8a、8b的情况下给予切换到所指示的存储群集12a、12b的许可。此外,如果主机不能够访问任何存储群集,该主机可能不拒绝切换许可。如果所请求的主机4a、4b...4n不能访问所指示的存储群集12a、12b,则主机4a、4b...4n可以响应以拒绝切换许可,或者指示主机不能进行切换。在一个实施例中,只有当所有其它主机4a、4b...4n可以切换到使用所指示的存储群集12a、12b来存取存储装置8a、8b时,接收到该响应的I/O管理器26a、26b...26n才可以确定切换。可选地,只有当阈值数目或比率例如大多数的主机4a、4b...4n可以使用所指示的存储群集12a、12b时,接收到该响应的I/O管理器26a、26b...26n才可以确定切换。此外,I/O管理器26a、26b...26n可以基于优先权准则例如主机4a、4b...4n是否正在执行高优先级的应用,为某些主机4a、4b...4n提供较大的权重。
如果(在块162)I/O管理器26a、26b...26n确定不切换,则I/O管理器26a、26b...26n使任何对存储装置8a、8b的I/O请求失败(在块154)。否则,(在块162)如果确定切换到可用存储群集12a、12b,则I/O管理器26a、26b,..26n在网络32上将消息传送到主机4a、4b...4n,以使用所指示的存储群集12a、12b(在块164)。然后,I/O管理器26a、26b...26n切换到使用可用存储群集12a、12b(在块166)。
图5示出了响应于从检测到故障并且执行图3或4的操作的一个I/O管理器26a、26b...26n接收到用于切换存储群集12a、12b的消息,由在主机4a、4b...4n中执行的I/O管理器26a、26b...26n执行的操作的实施例。响应于接收到用于切换到使用所指示的存储群集12a、12b的消息(在块200),I/O管理器26a、26b...26n确定是否正在使用所指示的存储群集12a、12b来存取存储装置8a、8b(在块202)。如果这样,则控制结束,并且主机4a、4b...4n继续使用所指示的存储群集12a、12b。否则,如果(在块202)所指示的存储群集12a、12b当前未被正在使用,即不是优选的存储群集12a、12b,并且如果(在块204)所指示的存储群集12a、12b可用,则I/O管理器26a、26b...26n切换到使用所指示的存储群集12a、12b来存取存储装置8a、8b(在块206)。否则,如果(在块204)所指示的存储群集12a、12b不可用,则使对存储装置8a、8b的I/O请求失败(在块208)。
图3、4和5的所述操作用来让尽可能多的主机4a、4b...4n使用同一存储群集12a、12b,以便存在更低的这样的可能性,即,由不同的存储群集12a、12b处理对例如轨道或卷的同一位置的I/O写入。如果某些主机4a、4b...4n不能切换到使用所指示的存储群集12a、12b,则两个存储群集12a、12b可以并发地使得对同一存储位置的I/O请求需要转移并且在单个存储群集12a、12b处合并这些I/O请求。然而,图3和4的操作设法最小化让存储群集12a、12b交换I/O请求的需要。
图6示出了由网络管理器30执行的操作的实施例,其用于为主机4a、4b...4n分配公共存储群集12a、12b,以用来与存储装置8a、8b通信。作为初始化的一部分,或者在检测到一个主机4a、4b丢失了对该主机4a、4b...4n正在用来存取存储装置8a、8b的存储群集12a、12b的访问时,网络管理器30可以启动为主机4a、4b...4n选择存储群集12a、12b以用来存取存储装置8a、8b的操作(在块250)。在某点,网络管理器30从主机4a、4b...4n接收其网络拓扑图,其提供了主机到其它网络6元件例如交换机、主机、存储装置等的连接和路径视图(在块252)。网络管理器30可以通过访问网络6中的交换机,收集关于网络拓扑的信息。可选地,可以通过在主机4a、4b...4n中执行的代理程序(未示出),收集关于网络6中的主机4a、4b...4n的拓扑信息。这些代理程序可以通过带内6或带外网络32,将其网络拓扑信息传递到网络管理器30。代理还可以处理在管理器30和主机4a、4b...4n之间的另外通信,以共享信息和协调操作。
网络管理器30处理主机4a、4b...4n连接的网络拓扑,以确定与存储群集12a、12b的主机连接(在块254)。如果(在块256)所有主机可访问存储群集12a、12b中的一个,则网络管理器30将消息发送到主机4a、4b...4n,以使用所有主机可访问的所指示的存储群集12a(在块258)。否则,如果(在块256)网络拓扑指示不是所有主机4a、4b...4n可访问存储群集12a、12b中的一个,则网络管理器30应用选择策略,以选择少于全部主机4a、4b...4n可访问的存储群集12a、12b之一。在一个实施例中,选择策略可以选择最大数目的主机可访问的存储群集12a、12b。图7示出了选择策略的实施例,其使用用于主机4a、4b...4n的、表示主机所服务的应用的相对重要性的优先级权重。接下来,网络管理器30将消息发送到可访问所选存储群集12a、12b的主机4a、4b...4n,以使用所选存储群集12a、12b来存取存储装置8a、8b(在块262)。网络管理器30还可以将消息发送到不可访问所选存储群集12a、12b的主机4a、4b...4n,以使对存储装置8a、8b的I/O请求失败(在块264)。以这种方式,主机可以对于对存储装置8a、8b的I/O请求仅仅使用存储群集中的一个,从而减少存储群集12a、12b相互转移I/O请求以在一个存储群集12a、12b处合并对存储位置的所有I/O请求的需要。
图7示出了选择策略的操作的实施例,其中网络管理器使用该选择策略,为主机4a、4b...4n选择存储群集12a、12b之一以用来存取存储装置8a、8b。一旦执行选择策略以选择一个存储群集12a、12b(在块300),这可以发生在图6中的块260,网络管理器30就确定主机4a、4b...4n能够访问每个存储群集12a、12b(在块302)。然后,网络管理器30为所确定的能够访问存储群集12a、12b的主机4a、4b...4n,确定优先级权重(在块304)。图8提供了网络管理器30针对在字段332中标识的每个主机维护的主机优先级信息330的实施例,其表示用于所标识主机的相对优先级权重334。正在执行诸如任务关键性应用、或为较关键或重要的客户端服务的较高优先级应用的主机可以被分配较高优先级权重334。回到图7,对于每个存储群集12a、12b,网络管理器30对所确定的能够访问存储群集12a、12b的主机4a、4b...4n的权重进行求和,以获得针对每个存储群集12a、12b的和(在块306)。I/O管理器30选择具有最高求和的优先级权重的存储群集12a、12b(在块308)。可以使用可选计算技术来确定具有累积最高相对优先级的、由主机4a、4b...4n访问的存储群集12a、12b。例如,可以为不同的主机-卷对提供优先级权重,使得可以根据受到I/O请求的卷而将不同的优先级权重用于同一主机。这样,相同优先级权重可以针对一个或多个卷与多个主机相关联,或者可以为不同主机-卷对提供不同优先级权重。
所述实施例提供了这样的技术,其用于让主机或存储管理器选择多个存储群集中的一个,主机4a、4b...4n可以使用其来存取存储装置,其中存储群集允许存取同一存储装置。在特定实施例中,引导主机针对存储位置仅仅使用一个存储群集12a、12b避免了在对同一存储位置的写入在两个存储群集12a、12b处都未决的情况下让群集器12a、12b采取校正操作的需要。
附加实施例细节
所述操作可以被实现为使用标准编程和/或工程技术来生产软件、固件、硬件或其任何组合的方法、设备或产品。所述操作可以被实现为在“计算机可读介质”中维护的代码,其中处理器可以从计算机可读介质读取并执行代码。计算机可读介质可以包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光学存储装置(CD-ROM、DVD、光盘等)、易失性和非易失性存储器装置(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑电路等)等的介质。实现所述操作的代码可以在硬件逻辑电路中实现(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)。另外,实现所述操作的代码可以在“传输信号”中实现,其中传输信号可以通过空间或者通过诸如光纤、铜线等的传输介质来传播。在其中编码了代码或逻辑的传输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。在其中编码了代码或逻辑的传输信号能够由发射站发射并且由接收站接收,其中可以对在传输信号中编码的代码或逻辑进行解码,并且将其存储在接收和发射站或设备的硬件或计算机可读介质中。“产品”包括可以在其中实现代码的计算机可读介质、硬件逻辑和/或传输信号。在其中编码了实现所述操作实施例的代码的装置可以包括计算机可读介质或硬件逻辑。当然,本领域的技术人员将认识到,可以对该配置进行很多修改,而不背离本发明的范围,并且产品可以包括在本技术领域内公知的适合信息承载介质。
在所述实施例中,I/O管理器26a、26b...26n或网络管理器30选择存储群集12a、12b以用来存取存储装置。该选择可以针对可通过存储群集12a、12b存取的所有卷10a、10b来进行。在特定实施例中,可以基于每个卷而确定用于存取的存储群集12a、12b的选择,使得可以基于所使用的选择准则而选择不同的存储群集以用来存取存储装置8a、8b中的不同卷10a、10b。这样,特定主机4a、4b...4n可能能够通过所选存储群集12a、12b(根据图4、6和7的操作而选择)来存取特定卷10a、10b,但是当为特定卷10a、10b选择对于主机4a、4b...4n不可用的存储群集12a、12b时,不能存取其它卷。
在所述实施例中,针对被管理的存储群集执行用于为主机选择存储群集以便使用的技术,以便将所接收的写操作转移到已经具有未决的对同一存储位置的I/O请求的另一存储群集。在另外实施例中,可以在存储控制器系统中执行所述用于为主机选择存储群集12a、12b以便使用的操作,其中存储控制器系统允许两个不同的存储群集在同一存储位置执行写请求。
除非另外特别指出,术语“实施例(an embodiment)”、“实施例(embodiment)”、“多个实施例(embodiments)”、“本实施例(theembodiment)”、“这些实施例(the embodiments)”、“一个或多个实施例”、“一些实施例”、以及“一个实施例”意味着“本发明的一个或多个(而非全部)实施例”。
除非另外特别指出,术语“包括(including)”、“包括(comprising)”、“具有(having)”及其变化形式意味着“包括但不限于”。
除非另外特别指出,项目的枚举列表不意味着这些项目中的任何或所有项目是互斥的。
除非另外特别指出,术语“a”、“an”和“该(the)”意味着“一个或多个”。
除非另外特别指出,相互通信的设备无需处于连续的相互通信。另外,相互通信的设备可以直接地或通过一个或多个中介物间接地通信。
具有相互通信的若干组件的实施例的描述并不意味着需要所有这样的组件。相反,描述了各种可选组件是为了说明本发明的各种可能实施例。
此外,虽然可以按照顺序描述处理步骤、方法步骤、算法等,但是这些处理、方法和算法可以被配置成以替代次序工作。换句话说,可以描述的任何步骤顺序或次序不一定表示以该次序执行步骤的要求。这里所述的处理步骤可以以任何实际次序执行。此外,可以同时执行一些步骤。
当这里描述了单个设备或物品时,应当容易地清楚,可以使用多于一个设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,当这里描述了多于一个设备或物品(无论它们是否协作)时,应当容易地清楚,可以使用单个设备/物品来代替该多于一个设备或物品,或者可以使用不同数目的设备/物品来代替所示数目的设备或程序。设备的功能性和/或特征可以可选地由未被显式地描述为具有这样的功能性/特征的一个或多个其它设备实施。这样,本发明的其它实施例无需包括设备本身。
图3、4、5、6和7的所示操作示出了以特定次序发生的特定事件。在可选实施例中,可以以不同的次序执行、修改或删除特定操作。此外,可以将步骤添加到上述逻辑,并且仍然遵循所述实施例。此外,可以顺序地发生这里描述的操作,或者可以并行地处理特定操作。另外,可以由单个处理单元或者由分布式处理单元执行操作。
本发明的各个实施例的前面描述是为了说明和描述的目的而提供的。它不意欲是穷尽性的,或者将本发明局限于所公开的确切形式。鉴于上面教导,很多修改和变化是可能的。本发明的范围不意欲由本详细描述限制,而是由所附权利要求限制。上面说明书、示例和数据提供了本发明的组成的制造和使用的完整描述。由于可以产生本发明的很多实施例而不脱离本发明的精神和范围,因此本发明居于所附权利要求之内。

Claims (14)

1.一种方法,包括:
在网络上将存取存储装置的输入/输出(I/O)请求传输到第一存储群集,其中所述存储装置可以在所述网络上另外通过第二存储群集存取,并且第一和第二存储群集都能够存取所述存储装置;
当第二存储群集可用时,检测第一存储群集的不可用性;以及
在所述网络上将使用第二存储群集存取所述存储装置的请求传送到主机,其中接收到所传送的请求的主机通过第二存储群集将I/O请求发送到所述存储装置。
2.如权利要求1所述的方法,还包括:
在所述网络上将请求从使用第一存储群集切换到使用第二存储群集的许可的消息发送到主机;
从所述主机接收对所述消息的响应,其指示所述主机是否提供从第一存储群集切换到第二存储群集的许可;以及
从所接收的响应确定是否从使用第一存储群集切换到使用第二存储群集以将I/O请求发送到所述存储装置。
3.如权利要求2所述的方法,其中如果基于所接收的响应而确定不从使用第一存储群集切换到使用第二存储群集,则不选择使用第二存储群集,并且不将所述请求传送到所述主机。
4.如权利要求2所述的方法,其中如果接收到所述消息的所有主机都响应以指示从第一存储群集切换到第二存储群集的许可,则确定从使用第一存储群集切换到第二存储群集。
5.如权利要求3所述的方法,还包括:
响应于确定不从使用第一存储群集切换到使用第二存储群集,使对所述存储装置的I/O请求失败。
6.一种方法,包括:
处理网络拓扑以确定与第一和第二存储群集的主机连接;
响应于确定所有主机可访问所选存储群集,选择所有主机可访问的第一和第二存储群集之一;
响应于确定少于全部主机可访问第一和第二存储群集,基于选择策略而选择少于全部主机可访问的第一和第二存储群集之一;以及
将消息发送到可访问所选存储群集的主机,以使用所选存储群集来存取所述存储装置。
7.如权利要求6所述的方法,还包括:
将消息发送到不可访问所选存储群集的主机,以使对所述存储装置的I/O请求失败。
8.如权利要求6所述的方法,其中基于选择策略而选择第一和第二存储群集之一包括选择可被最大数目的主机访问的存储群集。
9.如权利要求6所述的方法,还包括:
确定能够访问第一和第二存储群集中的每个的主机;
针对能够访问第一或第二存储群集的主机确定权重;以及
针对第一和第二存储群集中的每个,确定能够访问所述存储群集的主机的权重和,其中所选存储群集包括具有最大和的存储群集。
10.如权利要求9所述的方法,其中主机权重基于所述主机正在执行的应用的优先级。
11.一种系统,在网络上与主机、第一存储群集和第二存储群集通信,其中存储装置可通过第一和第二存储群集存取,包括:
处理器;以及
计算机可读介质,包括可由所述处理器执行以执行操作的代码,所述操作包括:
在网络上将存取存储装置的输入/输出(I/O)请求传输到第一存储群集;
当第二存储群集可用时,检测第一存储群集的不可用性;以及
在所述网络上将使用第二存储群集存取所述存储装置的请求传送到所述主机,其中接收到所传送的请求的所述主机通过第二存储群集将I/O请求发送到所述存储装置。
12.如权利要求11所述的系统,其中所述操作还包括:
在所述网络上将请求从使用第一存储群集切换到使用第二存储群集的许可的消息发送到所述主机;
从所述主机接收对所述消息的响应,其指示所述主机是否提供从第一存储群集切换到第二存储群集的许可;以及
从所接收的响应确定是否从使用第一存储群集切换到使用第二存储群集以将I/O请求发送到所述存储装置。
13.如权利要求12所述的系统,其中如果基于所接收的响应而确定不从使用第一存储群集切换到使用第二存储群集,则不选择使用第二存储群集,并且不将所述请求传送到所述主机。
14.如权利要求12所述的方法,其中所述操作还包括:
响应于确定不从使用第一存储群集切换到使用第二存储群集,使对所述存储装置的I/O请求失败。
CN200610132177.2A 2005-11-22 2006-10-12 用于选择存储群集以用来存取存储装置的方法和系统 Active CN100568881C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/286,847 2005-11-22
US11/286,847 US7380074B2 (en) 2005-11-22 2005-11-22 Selecting storage clusters to use to access storage

Publications (2)

Publication Number Publication Date
CN1972312A true CN1972312A (zh) 2007-05-30
CN100568881C CN100568881C (zh) 2009-12-09

Family

ID=38054820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610132177.2A Active CN100568881C (zh) 2005-11-22 2006-10-12 用于选择存储群集以用来存取存储装置的方法和系统

Country Status (2)

Country Link
US (3) US7380074B2 (zh)
CN (1) CN100568881C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778025A (zh) * 2012-10-22 2014-05-07 深圳市腾讯计算机系统有限公司 存储方法及存储装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272357A (ja) * 2006-03-30 2007-10-18 Toshiba Corp ストレージクラスタシステム、データ処理方法、及びプログラム
US7711683B1 (en) 2006-11-30 2010-05-04 Netapp, Inc. Method and system for maintaining disk location via homeness
US7613947B1 (en) * 2006-11-30 2009-11-03 Netapp, Inc. System and method for storage takeover
US8417895B1 (en) 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US8417871B1 (en) 2009-04-17 2013-04-09 Violin Memory Inc. System for increasing storage media performance
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8402246B1 (en) 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
US8949565B2 (en) * 2009-12-27 2015-02-03 Intel Corporation Virtual and hidden service partition and dynamic enhanced third party data store
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US8954808B1 (en) * 2010-11-30 2015-02-10 Symantec Corporation Systems and methods for performing input/output path failovers
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US8732520B2 (en) 2011-04-06 2014-05-20 Lsi Corporation Clustered array controller for global redundancy in a SAN
US8738823B2 (en) * 2012-10-16 2014-05-27 International Business Machines Corporation Quiescing input/output (I/O) requests to subsets of logical addresses in a storage for a requested operation
CN103634388B (zh) * 2013-11-22 2017-06-20 华为技术有限公司 处理存储服务器中控制器重启的方法和相关设备及通信系统
US10437510B2 (en) 2015-02-03 2019-10-08 Netapp Inc. Monitoring storage cluster elements
US20160239394A1 (en) * 2015-02-13 2016-08-18 Netapp, Inc. Methods for improving management of input or output operations in a network storage environment with a failure and devices thereof
US10515027B2 (en) * 2017-10-25 2019-12-24 Hewlett Packard Enterprise Development Lp Storage device sharing through queue transfer
CN109725829B (zh) * 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端QoS解决方案的系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0127029B1 (ko) * 1994-10-27 1998-04-01 김광호 메모리카드와 그 기록, 재생 및 소거방법
US6421711B1 (en) 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6343324B1 (en) 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US6738818B1 (en) 1999-12-27 2004-05-18 Intel Corporation Centralized technique for assigning I/O controllers to hosts in a cluster
US6587970B1 (en) 2000-03-22 2003-07-01 Emc Corporation Method and apparatus for performing site failover
US6820171B1 (en) 2000-06-30 2004-11-16 Lsi Logic Corporation Methods and structures for an extensible RAID storage architecture
US7464156B2 (en) 2001-09-07 2008-12-09 Sanrad, Ltd. Load balancing method for exchanging data between multiple hosts and storage entities, in IP based storage area network
US6880040B2 (en) 2002-06-27 2005-04-12 International Business Machines Corporation Virtual sequential data storage (VSDS) system with router conducting data between hosts and physical storage bypassing VSDS controller
AU2003272351A1 (en) 2002-09-17 2004-04-08 Sockeye Networks, Inc. Network address space clustering employing topological groupings, distance measurements and structural generalization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778025A (zh) * 2012-10-22 2014-05-07 深圳市腾讯计算机系统有限公司 存储方法及存储装置

Also Published As

Publication number Publication date
US20080215827A1 (en) 2008-09-04
US20070118706A1 (en) 2007-05-24
US7380074B2 (en) 2008-05-27
US20080215596A1 (en) 2008-09-04
US7730267B2 (en) 2010-06-01
CN100568881C (zh) 2009-12-09

Similar Documents

Publication Publication Date Title
CN100568881C (zh) 用于选择存储群集以用来存取存储装置的方法和系统
US9769259B2 (en) Network storage systems having clustered RAIDs for improved redundancy and load balancing
US6915381B2 (en) System and method for transferring data from a secondary storage controller to a storage media after failure of a primary storage controller
CN100470494C (zh) 集群可用性管理方法和系统
CN100445966C (zh) 存储装置虚拟化装置的设备控制交接方法
US6601138B2 (en) Apparatus system and method for N-way RAID controller having improved performance and fault tolerance
US8699322B1 (en) Port identifier management for path failover in cluster environments
CN100385406C (zh) 执行与多个代理节点关联的备份节点的计划备份
CN100403300C (zh) 镜像网络数据以建立虚拟存储区域网络
KR101506368B1 (ko) 직접-연결 저장 시스템을 위한 능동-능동 장애 극복
US6968401B2 (en) Method, system, and program for maintaining and swapping paths in an MPIO environment
US20080005470A1 (en) System and method for sharing sata drives in active-active raid controller system
US8738821B2 (en) Selecting a path comprising ports on primary and secondary clusters to use to transmit data at a primary volume to a secondary volume
CN101755257B (zh) 管理在不同的网络上将写入从首要存储器拷贝到次要存储器
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
US7984260B2 (en) Storage system provided with a plurality of controller modules
CN1968285A (zh) 向网络中的主机分配路径的方法和系统
US20140032960A1 (en) Information processing system and access control method
CN1581853B (zh) 用于处理要在网络上发送的分组的方法、系统和程序
CN106331166A (zh) 一种存储资源的访问方法及装置
CN105635310A (zh) 一种存储资源的访问方法及装置
CN102387175A (zh) 一种存储系统迁移的方法和系统
US20060235937A1 (en) System and method for processing commands in a storage enclosure
US20080244306A1 (en) Storage system and management method for the same
US10572188B2 (en) Server-embedded distributed 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
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120504

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120504

Address after: American California

Patentee after: Google Inc.

Address before: American New York

Patentee before: International Business Machines Corp.

CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder