CN101310250A - 选择包括首要和次级群集上的端口的路径以用于将位于首要卷的数据传输到次级卷 - Google Patents

选择包括首要和次级群集上的端口的路径以用于将位于首要卷的数据传输到次级卷 Download PDF

Info

Publication number
CN101310250A
CN101310250A CN200680042775.9A CN200680042775A CN101310250A CN 101310250 A CN101310250 A CN 101310250A CN 200680042775 A CN200680042775 A CN 200680042775A CN 101310250 A CN101310250 A CN 101310250A
Authority
CN
China
Prior art keywords
owner
port
storage position
primarily
clusters
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
CN200680042775.9A
Other languages
English (en)
Other versions
CN101310250B (zh
Inventor
M·T·本哈塞
J·C-C·陈
M-N·L·许恩
S·E·克莱恩
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.)
International Business Machines Corp
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 CN101310250A publication Critical patent/CN101310250A/zh
Application granted granted Critical
Publication of CN101310250B publication Critical patent/CN101310250B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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/2007Error 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/201Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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 by mirroring
    • G06F11/2071Error 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 by mirroring using a plurality of controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (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

所提供的是一种用于选择包括首要和次级群集上的端口的路径的方法、系统和程序,所述路径用于将位于首要卷的数据传输到次级卷。接收将数据从首要存储位置拷贝到次级存储位置的请求。从多个首要群集中确定针对所述首要存储位置的拥有者首要群集,其中所述多个首要群集被配置为访问所述首要存储位置。确定在所述拥有者首要群集上是否存在至少一个端口,其提供到所述次级存储位置的可用路径。响应于确定在所述拥有者首要群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者首要群集上的一个端口,以用于将数据拷贝到所述次级存储位置。

Description

选择包括首要和次级群集上的端口的路径以用于将位于首要卷的数据传输到次级卷
技术领域
本发明涉及用于选择包括首要和次级群集上的端口的路径以用于将位于首要卷的数据传输到次级卷的方法、系统和程序。
背景技术
存储网络中的主机系统可以通过多个路径与存储控制器通信。存储控制器可以包括单独的存储群集,其中每个存储群集能够访问存储装置并提供要访问存储装置的冗余。如果存储群集发生故障,则主机可以进行故障修复,使用其它存储控制器来访问存储装置。
在某些系统体系结构中,被写入首要存储系统中的首要卷的数据可以在位于次级存储系统的次级卷被镜像,以协助数据恢复和数据部署。典型地,当应用系统正将新数据写到首要存储设备时,这样的双重或影子拷贝被建立。国际商业机器公司(IBM)提供了用于在位于单独站点的次级卷镜像首要卷的扩展远程拷贝(XRC)和对等远程拷贝(PPRC)解决方案。这些系统提供了一种方法,用于将数据持续镜像到远程站点以便在从其持续地镜像数据的首要站点出现故障期间进行故障修复。这样的数据镜像系统还可以出于非恢复目的(诸如在远程站点的本地访问)而提供附加的远程拷贝。在这样的备份系统中,数据在卷对中被保存。卷对包括首要存储设备中的一个卷和次级存储设备中的对应卷,所述对应卷包括在首要卷中保存的数据的相同拷贝。
首要存储控制器可以保存关于卷对中的首要和次级卷的拷贝关系信息。首要存储控制器可以通过将首要卷数据传输到次级存储控制器来管理在次级卷上对首要卷的初始拷贝的建立,所述次级存储控制器用于管理对拷贝关系中的次级卷的访问。在初始拷贝建立后,接着首要存储控制器将对于卷对中的首要卷的更新传送到次级卷。
在首要存储控制器中的适配器(其可以位于不同的首要群集(处理复合体(complex)))和次级存储控制器(其也可以具有多个群集)中的适配器之间可以存在多个路径。在某些系统中,首要存储控制器可以使用加载均衡,以选择一路径用于将首要卷的数据传送到次级存储控制器,以便写入拷贝关系中的次级卷。
在本领域中存在对于下述改进技术的需要,所述技术用于选择路径用于在拷贝关系中的首要和次级卷之间传送数据。
发明内容
所提供的是一种用于选择包括首要和次级群集上的端口的路径的方法、系统和程序,所述路径用于将位于首要卷的数据传输到次级卷。接收将数据从首要存储位置拷贝到次级存储位置的请求。从多个首要群集中确定针对所述首要存储位置的拥有者首要群集,其中所述多个首要群集被配置为访问所述首要存储位置。确定在所述拥有者首要群集上是否存在至少一个端口,其提供到所述次级存储位置的可用路径。响应于确定在所述拥有者首要群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者首要群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
附图说明
现在将仅通过示例并参考以下附图来描述本发明的实施例:
图1示出了网络计算环境的实施例。
图2示出了存储控制器的实施例。
图3和4示出了用于选择首要和次级端口以用于传输数据的端口信息的实施例。
图5a、5b、6和7示出了用于选择首要和次级群集上的端口以用于在首要和次级卷之间传输数据的操作的实施例。
具体实施方式
图1示出了网络计算环境的实施例。多个主机2可以向首要存储控制器4提交输入/输出(I/O)请求,以访问位于首要存储装置8中的首要卷6(例如,逻辑单元号、逻辑设备等)的数据。首要存储控制器4包括两个或更多首要群集10a、10b(示出两个)。主机I/O请求可以被提交到群集10a或10b,以写入首要存储装置8。
每个首要群集10a、10b包括一个或更多网络适配器12a、12b、12c、12d(在每个群集10a、10b中示出两个),以提供在网络18上与次级存储控制器16中的两个或更多次级群集14a、14b的通信。每个次级群集14a、14b具有一个或更多网络适配器20a、20b、20c、20d(在每个群集14a、14b中示出两个),以使能在网络18上与首要群集10a、10b的通信。次级群集14a、14b管理对次级存储装置24中的卷22的访问。
存储控制器4、16可以包括本领域已知的存储控制器或者服务器,诸如国际商业机器(IBM)的Enterprise Storage Server
Figure A20068004277500111
(ESS)(EnterpriseStorage Server是IBM的注册商标)。可替换地,存储控制器可以包括相对于高端的企业存储服务器而言的低端存储服务器。每个存储控制器中的群集包括单独的处理系统,并且可以位于不同的功率边界并用单独的硬件组件实现,诸如在单独母板上实现的每个群集。主机2可以包括本领域已知的计算设备,诸如服务器、大型机、工作站、个人计算机、手持式计算机、膝上型计算机、电话设备、网络设备等等,它们能够将I/O请求传送到首要存储控制器4以访问首要存储装置8。主机2可以在网络18或者某种其它连接上连接到首要存储控制器4。网络18可以包括存储区域网络(SAN)、局域网(LAN)、内联网、因特网、广域网(WAN)、对等网络等等。首要8和次级24存储装置可以包括存储设备阵列,诸如简单磁盘捆束(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)、虚拟化设备、磁带存储装置、闪速存储器等等。
图2示出了存储控制器50(诸如图1中示出的首要4和次级16存储控制器)中的组件的实施例。存储控制器50包括两个群集52a、52b,诸如群集10a、10b、14a、14b。每个群集52a、52b包括处理器复合体54a、54b、高速缓存56a、56b、以及非易失性存储单元(NVS)58a、58b,以便在高速缓存56a、56b中备份数据用于某些类型的写操作。群集52a、52b从主机2接收I/O请求,并且缓冲所述请求并将其各自的高速缓存56a、56b中的数据写入所附接的存储装置。每个群集10a、10b包括由处理器复合体54a、54b执行的存储管理软件60a、60b,以管理I/O请求。
存储管理软件60a、60b可以保存关于首要存储装置8中的首要卷6与次级存储装置24中的次级卷22(即,卷对)之间的拷贝关系的信息,从而对于关系中的首要卷6的任意更新被拷贝到该关系中的相应的次级卷22,从而该关系中的次级卷22保存相关联的首要卷6的镜像拷贝。在初始拷贝阶段,该关系中的首要卷6中的数据被异步地拷贝到次级卷8。例如,可以对首要卷6进行虚拟时间点拷贝,并且接着在虚拟拷贝(诸如IBM
Figure A20068004277500121
FlashCopy操作)中指示的数据被异步地从首要卷6拷贝到次级卷(IBM和FlashCopy是IBM的注册商标)。在初始拷贝阶段之后,对首要卷6的更新可以被同步地拷贝到次级卷22,从而当写数据处于拥有所述关系中的次级卷的次级群集14a、14b的高速缓存中、以及写数据的拷贝位于非拥有群集14a、14b的NVS中之时,针对更新返回完成。
总线62提供通信接口,用于使能群集52a、52b之间的通信。总线可以包括本领域已知的任意通信接口或者网络通信接口,所述任意通信接口诸如外围组件互连(PCI)总线或者其它总线接口,所述网络通信接口诸如广域网(WAN)、存储区域网络(SAN)、局域网(LAN)、因特网、无线网络等等。每个群集52a、52b进一步包括一个或更多适配器64a、64b,以使能在网络18上的通信以及提供到另一存储控制器中的群集的适配器的连接。专用于特定群集52a、52b的适配器64a、64b可以位于群集的母板的板上,或者位于插入到群集52a、52b的母板上的扩展卡槽中的扩展卡中。可替换地,适配器可以由群集共享。每个适配器64a、64b包括适配器逻辑66a、66b,以管理网络通信。每个适配器64a、64b可以包括一个或更多物理端口,以提供网络18中的单独连接。
群集52a、52b二者都能够在共享存储总线72上访问存储系统70a、70b中的卷68a、68b,所述共享存储总线72可以使用本领域已知的适当的存储通信接口。存储管理软件60a、60b还可以保存将成为所附接的存储装置70a、70b中的特定卷68a、68b的拥有者的群集52a、52b的分配,从而拥有者群集52a、52b通过高速缓存写数据以及执行针对卷的写入来处理对群集所拥有的这些卷68a、68b的写入。
图3示出了次级卷首要端口信息80的实施例,其提供了关于首要群集适配器12a、12b上的首要端口的信息,所述首要群集适配器12a、12b可被用于与次级群集14a、14b通信以访问所标识的次级卷22。信息80包括次级卷标识符(ID)82以及关于可被用于访问所标识的次级卷的首要端口的信息的列表84。此列表84中的每个条目可以包括首要端口ID 86a...86n、首要端口的状态88a...88n(活动或禁用),以及首要端口86a...86n所在的首要群集90a...90n,即,具有包括所标识的端口的适配器的首要群集90a...90n。此信息可以被保存用于与次级卷22的拷贝关系中的每个首要卷6,即卷对。
图4示出了次级卷次级端口信息100的实施例,其提供了关于次级群集适配器20a、20b、20c、20d上的次级端口的信息,所述次级群集适配器20a、20b、20c、20d可被用于与次级群集14a、14b通信以访问次级卷22。信息100包括次级卷标识符(ID)102以及关于可被用于访问所标识的次级卷的次级适配器20a、20b、20c、20d中的次级端口的信息的列表104。此列表104中的每个条目可以包括次级端口ID 106a...106n、次级端口的状态108a...108n,以及次级端口106a...106n所在的拥有者次级群集110a...110n,即,具有包括所标识的端口的适配器的次级群集。此信息可以被保存用于每个卷对。
图5a和5b示出了由首要群集10a、10b中的组件执行的操作,用于将作为初始拷贝或者随后的同步的一部分的数据从首要卷6拷贝到拷贝关系中的次级卷22。所述操作可以由首要群集中的存储管理软件60a、60b执行,或者由存储管理软件60a、60b和适配器逻辑66a、66b二者执行。响应于处理(在框200)将数据从首要存储位置(卷)6拷贝到次级存储位置(卷)22的请求,处理请求的存储管理软件60a、60b从多个首要群集10a、10b中确定(在框202)首要存储位置6的拥有者首要群集。拥有者首要群集10a、10b可以通过处理首要卷6的标识符号码来确定,因为此号码可以映射到拥有者首要群集10a、10b或者从拥有者首要群集10a、10b导出。可替换地,存储管理软件60a、60b可以保存将首要卷6关联于其拥有者首要群集10a、10b的表。接着确定(在框204)在拥有者首要群集适配器12a、12b、12c、12d上是否存在至少一个端口,其提供到次级卷的可用路径。存储管理软件60a、60b可以处理针对次级卷的条目80(图3),以接收数据以便确定是否存在一个首要端口86a...86n,其拥有首要群集90a...90n是所确定的进行拷贝操作的首要卷6的拥有者首要群集10a、10b,以及确定所确定的首要端口86a...86n之一是否具有活动的或可用的端口状态88a...88n,其指示出到次级存储控制器16的连接是运转的。
如果(在框204)在拥有具有要拷贝的数据的首要卷6的首要群集10a、10b的适配器12a、12b、12c、12d上不存在首要端口,则存储管理软件60a、60b选择(在框206)未拥有首要卷6的一个首要群集上的可用端口,以用于将数据拷贝到次级存储位置。如果存在多个端口可用,则存储管理软件60a、60b可以使用加载均衡算法或其它选择技术来选择可用端口。否则,如果(在框204)存在可用的首要端口,则选择(在框208)拥有者首要群集10a、10b上的一个可用端口,以用于将数据拷贝到次级存储卷22。
框210-218的操作可以由存储管理软件60a、60b或由适配器逻辑66a、66b执行。如果操作由适配器逻辑66a、66b执行,则拷贝请求被转发到所选择的端口,并且包括所选择的端口的适配器64a、64b中的适配器逻辑66a、66b执行框210-218的操作,以选择次级群集上的端口和路径,在所述路径上将传输数据以拷贝到次级卷22。
在框210,从多个次级群集中确定要接收数据的次级卷22的拥有者次级群集14a、14b。拥有者次级群集14a、14b可以通过处理针对次级卷22的标识符号码来确定,因为该号码可以映射到拥有者次级群集14a、14b。可替换地,存储管理软件60a、60b或适配器逻辑66a、66b可以保存将次级卷22关联于其拥有者次级群集14a、14b的表。接着确定(在框212)在所确定的拥有者次级群集适配器20a、20b、20c、20d上是否存在至少一个端口,其提供到次级卷22的可用路径。存储管理软件60a、60b或适配器逻辑66a、66b可以处理针对次级卷的条目100(图4),以接收数据以便确定是否存在一个次级端口106a...106n,其拥有首要群集110a...110n是所确定的要接收数据的次级卷22的拥有者次级群集14a、14b,以及确定所确定的次级端口106a...106n之一是否具有活动的或可用的端口状态108a...108n,其指示出到次级端口的连接是运转的。
如果(在框212)在拥有要接收数据的次级卷22的次级群集14a、14b的适配器20a、20b、20c、20d上不存在次级端口,则在未拥有次级卷22的一个次级群集14a、14b上选择(在框214)可用端口,以用于将数据拷贝到次级卷22。否则,如果(在框212)存在可用的次级端口,则在拥有者次级群集14a、14b上选择(在框216)一个可用的次级端口,以接收要写入次级存储卷22的数据。如果存在多个可用端口,则可以使用加载均衡算法来选择可用端口。其它选择技术可以被用于选择可用端口,例如循环法(round robin)等等。接着,要拷贝的数据在包括首要和次级群集中的适配器上的所选择端口的路径上被传输(在框218)。
通过图5a和5b所描述的操作,选择标准优选地选择分别拥有要进行拷贝操作的首要和次级卷的首要和次级群集上的适配器上的端口。如果在拥有首要和次级卷的首要和次级群集上存在多个可用端口,则加载均衡可以被用于选择具有分别拥有首要和次级卷的首要和次级群集上的端口的路径。
在一实施例中,存储管理软件60a、60b可以执行框200-208的操作,并接着将拷贝请求转发到包括所选择端口的适配器12a、12b、12c、12d。接着,接收拷贝请求的适配器卡上的适配器逻辑66a、66b可以执行框210-218的操作,以选择要使用的一个次级群集14a、14b上的次级端口,并接着在包括所选择的首要和次级端口的路径上传输针对次级卷22的数据。
图6示出了由存储管理软件60a、60b单独执行或者结合适配器逻辑66a、66b执行的操作的实施例,所述操作用于将数据从首要卷6传输到拷贝关系中的次级卷22以建立初始镜像拷贝。一旦启动(在框250)执行初始拷贝操作以便异步地将数据从首要卷6传送到拷贝关系中的次级卷22的操作,存储管理软件60a、60b创建(在框252)要拷贝到次级卷的首要卷的虚拟拷贝,诸如IBM FlashCopy
Figure A20068004277500161
。虚拟拷贝可以包括具有针对要拷贝的首要卷中的每个磁道的位的位图以及其它管理信息。在位图中指示的磁道接着被异步地拷贝到卷对中的次级卷,并且当磁道被拷贝之时该位被设置。存储管理软件60a、60b以及可能还有的适配器逻辑66a、66b执行(在框254)图5a和5b中的框202-216的操作,以在首要和次级群集(优选地为拥有者首要和次级群集)上选择端口。接着具有所选择的首要端口的适配器在包括所选择端口的路径上将数据传输(在框256)到一个次级群集14a、14b(优选地为拥有者次级群集)。
框258-262示出了由接收要写入的数据的次级群集14a、14b中的存储管理软件60a、60b所执行的操作。如果(在框258)拥有者次级群集14a、14b接收了要写入的数据(其中拥有者次级群集可以从目标次级卷中确定),则拥有者次级群集14a、14b高速缓存(在框260)所接收的数据,并返回(在框262)完成。在之后某个时间,数据从高速缓存56a、56b(图2)转储清除(flush)到次级卷22。否则,如果(在框258)非拥有者次级群集接收了要写入的数据,则非拥有者群集将数据发送(在框264)到拥有者次级群集14a、14b,并且控制进行到框260,其中拥有者次级群集高速缓存数据。图6的操作包括异步拷贝,因为当数据被高速缓存时,针对写操作返回完成。在被镜像拷贝到次级存储控制器16的首要卷6中的所有数据从高速缓存转储清除到次级存储装置24之后,将针对初始拷贝返回完成。
图7示出了在初始拷贝被建立之后拷贝对于拷贝关系中的首要卷6的更新的操作的实施例。一旦启动(在框300)将对于首要卷6的更新同步地拷贝到拷贝关系中的次级卷22的操作,存储管理软件60a、60b执行(在框302)图5a中的框202-208的操作,以选择首要群集(优选地为首要卷的拥有者首要群集)上的首要端口。存储管理软件60a、60b(或适配器逻辑66a、66b)接着可以使用加载均衡来选择(在框304)包括首要群集上的所选择端口和任意一个次级群集上的一个可用端口的路径。在可替换实施例中,图5a和5b中的框210-216的操作可以被用于选择路径中的次级端口。具有所选择的首要端口的首要适配器12a、12b、12c、12d在所选择的路径上将数据传输(在框306)到一个次级群集14a、14b。
框308-312示出了由接收要写入的数据的次级群集14a、14b中的存储管理软件60a、60b所执行的操作的实施例。如果(在框308)拥有者次级群集14a、14b接收了要写入的数据(其中拥有者次级群集可以从目标次级卷号码中确定),则拥有者次级群集14a、14b在其高速缓存56a、56b中高速缓存(在框310)所接收的数据,并将数据的拷贝发送到其它次级群集中的NVS 58a、58b。接着在拷贝被存储在NVS 58a、58b之后,返回(在框312)完成。在之后某个时间,数据从高速缓存56a、56b(图2)转储清除到次级卷22。否则,如果(在框308)非拥有者次级群集接收了要写入的数据,则非拥有者群集将要写入的数据存储(在框314)到NVS 58a、58b,并且将数据的拷贝发送到拥有者次级群集,以存储到拥有者高速缓存56a、56b中。
所述的实施例提供了以下技术,所述技术用于选择群集的适配器上的端口,以用于将首要卷的数据传输到拷贝关系中的次级卷,以改进拷贝性能。在某些实施例中,优选地在分别拥有在拷贝操作中涉及的首要和次级卷的首要和次级群集上选择端口,以便避免不得不执行将数据从非拥有者群集传送到拥有该卷的群集的额外操作。
附加的实施例细节
所述操作可以被实现为方法、装置或制品,所述方法、装置或制品使用标准编程和/或工程技术来产生软件、固件、硬件或它们的任意组合。所描述的操作可以实现为“计算机可读媒体”中保存的代码,其中处理器可以从所述计算机可读媒体中读取并执行所述代码。计算机可读媒体可以包括以下媒体,例如磁存储媒体(例如硬盘驱动器、软盘、磁带等等)、光存储装置(CD-ROM、DVD、光盘等等)、易失性和非易失性存储器设备(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪速存储器、固件、可编程逻辑等等)。实现所述操作的代码还可以用硬件逻辑(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等等)实现。而且,实现所述操作的代码可以用“传输信号”实现,其中传输信号可以通过空间或通过传输媒体(诸如光纤、铜线等等)来传播。对代码或逻辑进行了编码的传输信号可以进一步包括无线信号、卫星传输、无线电波、红外信号、蓝牙等等。对代码或逻辑进行了编码的传输信号能够由发射站发射并由接收站接收,其中在传输信号中进行编码的代码或逻辑可以在接收站和发射站或设备上的硬件或计算机可读媒体中被解码和存储。“制品”包括可实现代码的计算机可读媒体、硬件逻辑和/或传输信号。对实现所述操作的实施例的代码进行了编码的设备可以包括计算机可读媒体或硬件逻辑。当然,本领域技术人员将会了解,在没有脱离本发明的范围的情况下,可以对这种配置做出很多修改,并且所述制品可以包括本领域中已知的适当的信息承载媒体。
除非以别的方式明确规定,否则术语“一实施例”、“实施例”、“若干实施例”、“该实施例”、“这些实施例”、“一个或更多实施例”、“某些实施例”以及“一个实施例”都是指本发明的一个或更多实施例(但并不是全部实施例)。
除非以别的方式明确规定,否则术语“包括(including)”、“包括(comprising)”、“具有”及其变体都意味着“包括但不局限于”。
除非以别的方式明确规定,否则所列举的项目列表并不意味着任何或所有项目是互斥的。
除非以别的方式明确规定,否则术语“一”、“一个”和“该”全都意味着“一个或更多”。
除非以别的方式明确规定,否则,相互通信的设备不需要在相互之间进行连续通信。此外,相互通信的设备可以直接通信,或者通过一个或更多中介进行间接通信。
结合若干个相互通信的组件来对实施例进行的描述并不意味着需要所有这些组件。相反,多种可选的组件被描述,以便说明关于本发明的大量的可能实施例。
此外,虽然可以按照连续顺序来描述过程步骤、方法步骤、算法等等,但是这些过程、方法和算法也可以被配置成按照可替换的顺序工作。换句话说,任何可被描述的步骤顺序或序列并不必然表示所述步骤需要按照该顺序来执行。这里描述的过程的步骤可以按照任何实际顺序来执行。此外,某些步骤可以被同时执行。
当在这里描述单个设备或制品的时候,很明显,可以用一个以上的设备/制品(无论它们是否进行协作)来替换单个设备/制品。同样,如果在这里描述了一个以上的设备或制品(无论它们是否进行协作),很明显,可以用单个设备来替换一个以上的设备或制品,或者可以用不同数量的设备/制品来替换所示数量的设备或程序。可替换地,设备的功能和/或特征可以由一个或更多未被明确描述成具有所述功能/特征的其它设备来实现。因此,本发明的其它实施例不需要该设备自身。
图3和4提供了在首要和次级端口上保存的信息的实施例,以使能对具有拥有拷贝关系中的首要和次级卷的首要和次级群集上的端口的路径的选择。在可替换实施例中,信息可以以不同类型的数据结构、连同用于选择针对I/O操作的路径的附加或不同信息一起保存。
图5a、5b、6和7描述的操作示出了按照某种顺序出现的某些事件。在可替换实施例中,某些操作可以依照不同顺序执行、修改或移除。此外,可以在上述逻辑中添加步骤,并且这些步骤仍旧符合所描述的实施例。此外,这里所述的操作可以顺序地出现,或者某些操作可以被并行地处理。而且,这些操作可以由单个处理单元执行,或者由分布式处理单元执行。
上文中对本发明各种实施例的描述是出于说明和描述目的而给出的。其并非意图进行穷举,或是将本发明限制在所公开的确切形式。根据上述教导,很多的修改和变化都是可行的。本发明的范围并非由此详细描述所限制,而是由权利要求所限定。上述说明、示例和数据提供了制造和使用本发明中的成分的完整描述。由于本发明的很多实施例都可以在不脱离本发明的精神和范围的情况下实现,因此本发明存在于所附的权利要求中。

Claims (30)

1.一种具有代码的计算机程序产品,所述代码用于将数据从首要存储位置拷贝到次级存储位置,其中所述代码能够使得操作被执行,所述操作包括:
接收将数据从首要存储位置拷贝到次级存储位置的请求;
从多个首要群集中确定针对所述首要存储位置的拥有者首要群集,其中所述多个首要群集被配置为访问所述首要存储位置;
确定在所述拥有者首要群集上是否存在至少一个端口,其提供到所述次级存储位置的可用路径;以及
响应于确定在所述拥有者首要群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者首要群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
2.根据权利要求1所述的计算机程序产品,其中所述操作进一步包括:
响应于确定在所述拥有者首要群集上不存在至少一个端口,其可用于传输到所述次级存储位置,选择不拥有所述首要存储位置的一个首要群集上的可用端口,以用于将数据拷贝到所述次级存储位置。
3.根据权利要求1所述的计算机程序产品,其中所述操作进一步包括:
从多个次级群集中确定针对所述次级存储位置的拥有者次级群集,其中所述多个次级群集被配置为访问所述次级存储位置;
确定在所述拥有者次级群集上是否存在至少一个端口,其可用于直达所述拥有者首要群集上的所选择的端口;以及
响应于确定在所述拥有者次级群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者次级群集上的一个端口,以用于拷贝数据。
4.根据权利要求3所述的计算机程序产品,其中所述操作进一步包括:
响应于确定在所述拥有者次级群集上不存在至少一个活动端口,选择包括所述拥有者首要群集上的所选择的端口以及所述多个次级群集之一上的一个活动端口的路径。
5.根据权利要求3所述的计算机程序产品,其中所述操作进一步包括:
响应于确定在所述拥有者首要群集上不存在至少一个活动端口,选择包括所述多个首要群集之一上的一个活动端口以及所述拥有者次级群集上的所选择的端口的路径。
6.根据权利要求3所述的计算机程序产品,其中所述操作进一步包括:
响应于确定在所述拥有者首要群集和所述拥有者次级群集上不存在至少一个活动端口,其可用于传输到所述次级存储位置,选择未拥有所述首要存储位置的一个首要群集上的可用端口以及未拥有所述次级存储位置的一个次级群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
7.根据权利要求3所述的计算机程序产品,其中在初始拷贝阶段期间,位于所述首要存储位置的数据被拷贝到所述次级存储位置,其中异步阶段在所述初始拷贝阶段之后,在所述异步阶段期间,对于所述首要存储位置的更新被拷贝到所述次级存储位置,其中在所述异步拷贝阶段期间,确定拥有者次级群集和选择所述拥有者次级群集上的一个端口的操作未被执行,并且其中所述操作进一步包括:
在所述异步拷贝阶段期间选择所述多个次级群集之一上的一个端口,以用于将数据拷贝到所述次级存储位置。
8.根据权利要求7所述的计算机程序产品,其中在初始拷贝阶段期间,所述拥有次级群集高速缓存要拷贝到所述次级存储位置的数据,并且所述数据的拷贝未被提供给另一个次级群集。
9.根据权利要求7所述的计算机程序产品,其中在异步阶段期间,确定拥有者次级群集和选择所述拥有者次级群集上的一个端口的操作未被执行,并且其中在异步阶段期间,所述拥有者次级群集高速缓存要拷贝到所述次级存储位置的数据,并且另一个次级群集存储要拷贝到所述次级存储位置的数据的拷贝。
10.一种与首要存储位置和次级存储位置进行通信的系统,包括:
多个首要群集,其中每个首要群集包括至少一个端口,其提供到所述次级存储位置的路径;
由所述首要和次级群集中的至少一个所执行的程序,用于执行操作,所述操作包括:
接收将数据从首要存储位置拷贝到次级存储位置的请求;
从多个首要群集中确定针对所述首要存储位置的拥有者首要群集,其中所述多个首要群集被配置为访问所述首要存储位置;
确定在所述拥有者首要群集上是否存在至少一个端口,其提供到所述次级存储位置的可用路径;以及
响应于确定在所述拥有者首要群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者首要群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
11.根据权利要求10所述的系统,其中所述操作进一步包括:
响应于确定在所述拥有者首要群集上不存在至少一个端口,其可用于传输到所述次级存储位置,选择不拥有所述首要存储位置的一个首要群集上的可用端口,以用于将数据拷贝到所述次级存储位置。
12.根据权利要求10所述的系统,其中所述系统进一步与多个次级群集进行通信,并且其中所述操作进一步包括:
从多个次级群集中确定针对所述次级存储位置的拥有者次级群集,其中所述多个次级群集被配置为访问所述次级存储位置;
确定在所述拥有者次级群集上是否存在至少一个端口,其可用于直达所述拥有者首要群集上的所选择的端口;以及
响应于确定在所述拥有者次级群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者次级群集上的一个端口,以用于拷贝数据。
13.根据权利要求12所述的系统,其中所述操作进一步包括:
响应于确定在所述拥有者次级群集上不存在至少一个活动端口,选择包括所述拥有者首要群集上的所选择的端口以及所述多个次级群集之一上的一个活动端口的路径。
14.根据权利要求12所述的系统,其中所述操作进一步包括:
响应于确定在所述拥有者首要群集上不存在至少一个活动端口,选择包括所述多个首要群集之一上的一个活动端口以及所述拥有者次级群集上的所选择的端口的路径。
15.根据权利要求12所述的系统,其中所述操作进一步包括:
响应于确定在所述拥有者首要群集和所述拥有者次级群集上不存在至少一个活动端口,其可用于传输到所述次级存储位置,选择未拥有所述首要存储位置的一个首要群集上的可用端口以及未拥有所述次级存储位置的一个次级群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
16.根据权利要求12所述的系统,其中在初始拷贝阶段期间,位于所述首要存储位置的数据被拷贝到所述次级存储位置,其中异步阶段在所述初始拷贝阶段之后,在所述异步阶段期间,对于所述首要存储位置的更新被拷贝到所述次级存储位置,其中在所述异步拷贝阶段期间,确定拥有者次级群集和选择所述拥有者次级群集上的一个端口的操作未被执行,并且其中所述操作进一步包括:
在所述异步拷贝阶段期间选择所述多个次级群集之一上的一个端口,以用于将数据拷贝到所述次级存储位置。
17.根据权利要求16所述的系统,其中在初始拷贝阶段期间,所述拥有次级群集高速缓存要拷贝到所述次级存储位置的数据,并且所述数据的拷贝未被提供给另一个次级群集。
18.根据权利要求16所述的系统,其中在异步阶段期间,确定拥有者次级群集和选择所述拥有者次级群集上的一个端口的操作未被执行,并且其中在异步阶段期间,所述拥有者次级群集高速缓存要拷贝到所述次级存储位置的数据,并且另一个次级群集存储要拷贝到所述次级存储位置的数据的拷贝。
19.根据权利要求10所述的系统,其中一个首要群集执行下述操作,所述操作为:确定拥有者首要群集;确定在所述拥有者首要群集上是否存在一个可用端口,其提供到所述次级存储位置的路径;以及选择所述拥有者首要群集上的一个端口;所述系统进一步包括:
包括所选择的端口的适配器,其中所述适配器执行下述操作,所述操作为:确定拥有者次级群集;确定在所述拥有者次级群集上是否存在一个可用端口,其提供到所述次级存储位置的路径;以及选择所述拥有者次级群集上的一个端口。
20.一种方法,包括:
接收将数据从首要存储位置拷贝到次级存储位置的请求;
从多个首要群集中确定针对所述首要存储位置的拥有者首要群集,其中所述多个首要群集被配置为访问所述首要存储位置;
确定在所述拥有者首要群集上是否存在至少一个端口,其提供到所述次级存储位置的可用路径;以及
响应于确定在所述拥有者首要群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者首要群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
21.根据权利要求20所述的方法,进一步包括:
响应于确定在所述拥有者首要群集上不存在至少一个端口,其可用于传输到所述次级存储位置,选择不拥有所述首要存储位置的一个首要群集上的可用端口,以用于将数据拷贝到所述次级存储位置。
22.根据权利要求20所述的方法,进一步包括:
从多个次级群集中确定针对所述次级存储位置的拥有者次级群集,其中所述多个次级群集被配置为访问所述次级存储位置;
确定在所述拥有者次级群集上是否存在至少一个端口,其可用于直达所述拥有者首要群集上的所选择的端口;以及
响应于确定在所述拥有者次级群集上存在至少一个端口,其可用于传输到所述次级存储位置,选择所述拥有者次级群集上的一个端口,以用于拷贝数据。
23.根据权利要求22所述的方法,包括:
响应于确定在所述拥有者次级群集上不存在至少一个活动端口,选择包括所述拥有者首要群集上的所选择的端口以及所述多个次级群集之一上的一个活动端口的路径。
24.根据权利要求22所述的方法,包括:
响应于确定在所述拥有者首要群集上不存在至少一个活动端口,选择包括所述多个首要群集之一上的一个活动端口以及所述拥有者次级群集上的所选择的端口的路径。
25.根据权利要求22所述的方法,包括:
响应于确定在所述拥有者首要群集和所述拥有者次级群集上不存在至少一个活动端口,其可用于传输到所述次级存储位置,选择未拥有所述首要存储位置的一个首要群集上的可用端口以及未拥有所述次级存储位置的一个次级群集上的一个端口,以用于将数据拷贝到所述次级存储位置。
26.根据权利要求22所述的方法,其中在初始拷贝阶段期间,位于所述首要存储位置的数据被拷贝到所述次级存储位置,其中异步阶段在所述初始拷贝阶段之后,在所述异步阶段期间,对于所述首要存储位置的更新被拷贝到所述次级存储位置,其中在所述异步拷贝阶段期间,确定拥有者次级群集和选择所述拥有者次级群集上的一个端口的操作未被执行,所述方法进一步包括:
在所述异步拷贝阶段期间选择所述多个次级群集之一上的一个端口,以用于将数据拷贝到所述次级存储位置。
27.根据权利要求26所述的方法,其中在初始拷贝阶段期间,所述拥有次级群集高速缓存要拷贝到所述次级存储位置的数据,并且所述数据的拷贝未被提供给另一个次级群集。
28.根据权利要求26所述的方法,其中在异步阶段期间,确定拥有者次级群集和选择所述拥有者次级群集上的一个端口的操作未被执行,并且其中在异步阶段期间,所述拥有者次级群集高速缓存要拷贝到所述次级存储位置的数据,并且另一个次级群集存储要拷贝到所述次级存储位置的数据的拷贝。
29.根据权利要求26所述的方法,其中一个首要群集执行下述操作,所述操作为:确定拥有者首要群集;确定在所述拥有者首要群集上是否存在一个可用端口,其提供到所述次级存储位置的路径;以及选择所述拥有者首要群集上的一个端口;以及其中,包括所选择的端口的适配器执行下述操作,所述操作为:确定拥有者次级群集;确定在所述拥有者次级群集上是否存在一个可用端口,其提供到所述次级存储位置的路径;以及选择所述拥有者次级群集上的一个端口。
30.一种包括程序代码工具的计算机程序,当所述程序在计算机上时,所述程序代码工具适于执行权利要求20至29中的任一项所述的方法。
CN200680042775.9A 2005-11-18 2006-11-14 选择包括首要和次级群集上的端口的路径的系统和方法 Expired - Fee Related CN101310250B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/283,098 US8738821B2 (en) 2005-11-18 2005-11-18 Selecting a path comprising ports on primary and secondary clusters to use to transmit data at a primary volume to a secondary volume
US11/283,098 2005-11-18
PCT/EP2006/068458 WO2007057396A2 (en) 2005-11-18 2006-11-14 Selecting a path comprising ports on primary and secondary clusters to use to transmit data at a primary volume to a secondary volume

Publications (2)

Publication Number Publication Date
CN101310250A true CN101310250A (zh) 2008-11-19
CN101310250B CN101310250B (zh) 2013-04-03

Family

ID=38048998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680042775.9A Expired - Fee Related CN101310250B (zh) 2005-11-18 2006-11-14 选择包括首要和次级群集上的端口的路径的系统和方法

Country Status (4)

Country Link
US (1) US8738821B2 (zh)
EP (1) EP1952228A2 (zh)
CN (1) CN101310250B (zh)
WO (1) WO2007057396A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799446B2 (en) * 2006-08-18 2014-08-05 Microsoft Corporation Service resiliency within on-premise products
US8266280B2 (en) * 2010-03-17 2012-09-11 International Business Machines Corporation System and method for a storage area network virtualization optimization
US9229717B2 (en) * 2012-12-11 2016-01-05 Nvidia Corporation Register allocation for clustered multi-level register files
US9912542B2 (en) * 2014-09-17 2018-03-06 Netapp, Inc. Methods and systems for managing port reachability in a clustered system
US9514010B2 (en) 2014-09-19 2016-12-06 Netapp, Inc Cluster-wide service agents
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US10452501B2 (en) * 2017-06-15 2019-10-22 International Business Machines Corporation Copying data from mirrored storage to auxiliary storage arrays co-located with primary storage arrays
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11061735B2 (en) * 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168572A (en) * 1989-03-10 1992-12-01 The Boeing Company System for dynamic selection of globally-determined optimal data path
US5459857A (en) * 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
US6421711B1 (en) * 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6601128B1 (en) * 2000-05-02 2003-07-29 International Business Machines Corporation Method, system, program, and data structure for selecting a preferred path to a storage device
JP2002133351A (ja) * 2000-10-25 2002-05-10 Nec Corp 最小コスト経路探索装置及びそれに用いる最小コスト経路探索方法
US7398302B2 (en) * 2001-03-30 2008-07-08 Hitachi, Ltd. Remote copy with path selection and prioritization
US7096269B2 (en) * 2001-03-30 2006-08-22 Hitachi, Ltd. Path selection methods for storage based remote copy
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US20030126197A1 (en) * 2001-12-28 2003-07-03 Black Brad R. Efficient content placement using network proximity
US7032131B2 (en) * 2002-03-26 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for ensuring merge completion in a storage area network
JP2003296290A (ja) 2002-04-02 2003-10-17 Hitachi Ltd 記憶装置システム及びデータ転送方法
US6886053B2 (en) * 2002-05-28 2005-04-26 Sun Microsystems, Inc. Method, system, and program for managing access to a device
JP4341897B2 (ja) * 2002-08-29 2009-10-14 株式会社日立製作所 記憶装置システム及びデータ複製方法
US7248589B2 (en) * 2003-06-05 2007-07-24 International Business Machines Corporation Apparatus for enabling multi-tuple TCP sockets within a computer network
US7240080B2 (en) * 2003-07-30 2007-07-03 International Business Machines Corporation Method and apparatus for determining using least recently used protocol if one or more computer files should be written to one or more information storage media and synchronously providing one or more computer files between first and storage devices
JP4492084B2 (ja) * 2003-10-07 2010-06-30 株式会社日立製作所 ストレージパス制御方法
US7350000B2 (en) * 2004-02-25 2008-03-25 International Business Machines Corporation User interface for representing logical path information and displaying available adapters in a storage subsystem

Also Published As

Publication number Publication date
US8738821B2 (en) 2014-05-27
US20070168581A1 (en) 2007-07-19
WO2007057396A3 (en) 2007-08-09
EP1952228A2 (en) 2008-08-06
CN101310250B (zh) 2013-04-03
WO2007057396A2 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
CN101310250B (zh) 选择包括首要和次级群集上的端口的路径的系统和方法
CN1648867B (zh) 数据处理系统
US7921273B2 (en) Method, system, and article of manufacture for remote copying of data
US7769960B2 (en) Computer program product and a system for a priority scheme for transmitting blocks of data
CN101655813B (zh) 存储系统
CN100568881C (zh) 用于选择存储群集以用来存取存储装置的方法和系统
US6073209A (en) Data storage controller providing multiple hosts with access to multiple storage subsystems
US7613890B1 (en) Consistent replication across multiple storage devices
CN101755257B (zh) 管理在不同的网络上将写入从首要存储器拷贝到次要存储器
CN100472423C (zh) 逻辑卷传送方法和存储网络系统
CN103793271B (zh) 用于在镜像卷之间进行切换的方法和系统
CN100470490C (zh) 用于存储卷的一致拷贝的方法、系统和制造品
US7293068B2 (en) Method and system for storing duplicate data
CN101097501B (zh) 用于重新定位逻辑卷的方法和系统
US6922763B2 (en) Method and apparatus for storage system
US6922762B2 (en) Clustering storage system
US20040139127A1 (en) Backup system and method of generating a checkpoint for a database
CN100549955C (zh) 用于配置相连设备的方法和系统
CN102024044A (zh) 分布式文件系统
CN102272733A (zh) 确定高速缓存中的已修改数据以便在恢复操作期间使用
US7334164B2 (en) Cache control method in a storage system with multiple disk controllers
CN100583064C (zh) 用于从别名地址池中移除别名地址的方法和设备
US7035978B2 (en) Method, system, and program for policies for improving throughput in remote mirroring systems
WO2005031577A1 (en) Logical partitioning in redundantstorage systems

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: 20130403

Termination date: 20201114