数据存储的制作方法

文档序号:6420494阅读:128来源:国知局
专利名称:数据存储的制作方法
技术领域
本发明涉及数据存储。
背景技术
在网络数据备份技术中,会对网络中节点所存储的数据做冗余拷贝。所述冗余拷贝可存储在网络中的冗余存储系统中。如果存储在所述节点上的数据被丢失和/或破坏,可以运行网络数据恢复操作以从冗余存储系统中的冗余拷贝来恢复被丢失和/或破坏的数据。一般地,网络中的节点和冗余存储系统通过网络通信链路耦合在一起,该链路利用网络电缆作为网络通信介质。
除非维持冗余拷贝的一致性和安全性,否则冗余拷贝也可能会被丢失和/或破坏。如果这发生了,可能无法从冗余拷贝恢复有意义的数据。另外,使用网络电缆作为网络中的网络通信介质,限制了节点和冗余存储的移动性。而且,可能会在网络中被用作节点的某些类型的设备由于能无线通信而得到利用。如果这些类型的设备耦合到网络电缆上以帮助备份和恢复操作,可能会降低对这些类型的设备的利用。

发明内容
根据本发明的第一方面,提供了一种方法,包括从第一电路系统向第二电路系统发送请求,以及所述第二电路系统接收所述请求这两个操作中的至少一个,所述请求用于启动至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作的运行,其中所述第二电路系统远离所述第一电路系统且被禁止启动涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作的运行,所述第二电路系统能够至少部分地响应于收到所述请求,至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
根据本发明的第二方面,提供了一种装置,包括向第二电路系统发送请求的第一电路系统,以及接收所述请求的所述第二电路系统这两个电路系统中的至少一个,所述请求用于启动运行至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作,其中所述第二电路系统远离所述第一电路系统且被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作,并且,至少部分地响应于收到所述请求,所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
根据本发明的第三方面,提供了一种制品,包括存储介质,其上存储了指令,所述指令如果被机器执行则导致以下操作从第一电路系统向第二电路系统发送请求,以及所述第二电路系统接收所述请求这两个操作中的至少一个,所述请求用于启动运行至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作,其中所述第二电路系统远离所述第一电路系统且被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作,并且,至少部分地响应于收到所述请求,所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
根据本发明的第四方面,提供了一种系统,包括网络通信链路;第一电路系统;远离所述第一电路系统的第二电路系统;以及通过所述链路,所述第一电路系统能够向所述第二电路系统发送请求,而且所述第二电路系统能够接收所述请求,以启动运行至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作,其中所述第二电路系统被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作,并且,至少部分地响应于收到所述请求,所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。


随着以下详细说明的进行以及对附图的参考,所要求的主题物的实施例的特征和优点将变得清楚起来,其中附图中类似的数字指示类似的部分,其中图1图示了一个系统实施例。
图2更详细地图示了图1中系统实施例的客户节点。
图3更详细地图示了图1中系统实施例的存储器系统。
图4是图示了可根据一个实施例来运行的操作的流程图。
虽然以下详细说明将参照图示性的实施例来进行,但对本领域技术人员来说,许多对其的替代、修改和变化将是明显的。相应地,所要求的主题物应被广义视之,并且只按所附权利要求所提出的来定义。
具体实施例方式
图1是系统实施例100的示意图。系统100可以包括,例如,多个客户计算机节点12A、12B、…12N和至少一个服务器计算机节点(在此统一或单个地称作“服务器节点10”)。多个无线网络通信链路可将客户节点12A、12B、…12N耦合到服务器节点10,而且虽未在图1中示出,还可将客户节点12A、12B、…12N可通信地耦合到每个电耦合到通信网络120上的节点,使得客户节点12A、12B、…12N可用这些链路相互以及和服务器节点10之间交换数据和/或命令。例如,一个或多个无线网络通信链路16、18和20可分别将客户节点12N、12B和12A可通信地耦合到服务器节点10,使得客户节点12A、12B和12N可以下面描述的方式和服务器节点10交换数据和/或命令。
客户节点12A、12B、…12N和服务器节点10中包括的服务器计算机节点各自的数目可以变化而不背离本实施例。另外,各个客户节点12A、12B、…12N的数目可以不同于包括在服务器节点10中的各个服务器节点的数目,而不背离本实施例。
服务器节点10以及客户节点12A、12B、…12N中的每一个可分别包括操作电路系统38以及34A、34B、…34N,这些电路系统可分别包括计算机可读的存储器,其中可存储软件程序、程序指令和数据结构(统一或单个地分别用数字54以及52A、52B、…52N表示),包括各自用于执行操作和/或功能和与执行相关的网络通信协议程序和数据结构,在此描述的这些操作和/或功能就是分别由服务器节点10中的操作电路系统38以及客户计算机节点12A、12B、…12N中的操作电路系统34A、34B、…34N来执行的。分别由这些操作电路系统38以及34A、34B、…34N来执行这些软件程序和/或操纵这些数据结构,可能会分别导致服务器节点10以及客户节点12A、12B、…12N分别执行在此描述的由服务器节点10以及客户计算机节点12A、12B、…12N来执行的操作和/或功能。
在本实施例中,系统100中的每个无线网络通信链路可利用一个或多个网络通信协议,例如,无线以太网协议、传输控制协议/因特网协议(TCP/IP)和/或iSCSI协议。例如,网络链路16、18和20可允许客户节点12N、12B和12A中的操作电路系统34N、34B和34A分别和服务器节点10中的操作电路系统38遵从或兼容于一个或多个这样的协议来交换包和/或帧。如下所述,这些包和/或帧可包括包含请求和/或数据的消息。但是,网络链路16、18和20可以利用一个或多个非无线网络通信协议,而不背离本实施例。
如果系统100中的网络链路16、18和20利用了无线以太网协议,它可遵从或兼容于1999年公布的电气电子工程师协会(IEEE)Std.802.11a-1999中所描述的协议,或1999年公布的IEEE Std.802.11b-1999中所描述的协议。如果系统100中的网络链路16、18和20利用了TCP/IP,它可遵从或兼容于1981年9月公布的互联网工程任务组(IETF)RFC(RequestFor Comments,请求评论)791和793中所描述的协议。如果系统100中的网络链路16、18和20利用了iSCSI协议,它可遵从或兼容于2002年11月3日公布“Satran,“iSCSI,”Internet-Draft Specification,draft-ietf-ips-iscsi-19,IP Storage Working Group of the IETF”(以下称作“iSCSI规范”)中所描述的协议,这由IETF的IETF秘书处转交给美国国家研究推进公司(Corporation for National Research Initiatives,1895 Preston WhiteDrive,Suite 100,Reston,VA 20191,United States of America)。当然,系统100中的网络通信链路16、18和20和/或其他通信链路可以另外再使用和/或替换使用其他的协议,而不背离本实施例。
服务器节点10可通过一个或多个网络通信链路46电耦合到海量存储器28。海量存储器28可包括操作电路系统36,该电路系统可包括一组或多组一个或多个磁盘、光盘、固体和/或半导体海量存储设备(未示出),其中可包括,例如,廉价磁盘冗余阵列(RAID)29。一个或多个网络通信链路46可利用一个或多个以上描述类型的网络通信协议;可增加或替换地,一个或多个网络通信链路46可利用一个或多个其他协议,例如,非无线以太网协议、串行高级技术配件(S-ATA)、小型计算机系统接口(SCSI)和/或光纤信道(FC)协议。例如,一个或多个网络链路46可允许服务器节点10中的操作电路系统38遵从或兼容于一个或多个这些网络协议来和海量存储器28中的操作电路系统36交换包和/或帧。这些包和/或帧可包括包含请求和/或数据的消息。通过和电路系统36交换这些包和/或帧,电路系统38可控制和/或监控海量存储器28中的电路系统36的操作。在本实施例中,节点10、12A、12B、…12N以及海量存储器28中的每一个可在地理上相互远离。
如果一个或多个链路46利用了非无线以太网协议,它可遵从或兼容于2000年10月20日公布的IEEE Std.802.3中所描述的协议。如果一个或多个链路46利用了S-ATA协议,它可遵从或兼容于由串行ATA工作组在2001年8月29日公布的“串行ATA高速串行AT附件”(“Serial ATAHigh Speed Serialized AT Attachment”)修订版1.0中所描述的协议。如果一个或多个链路46利用了SCSI协议,它可遵从或兼容于ANSI(American National Standards Institute,美国国家标准学会)SCSI-2 ANSIX3.131-1994规范中所描述的接口/协议。如果一个或多个链路46利用了FC协议,它可遵从或兼容于ANSI标准FC物理和信号接口-3(StandardFC Physical and Signaling Interface-3)X3.3031998规范中所描述的协议。当然,一个或多个链路46可以另外再使用其他的网络通信协议,而不背离本实施例。如本领域技术人员所公知的,特定的协议,例如,iSCSI、FC、SCSI和S-ATA协议,是“基于块的协议”,因为它们可按照所要传送的一个或多个块(即,固定大小的单元)的数据来定义数据传送。
在本实施例中,分别在客户节点12A、12B、…12N中的各个操作电路系统34A、34B、…34N的构造可大体上相同。但是,或者,分别在客户节点12A、12B、…12N中的各个操作电路系统34A、34B、…34N的构造也可相互不同,而不背离本实施例。
图2图示了根据一个实施例的操作电路系统34A。电路系统34A可包括耦合到芯片组214的主机处理器212。主机处理器212可包括,例如,可由本申请受让人商业提供的IntelPentiumIII或IV微处理器。当然,或者,主机处理器212可包括其他类型的微处理器,例如,由除本申请受让人之外的来源制造和/或商业提供的微处理器,而不背离本实施例。
芯片组214可包括主机网桥/集线系统,该系统可将主机处理器212、系统存储器221和用户接口系统2 16相互耦合并耦合到总线系统222。芯片组214还可包括将主机网桥/集线系统耦合到总线222的I/O(input/output,输入/输出)网桥/集线系统(未示出)。芯片组214可包括集成电路芯片,例如可由本申请受让人商业提供的集成电路芯片组(例如,图形存储器和I/O控制集线芯片组)中选出的芯片,但是还可以使用其他集成电路芯片或者替换地使用,而不背离本实施例。用户接口系统216可包括,例如,允许用户向电路系统34A输入命令和监视其操作的键盘、定点设备和显示系统。
总线222可包括这样的总线,其遵从“PCI(Peripheral ComponentInterconnect)Local Bus Specification,Revision 2.2,December 18,1998,PCISpecial Interest Group,Portland,Oregon,U.S A.”(以下称作“PCI总线”)。或者,总线222可包括这样的总线,其遵从“PCI-X Specification,Rev.1.0a,July 24,2000,PCI Special Interest Group,Portland,Oregon,U.S.A.”(以下称作“PCI-X总线”)。或者,总线222可包括其他类型和配置的总线系统,而不背离本实施例。
电路系统34A还可包括一个或多个电路卡插槽230。一个或多个电路卡插槽230可包括一个或多个PCI扩展插槽,这些扩展插槽可包括一个或多个各自的PCI总线连接器236。一个或多个连接器236可电匹配和机械匹配到包括在一个或多个电路卡220中的一个或多个各自的PCI总线连接器234。一个或多个电路卡220还可包括各自的操作电路系统,其可包括一个或多个各自的处理器(未示出,例如,一个或多个各自的IntelPentiumIII或IV微处理器)和计算机可读存储器(例如,网络接口控制器(NIC)262中包括的存储器250)。所述各个计算机可读存储器250和系统存储器221,都可包括一个或多个以下类型的计算机可读存储器半导体固化存储器、可编程存储器、非易失性存储器、只读存储器、可电编程存储器、随机存取存储器、闪存、磁盘存储器和/或光盘存储器。可增加或替换地,存储器250和221中的每个可包括其他和/或以后发展的类型的计算机可读存储器。还可增加或替换地,这些一个或多个各个处理器可包括包含在集成电路芯片组中的集成电路芯片(未示出),例如那些可由本申请受让人商业提供的芯片(例如,Intel80310芯片组)。另外可增加或替换地,这些一个或多个处理器可包括其他集成电路芯片(例如,Intel80960 RM/RN I/O处理器,Intel0321处理器,和/或由除本申请受让人之外的来源提供的其他类型的处理器),或其他类型的处理器/集成电路,而不背离本实施例。
一个或多个电路卡220的操作电路系统可包括I/O控制器260和NIC262。I/O控制器260可耦合到一组一个或多个磁盘、光盘、固体和/或半导体存储设备(以下统一或单个地称作“存储器228”)并控制其操作。在本实施例中,存储器228可包括例如可用来存储例如用户数据的易失性和/或非易失性存储器,该用户数据可由客户节点12A的未示出的用户通过例如经过接口系统216向电路系统34A发出合适的命令来本地访问。
NIC 262可包括发送和接收电路系统252,该电路系统252可产生、发出、接收和/或译码一个或多个包和/或帧,通过这些包和/或帧可使用链路20来和服务器节点10交换命令和/或数据。例如,如下面将更完整描述的,NIC 262中的电路系统252可接收和译码一个或多个帧(图1中统一或单个地用数字22表示)和/或一个或多个帧(图1中统一或单个地用数字49表示),这些帧可通过链路20从电路系统38被发到电路系统252。NIC 262中的电路系统252还可产生和通过链路20发出一个或多个帧(图1中统一或单个地用数字31表示)到电路系统38。
处理器212、系统存储器221、芯片组214、PCI总线222和一个或多个电路卡插槽230可被包含在单个电路板上,例如,系统主板232。取决于例如存储器228中可包括的具体存储器,存储器228可包括在和主板232及主板232上所包括的元件所被装入的同样的封装内。另外,例如如果存储器228包括半导体存储器,该半导体存储器可被包括在主板232中。
计算机程序过程以及机器可执行的程序指令52A的各个子集200A和200B可包括在例如系统存储器221和NIC存储器250中。可包括在子集200A和200B中的具体过程和程序指令可变化而不背离本实施例。在本实施例中,各个子集200A和200B中包括的程序指令,可分别被例如处理器212和包括在NIC 262中的未示出的一个或多个处理器访问和执行;在被这些处理器执行的时候,这些指令可使得电路系统34A、NIC 262和/或电路系统252运行在本文的描述中由电路系统34A、NIC 262和/或电路系统252所运行的各种操作。
一个或多个插槽230和一个或多个卡220可构造成允许一个或多个卡220被插入一个或多个各自的插槽230。如果一个或多个卡220被正确插入一个或多个各自的插槽230,则一个或多个连接器234可与一个或多个各自的连接器236变成电耦合且机械耦合的。如果一个或多个连接器234如此耦合到一个或多个各自的连接器236,则一个或多个卡220可变成电耦合到总线222上。
本文描述的包括在一个或多个电路卡220中的操作电路系统,可不被包括在一个或多个电路卡220中,而相反的,可包括在其他结构、系统和/或设备中而不背离本实施例,这些结构、系统和/或设备可包括在主板232中、耦合到总线222并和电路系统34A中的其他元件交换数据和/或命令。
图3示出了根据一个实施例的操作电路系统38。电路系统38可包括耦合到芯片组314的主机处理器312。主机处理器312可包括例如由本申请受让人商业提供的IntelPentiumIII或IV微处理器。当然,或者,主机处理器212可包括其他类型的微处理器,例如由除本申请受让人之外的来源制造和/或商业提供的微处理器,而不背离本实施例。
芯片组314可包括主机网桥/集线系统,该系统可将主机处理器312、系统存储器321和用户接口系统316相互耦合并耦合到总线系统322。芯片组314还可包括将主机网桥/集线系统耦合到总线322的输入/输出(I/O)网桥/集线系统(未示出)。芯片组314可包括集成电路芯片,例如可由本申请受让人商业提供的集成电路芯片组(例如,图形存储器和I/O控制器集线芯片组)中选出的芯片,但是还可以使用其他集成电路芯片或者替换地使用,而不背离本实施例。用户接口系统316可包括例如允许用户向电路系统38输入命令和监控其操作的键盘、定点设备和显示系统。
总线322可包括PCI总线。或者,总线322可包括PCI-X总线。或者,总线322可包括其他类型和配置的总线系统,而不背离本实施例。
电路系统38还可包括一个或多个电路卡插槽330。一个或多个电路卡插槽330可包括一个或多个PCI扩展插槽,这些扩展插槽可包括一个或多个各自的PCI总线连接器336。一个或多个连接器336可电匹配和机械匹配到包括在一个或多个电路卡320中的一个或多个各自的PCI总线连接器334。一个或多个电路卡320还可包括各自的操作电路系统,其可包括一个或多个各自的处理器(未示出,例如一个或多个各自的IntelPentiumIII或IV微处理器)和计算机可读存储器(例如,一个或多个网络接口控制器362中包括的存储器350)。该各个计算机可读存储器350和系统存储器321,每个都可包括一个或多个以下类型的计算机可读存储器半导体固化存储器、可编程存储器、非易失性存储器、只读存储器、可电编程存储器、随机存取存储器、闪存、磁盘存储器和/或光盘存储器。可增加或替换地,存储器350和321中的每个可包括其他和/或以后发展的类型的计算机可读存储器。还可增加或替换地,这些一个或多个处理器可分别包括包含在集成电路芯片组中的集成电路芯片(未示出),例如那些可由本申请受让人商业提供的芯片(例如,Intel80310芯片组)。另外可增加或替换地,这些一个或多个处理器可包括其他集成电路芯片(例如,Intel80960RM/RN I/O处理器,Intel80321处理器,和/或由除本申请受让人之外的来源提供的其他类型的处理器),或其他类型的处理器/集成电路,而不背离本实施例。
一个或多个电路卡320的操作电路系统可包括一个或多个I/O控制器360和一个或多个网络接口控制器362。一个或多个I/O控制器360可耦合到海量存储器28并控制其操作。虽然图3中未示出,操作电路系统38还可包括本地存储器,该存储器包括例如可用来存储例如用户数据的易失性和/或非易失性存储器,该用户数据可由服务器节点10的未示出的用户通过,例如经过接口系统316向电路系统38发出合适的命令来本地访问。这一本地存储器也可由一个或多个I/O控制器360所控制。
一个或多个网络接口控制器362可包括发送和接收电路系统352,该电路系统352可产生、发出、接收和/或译码一个或多个包和/或帧,通过这些包和/或帧可使用无线网络通信链路来和客户节点12A、12B、…12N交换命令和/或数据。尽管图3中只示出了一条链路20,但电路系统352可产生、发出、接收和/或译码一个或多个包和/或帧,通过这些包和/或帧可使用无线网络通信链路20、18和16来分别和客户节点12A、12B和12N交换命令和/或数据。如下面将更完整描述地,电路系统352可接收和译码一个或多个帧31,帧31可通过链路20从电路系统34A被发到电路系统352。另外,电路系统352还可产生和通过链路20发出一个或多个帧22和/或一个或多个帧48到电路系统34A。
处理器312、系统存储器321、芯片组314、PCI总线322和一个或多个电路卡插槽330可被包含在单个电路板上,例如系统主板332。各个计算机程序过程以及机器可执行的程序指令54的子集300A和300B可包括在例如系统存储器321和存储器350中。可包括在子集300A和300B中的具体过程和程序指令可变化而不背离本实施例。在本实施例中,各个子集300A和300B中的每个所包括的程序指令可被例如处理器312和包括在一个或多个网络接口控制器362中的未示出的一个或多个处理器所访问和执行;在被这些处理器执行的时候,这些指令可使得电路系统38、一个或多个网络接口控制器362和/或电路系统352分别运行在本文的描述中由电路系统38、一个或多个网络接口控制器362和/或电路系统352所运行的操作。
一个或多个插槽330和一个或多个卡320可构造成允许一个或多个卡320被插入一个或多个各自的插槽330。如果一个或多个卡320被正确插入一个或多个各自的插槽330,一个或多个连接器334可与一个或多个各自的连接器336就变成电耦合且机械耦合的。如果一个或多个连接器334如此耦合到一个或多个各自的连接器336,一个或多个卡320可变成电耦合到总线322上。
本文描述的包括在一个或多个电路卡320中的操作电路系统,可不被包括在一个或多个电路卡320上,而相反的,可包括在其他例如包括在主板332上、耦合到总线322并和电路系统38中的其他元件交换数据和/或命令的结构、系统和/或设备中,而不背离本实施例。
如前所述,分别由这些各个操作电路系统38以及34A、34B、…34N执行这些软件程序及指令和/或操纵这些数据结构54和52A、52B、…52N,会导致服务器节点10以及客户计算机节点12A、12B、…12N分别执行在本文的描述中由服务器节点10以及客户计算机节点12A、12B、…12N执行的各个操作和/或功能。将参照图4来描述这些和其他按照一个实施例在系统100中执行的操作400。
例如在客户节点12A、12B、…12N和服务器节点10复位之后,客户节点12A、12B、…12N中的操作电路系统34A、34B、…34N以及服务器节点10中的操作电路系统38可分别执行包括在例如软件程序、程序指令和数据结构52A、52B、…52N和54中的一个或多个各自的程序指令集。操作电路系统34A、34B、…34N执行这些一个或多个各自的程序指令集,会导致各个程序过程60A、60B、…60N的执行。这些程序过程60A、60B、…60N的执行会导致,例如各个I/O目标代理40A、40B、…40N被载入包括在各自操作电路系统34A、34B、…34N中的各个系统存储器和/或NIC存储器,以及被这些各自操作电路系统执行。各个I/O目标代理40A、40B、…40N能够至少部分地分别由操作电路系统34A、34B、…34N启动运行一种或多种预定类型的一个或多个I/O操作和/或事务。I/O目标代理40A、40B、…40N可至少部分地响应于收到一个或多个要求启动这些运行的请求,而启动这些运行,该请求可产生和/或发自于例如一个或多个I/O启动者代理和/或远离各个I/O目标代理40A、40B、…40N的操作电路系统。例如,I/O目标代理40A、40B、…40N可包括各自的iSCSI协议目标代理,这些代理可应例如驻留于服务器节点10中的操作电路系统38之中和/或由其执行的iSCSI协议启动者代理42的请求,而分别启动运行操作电路系统34A、34B、…34N一个或多个iSCSI协议I/O操作和/或事务,以帮助和/或执行一个或多个数据备份和/或恢复的操作和/或事务,这都遵从或兼容于iSCSI规范。
在本实施例中,节点12A、12B、…12N中的操作电路系统34A、34B、…34N可被禁止启动运行服务器节点10中的电路系统38的一种或多种预定类型的一个或多个I/O操作和/或事务。例如,在本实施例中,执行包括在各个软件程序、程序指令和数据结构52A、52B、…52N中各自的程序指令集,不会导致操作电路系统34A、34B、…34N载入和/或执行任何的启动代理,这些启动代理能够启动运行服务器节点10的电路系统38的一种或多种预定类型的任何I/O事务和/或操作。这会导致这些启动代理不被装载到操作电路系统34A、34B、…34N和/或不被其执行。相反地,如前所述,执行包括在各个软件程序、程序指令和数据结构52A、52B、…52N中各自的程序指令集,可导致操作电路系统34A、34B、…34N分别载入和/或执行各自的目标代理40A、40B、…40N。同样相反地,操作电路系统38执行包括在各个软件程序、程序指令和数据结构54中的程序指令,可导致操作电路系统38载入和/或执行启动者代理。结果,操作电路系统34A、34B、…34N能够应操作电路系统38的启动者代理42的请求,至少部分地,分别启动运行操作电路系统34A、34B、…34N涉及到操作电路系统34A、34B、…34N的一种或多种预定类型的一个或多个I/O事务和/或操作,但是,操作电路系统34A、34B、…34N可被禁止启动和/或请求启动运行涉及电路系统38的一种或多种预定类型的任何I/O事务和/或操作。相反地,这还可导致电路系统38能够产生并向电路系统34A、34B、…34N发送(例如,分别通过系统100中的一个或多个无线通信链路)一个或多个各自的请求来启动运行涉及到操作电路系统34A、34B、…34N的一种或多种预定类型的一个或多个I/O事务和/或操作。分别至少部分地响应于操作电路系统34A、34B、…34N所收到的一个或多个这种请求,操作电路系统34A、34B、…34N可分别运行至少部分地在所述一个或多个各自请求中所请求的一个或多个I/O事务和/或操作。
例如,在本实施例中,操作电路系统38执行包括在各个软件程序、程序指令和数据结构54中的程序指令,可导致操作电路系统38载入和/或执行备份和/或恢复代理(图1中统一或单个地称作“备份代理46”)以及一个或多个备份和/或恢复过程(图1中统一或单个地称作“备份过程48”)。备份代理46和/或备份过程48可包括在部分300A和/或部分300B中,并可由主机处理器312和/或一个或多个网络接口控制器362中的一个或多个未示出的处理器来执行。执行备份代理46和/或备份过程48的结果是,电路系统38的用户(未示出)可被允许通过用户接口系统316向电路系统38发送一条命令来运行例如一个或多个涉及客户节点12A的数据备份和/或恢复操作。在这样一条命令被发送到电路系统38之后,备份代理46和/或备份过程48可接收到所述命令。至少部分地响应于收到所述命令,备份代理46和/或备份过程48可发信号通知启动者代理42启动运行用户所命令的数据备份和/或恢复操作。
例如,现在具体参考图4,至少部分地响应于备份代理46和/或备份过程48对启动者代理42的信号通知,启动者代理42可发信号通知一个或多个网络接口控制器362。这可导致一个或多个网络接口控制器362产生并向NIC 262发送请求26,以启动运行涉及到电路系统34A的至少一种预定类型的至少一个I/O操作和/或事务,如图4中操作402所示。可选择所述至少一种预定类型的至少一个I/O操作和/或事务,以使得所述的至少一个I/O操作和/或事务至少部分地包括于、有助于和/或执行所命令的备份和/或恢复操作。请求26可被编码成例如包含在一个或多个域中的一个或多个值,所述域包含在一个或多个遵从或兼容于iSCSI规范的包(图1中统一或单个地称作“包22”)中。包22可被包含在一个或多个帧(图1中统一或单个地称作“帧22”)中,作为操作402的结果,所述帧可被一个或多个网络接口控制器362产生并由其通过链路20发送到NIC 262。
如图4中的操作404所图示的,NIC 262可通过链路20接收帧22中的请求26。NIC 262可语法分析帧22而获取请求26。目标代理40A可检查请求26并从中确定请求26所请求的所述至少一个I/O事务和/或操作。至少部分地响应于收到请求26,和/或至少部分地基于代理40A所确定的请求26正在请求的所述至少一个I/O事务和/或操作,目标代理40A可发信号通知操作电路系统260至少部分地运行正被请求26所请求的所述至少一个I/O事务和/或操作;这会导致操作电路系统34A至少部分地运行此至少一个I/O事务和/或操作,如图4中操作406所图示的。
例如,作为操作406的一部分,如果请求26所请求的所述至少一个I/O事务和/或操作包括于、有助于和/或被用来至少部分地运行数据备份操作,代理40A对操作电路系统260的信号通知可导致包括在操作电路系统260中的I/O控制器,从本地存储器228获取所要备份(例如,拷贝)到RAID 29中的冗余存储器的数据。例如,根据用户向备份代理46和/或备份过程48所发出的命令,请求26可规定和/或指示本地存储器228中将要拷贝到RAID 29中的这些冗余存储器的数据。作为操作406的一部分,操作电路系统260中的I/O控制器可将所获取的数据提供给NIC 262,NIC262可产生并向一个或多个网络控制器362发送一个或多个可包含一个或多个包(统一或单个地称作“包30”)的帧(统一或单个地称作“帧31”),所述包可包括这些将要拷贝到RAID 29中的所获取的数据32。包30可遵从或兼容于iSCSI规范。
作为操作406的一部分,一个或多个网络接口控制器362可接收帧31并语法分析帧31以从中获取数据32。备份代理46可发信号通知备份过程48。这可导致备份过程48发信号通知操作电路系统360。作为操作406的一部分,这可导致操作电路系统360中的一个或多个I/O控制器和海量存储器28中的操作电路系统36通过一个或多个链路46来交换数据和/或命令。至少部分地,作为此通过一个或多个链路46的数据和/或命令的交换的结果,作为操作406的一部分,数据32的一个或多个冗余拷贝可被存储在RAID 29中。
相反地,如果请求26所请求的所述至少一个I/O事务和/或操作包括于、有助于和/或被用来至少部分地执行数据恢复操作,作为操作406的一部分,目标代理40A对操作电路系统260的信号通知可导致包括在操作电路系统260中的I/O控制器发信号通知本地存储器228存储来自RAID 29的数据14的拷贝。换言之,如果请求26所请求的所述至少一个I/O事务和/或操作包括于、有助于和/或被用来至少部分地执行数据恢复操作,备份过程48和/或备份代理46可发信号通知操作电路系统360。作为操作402的一部分,这可导致可包括在操作电路系统360中的I/O控制器从RAID 29获取数据14。数据14可包括以前从例如存储器228拷贝到RAID29的数据,该拷贝操作是以前执行的涉及电路系统34A的数据备份操作的一部分。作为操作402的一部分,这还可导致一个或多个网络接口控制器362通过链路20将一个或多个帧(统一地称作“帧49”)中的一个或多个包(统一地称作“包50”)中的数据1 4传输到NIC 260。请求26可指示包50中的数据14是将要被拷贝到存储器228,作为请求26所请求的数据恢复操作的一部分。
NIC 262收到帧49之后,NIC 262可语法分析帧49并从中获取数据14。目标代理40A可发信号通知操作电路系统260。这可导致包括在操作电路系统260中的I/O控制器发信号通知存储器228。这可导致存储器228根据请求26存储数据14,作为操作406的一部分。
备份代理46和/或备份过程48可被编程来允许调度数据备份和/或恢复操作(例如,至少部分地基于所收到的用户通过接口316给出的调度命令)在系统100的非高峰使用时间(例如,在商业活动结束后的深夜)执行。当然,备份代理46和/或备份过程48可允许这些操作被安排在除系统100的非高峰使用时间之外的其他时间执行,而不背离本实施例的。
操作电路系统38还可包括一个或多个目标代理44。一个或多个目标代理44能够发信号通知操作电路系统38启动运行操作电路系统38的一个或多个I/O事务,其运行可由一个或多个请求所启动和/或请求,这些请求由,例如操作电路系统34A、34B、…34N中的一个或多个各自的启动者代理(未示出)产生,并通过系统100中的一个或多个各自的无线通信链路传输到操作电路系统38。更具体而言,这些一个或多个启动者代理能够发信号通知操作电路系统34A、34B、…34N产生并发送一个或多个请求,以启动和/或请求启动运行电路系统38的一个或多个非所述的一个或多个预定类型的I/O事务和/或操作,例如,一个或多个不是包括于、有助于和/或被用来至少部分地执行数据备份和/或恢复操作的I/O事务和/或操作。
总之,一个系统包括无线网络通信链路、第一电路系统和远离第一电路系统的第二电路系统。通过所述链路,第一电路系统能够向第二电路系统发送请求,并且/或者第二电路系统能够接收所述请求,以启动运行至少部分涉及第二电路系统的至少一种类型的至少一个I/O操作。第二电路系统可被禁止启动运行涉及第一电路系统的所述至少一种类型的任何I/O操作。至少部分地响应于收到所述请求,第二电路系统能够至少部分地运行至少部分涉及第二电路系统的所述至少一个I/O操作。
本系统实施例的这些特征的优点在于允许数据的冗余拷贝的一致性和安全性相较于现有技术有提高。同样,相较于现有技术,本系统实施例的这些特征的优点在于允许所述系统实施例的节点能够在执行数据备份和/或恢复操作时进行无线通信,减少对网络电缆的使用,以及减少对所述系统实施例中的节点的移动性的限制。
本文所采用的用语和表达是作为说明性用语,而非限制性的,并且在使用这些用语和表达时无意排除所示出和说明的所述特征的任何等同物(或其部分),且应确认在权利要求的范围之内可能有各种修改。相应地,权利要求应被理解为覆盖所有的这些修改。
权利要求
1.一种方法,包括从第一电路系统向第二电路系统发送请求,以及所述第二电路系统接收所述请求这两个操作中的至少一个,所述请求用于启动至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作的运行,其中所述第二电路系统远离所述第一电路系统且被禁止启动涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作的运行,所述第二电路系统能够至少部分地响应于收到所述请求,至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
2.如权利要求1所述的方法,其中所述请求的所述发送包括通过无线通信链路从所述第一电路系统向所述第二电路系统传输所述请求。
3.如权利要求2所述的方法,其中至少部分涉及所述第二电路系统的所述至少一个输入/输出操作的运行包括以下操作的至少之一通过所述无线通信链路,从所述第二电路系统向所述第一电路系统传输将要远离所述第二电路系统而被存储的第一数据;以及通过所述无线通信链路,由所述第二电路系统从所述第一电路系统接收从远离所述第二电路系统的第一存储器所获取的第二数据。
4.如权利要求3所述的方法,其中在从所述第二电路系统向所述第一电路系统传输所述第一数据之前,所述第一数据被存储在所述第二存储器中;以及所述方法还包括第三电路系统将所述第一数据拷贝到所述第一存储器中。
5.如权利要求3所述的方法,其中所述第二数据被所述第三电路系统从所述第一存储器获取;以及所述方法还包括在所述第二电路系统从所述第一电路系统接收所述第二数据之后,所述第二电路系统将所述第二数据拷贝到所述第二存储器中。
6.如权利要求3所述的方法,其中发送所述第一数据和接收所述第二数据中的至少一个包括使用基于块的通信协议。
7.如权利要求1所述的方法,还包括执行一个或多个过程,所述一个或多个过程的执行导致所述第二电路系统能够至少部分地运行,至少部分涉及所述第二电路系统的所述至少一个输入/输出操作,所述一个或多个过程的执行还导致所述第二电路系统被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作。
8.一种装置,包括向第二电路系统发送请求的第一电路系统,以及接收所述请求的所述第二电路系统这两个电路系统中的至少一个,所述请求用于启动运行至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作,其中所述第二电路系统远离所述第一电路系统且被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作,并且,至少部分地响应于收到所述请求,所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
9.如权利要求8所述的装置,另外包括能够从所述第一电路系统向所述第二电路系统传输所述请求的无线通信链路。
10.如权利要求9所述的装置,其中至少部分涉及所述第二电路系统的所述至少一个输入/输出操作包括以下操作中的至少之一通过所述无线通信链路,从所述第二电路系统向所述第一电路系统传输将要远离所述第二电路系统而被存储的第一数据;以及通过所述无线通信链路,由所述第二电路系统从所述第一电路系统接收从远离所述第二电路系统的第一存储器所获取的第二数据。
11.如权利要求10所述的装置,其中在从所述第二电路系统向所述第一电路系统传输所述第一数据之前,所述第二存储器能够存储所述第一数据;以及所述装置另外包括将所述第一数据拷贝到所述第一存储器中的第三电路系统。
12.如权利要求10所述的装置,其中所述装置还包括能够从所述第一存储器获取所述第二数据的第三电路系统;以及在所述第二电路系统从所述第一电路系统接收所述第二数据之后,所述第二电路系统能够将所述第二数据拷贝到所述第二存储器中。
13.如权利要求10所述的装置,其中所述装置包括所述第一电路系统和所述第二电路系统;以及所述第一电路系统和所述第二电路系统包括各自的无线传输电路系统,所述无线传输电路系统能够使用基于块的通信协议来通过所述无线通信链路进行发送所述第一数据和接收所述第二数据中的至少一个。
14.如权利要求8所述的装置,其中所述第二电路系统能够执行一个或多个过程,所述一个或多个过程的执行导致所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作,所述一个或多个过程的执行还导致所述第二电路系统被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作。
15.一种制品,包括存储介质,其上存储了指令,所述指令如果被机器执行则导致以下操作从第一电路系统向第二电路系统发送请求,以及所述第二电路系统接收所述请求这两个操作中的至少一个,所述请求用于启动运行至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作,其中所述第二电路系统远离所述第一电路系统且被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作,并且,至少部分地响应于收到所述请求,所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
16.如权利要求15所述的制品,其中所述请求的发送包括通过无线通信链路从所述第一电路系统向所述第二电路系统传输所述请求。
17.如权利要求16所述的制品,其中至少部分涉及所述第二电路系统的所述至少一个输入/输出操作的运行包括以下操作中至少之一通过所述无线通信链路,从所述第二电路系统向所述第一电路系统传输将要远离所述第二电路系统而被存储的第一数据;以及通过所述无线通信链路,由所述第二电路系统从所述第一电路系统接收从远离所述第二电路系统的第一存储器所获取的第二数据。
18.如权利要求17所述的制品,其中发送所述第一数据和接收所述第二数据中至少一个包括使用基于块的通信协议。
19.如权利要求15所述的制品,其中所述指令如果被所述机器执行还导致以下操作执行一个或多个过程,所述一个或多个过程的执行导致所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作,所述一个或多个过程的执行还导致所述第二电路系统被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作。
20.一种系统,包括网络通信链路;第一电路系统;远离所述第一电路系统的第二电路系统;以及通过所述链路,所述第一电路系统能够向所述第二电路系统发送请求,而且所述第二电路系统能够接收所述请求,以启动运行至少部分涉及所述第二电路系统的至少一种类型的至少一个输入/输出操作,其中所述第二电路系统被禁止启动运行涉及所述第一电路系统的所述至少一种类型的任何输入/输出操作,并且,至少部分地响应于收到所述请求,所述第二电路系统能够至少部分地运行至少部分涉及所述第二电路系统的所述至少一个输入/输出操作。
21.如权利要求20所述的系统,还包括第三电路系统,其能够至少部分地响应于运行数据备份操作和数据恢复操作中的一个的请求来访问第一存储器,所述数据备份操作和数据恢复操作中的一个包括所述至少一个输入/输出操作。
22.如权利要求21所述的系统,其中所述第一存储器包括廉价磁盘冗余阵列;所述系统还包括可被所述第二电路系统访问的第二存储器;所述数据备份操作包括将存储在所述第二存储器中的第一数据拷贝到所述廉价磁盘冗余阵列;以及所述数据恢复操作包括将存储在所述廉价磁盘冗余阵列中的第二数据拷贝到所述第二存储器。
23.如权利要求20所述的系统,其中客户节点包括所述第二电路系统;以及服务器节点包括所述第一电路系统。
24.如权利要求23所述的系统,其中所述第二电路系统包括耦合到存储器的输入/输出控制器,以及能够通过所述链路和所述第一电路系统通信的网络接口控制器。
25.如权利要求24所述的系统,其中至少一个电路卡包括所述输入/输出控制器和所述网络接口控制器中的至少一个;所述第二电路系统还包括至少一个电路卡插槽;以及所述至少一个电路卡能够被耦合到所述至少一个电路卡插槽。
全文摘要
在一个实施例中,提供了一种方法。该实施例的所述方法可包括第一电路系统向第二电路系统发送请求,和/或第二电路系统接收所述请求,以启动运行至少部分涉及第二电路系统的至少一种类型的至少一个输入/输出(I/O)操作。第二电路系统可远离第一电路系统且被禁止启动运行涉及第一电路系统的所述至少一种类型的任何I/O操作。第二电路系统能够至少部分地响应于收到所述请求,至少部分地运行,至少部分涉及第二电路系统的所述至少一个I/O操作。当然,可能有很多不背离该实施例的修改、变化和替代。
文档编号G06F12/06GK1506833SQ200310113639
公开日2004年6月23日 申请日期2003年11月14日 优先权日2002年12月11日
发明者艾哈迈德·H·赞姆尔, 艾哈迈德 H 赞姆尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1