专利名称:数据存储的制作方法
技术领域:
本公开内容涉及数据存储器领域。
背景技术:
在数据备份技术中,可以生成存储在数据存储系统中的数据的冗余拷贝(redundant copy)。如果存储在系统中的数据发生丢失和/或被破坏,那么能够通过冗余拷贝来恢复丢失和/或被破坏的数据。如果数据备份技术不能够采用维持系统数据在冗余拷贝中保持一致的方式将系统数据复制到冗余拷贝,那么就可不能通过冗余拷贝来恢复有意义的数据。
所请求主题的实施例的特征和优点,在参考附图的基础上将随着接下来的详细描述而变得显而易见,在所述附图中相同的数字表示相同的部分,并且其中图1是举例说明系统实施例的框图。
图2是举例说明可依照一个实施例的在磁带数据存储介质上进行编码的信息的图。
图3是举例说明可依照一个实施例的可以被存储在大容量存储器中的数据卷(data volume)和数据段的图。
图4是依照一个实施例举例说明在图1的系统中可执行的操作的流程图。
尽管,将参照说明性的实施例继续下列详细说明,但是其中的各种替换、修改以及变化对本领域技术人员来说是显而易见的。因此,应广泛地认识本发明所请求保护的主题,并且所要求的主题仅由如在所附权利要求书中阐明的那样进行限定。
具体实施例方式
图1举例说明了系统实施例100。系统100可包括主处理器12,所述主处理器12与芯片组14相耦合。主处理器12例如可以包括从本主题申请的受让人处购买到的IntelPentiumIII或IV微处理器。当然,可选地,在不脱离本实施例的情况下,主处理器12例如可包括另一种类型的微处理器,另一种类型的微处理器例如是从不同于本主题申请的受让人的来源制造的和/或购买的微处理器。
芯片组14可包括主机桥/集线器系统(未示出),所述主机桥/集线器系统可与主处理器12、系统存储器21以及用户接口系统16彼此耦合,且可耦合到总线系统22。芯片组14还可包括输入/输出(I/O)桥/集线器系统(未示出),所述输入/输出(I/O)桥/集线器系统可将主机桥/总线系统耦合到总线22。芯片组14可包括集成电路芯片,诸如从本主题申请的受让人处购买的集成电路芯片组(例如,图形存储器和I/O控制集线器芯片组)中选出的那些集成电路芯片,不过在不脱离本实施例的情况下,其他的集成电路芯片也可使用或做为替代地使用。此外,芯片组14可包括如下中断控制器(未示出),当将卡20A、卡20B和/或磁带驱动器46分别插入到电路卡总线扩展槽30B、30C和30A中时,所述中断控制器可经由一条或多条中断信号线(未示出)与其他组件相耦合,所述其他组件诸如I/O控制器电路卡20A、I/O控制器卡20B和/或一个或多个磁带驱动器(在此统称为和/或单称为“磁带驱动器46”)。该中断控制器可处理它通过这些中断信号线从系统100中的其他组件接收的中断。
做为分别包含在卡20A和20B中而在此描述的操作电路(operativecircuitry)42A和42B,不必包含在卡20A和20B中,但是相反,在不脱离该实施例的情况下,它们也可以被包含于其他结构、系统和/或如下设备中,所述设备例如可被包括在主板32中,与总线22相耦合,并且可以与系统100中的其他组件交换数据和/或命令。用户接口系统16可包含例如键盘、指示设备以及显示系统,可允许人类用户向系统100输入命令,并且监控系统100的操作。
总线22可包括这样一种总线,所述总线符合1998年12月18日发布的外围部件互连局部总线规范(Peripheral Component Interconnect(PCI)LocalBus Specification)修订版2.2,该规范可从位于美国俄勒冈州(Oregon)波特兰(Portland)的外围部件互连专业组(PCI Special Interest Group)获得(在下文称为“PCI总线”)。可选地,总线22相反还可包括这样一种总线,它符合2000年7月24日发布的PCI-X规范修订版1.0a,该规范可从前述位于美国俄勒冈州波特兰的外围部件互连专业组获得(在下文称为“PCI-X总线”)。在不脱离本实施例的情况下,可选地,总线22可以包括其他类型和配置的总线系统。
I/O控制器卡20A可耦合到一组一个或多个磁盘、光盘、固态和/或半导体大容量存储设备(此后统称为或单称为“大容量存储器28A”)上,并可控制上述设备的操作。在这一实施例中,大容量存储器28A例如可包括如下大容量存储子系统,所述大容量存储子系统包括一个或多个廉价磁盘冗余阵列(RAID)大容量存储设备29A。
I/O控制器卡20B可耦合到一组一个或多个磁盘、光盘、固态和/或半导体大容量存储设备(此后统称为或单称为“大容量存储器28B”)上,并可控制上述设备的操作。在这一实施例中,大容量存储器28B例如可包括如下大容量存储子系统,所述大容量存储子系统包括一个或多个廉价磁盘冗余阵列(RAID)大容量存储设备29B。
处理器12、系统存储器21、芯片组14、PCI总线22以及电路卡槽30A、30B及30C可包含于单个电路板上,例如系统主板32这样的电路板上。大容量存储器28A和/或大容量存储器28B可包含于一个或多个相应的如下外壳(enclosure)中,所述外壳与封装有主板32和包含在主板32上的组件的外壳相独立。
根据大容量存储器28A和大容量存储器28B的具体配置和操作特性,I/O控制器卡20A和20B可经由一条或多条相应的网络通信链路或介质44A和44B来分别耦合到大容量存储器28A和大容量存储器28B上。卡20A和20B可使用多种不同的如下通信协议中的任意一种,分别经由链路44A和44B,来分别与大容量存储器28A和大容量存储器28B交换数据和/或命令,其中所述通信协议可以是诸如小型计算机系统接口(Small Computer System Interface,SCSI)、光纤通道(Fibre Channel,FC)、以太网、串行高级技术附件(Serial AdvancedTechnology Attachment)(S-ATA)或传输控制协议/网际协议(TCP/IP)这样的通信协议。当然,可选地,在不脱离本实施例的情况下,I/O控制器卡20A和20B可使用其他通信协议来分别与大容量存储器28A和大容量存储器28B交换数据和/或命令。
依照该实施例,可由控制器卡20A和20B使用来分别与大容量存储器28A和大容量存储器28B交换数据和/或命令的SCSI协议,可与如下接口/协议相符合或相兼容,所述接口/协议在美国国家标准化组织(American NationalStandards Institute,ANSI)的小型计算机系统接口-2(SCSI-2)ANSIX3.131-1994规范中有所描述。如果控制器卡20A和20B使用FC协议来分别与大容量存储器28A和28B交换数据和/或命令,那么所述FC协议可遵守在ANSI标准光纤通道(FC)物理和信号接口-3 X3.3031998规范中描述的接口/协议或与之兼容。可选地,如果控制器卡20A和20B使用以太网协议来分别与大容量存储器28A和28B交换数据和/或命令,那么所述以太网协议可遵守于2000年10月20日出版的2000版的电气与电子工程师协会(Institute of Electricaland Electronics Engineers,IEEE)标准802.3中描述的协议或与之兼容。此外,可选地,如果控制器卡20A和20B使用S-ATA协议来分别与大容量存储器28A和28B交换数据和/或命令,那么所述S-ATA协议可符合由串行ATA工作组于2001年8月29日出版的“Serial ATAHigh Speed Serialized ATAttachment”,1.0版本中描述的协议或与之兼容。另外,可选地,如果控制器卡20A和20B使用TCP/IP协议来分别与大容量存储器28A和28B交换数据和/或命令,那么所述TCP/IP协议可符合于1981年9月出版的InternetEngineering Task Force(IETF)Request For Comments(RFC)791和793中描述的协议或与之兼容。
电路卡槽30A、30B和30C可包含各自的PCI扩展槽,所述PCI扩展槽可包含各自的PCI总线连接器(connector)36A、36B和36C。连接器36A、36B和36C可与PCI总线连接器50、34A和34B电气地和机械地紧密配合,其中所述PCI总线连接器50、34A和34B可分别包含于磁带驱动器46、卡20A和卡20B中。电路卡20A和20B还可包含各自的操作电路(circuitry)42A和42B。电路42A可包含相应的处理器(例如IntelPentiumIII或IV微处理器)以及相应的相关联的计算机可读存储器(以下统称为和/或单称为“处理器40A”)。电路42B可包含相应的处理器(例如IntelPentiumIII或IV微处理器)以及相应的相关联的计算机可读存储器(以下统称为和/或单称为“处理器40B”)。包含于处理器40A和40B中的所述相应的相关联计算机可读存储器,可包括以下类型的存储器中的一种或多种,即半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪存、磁盘存储器和/或光盘存储器。其他的或是可选的,这种计算机可读存储器可包括其他和/或新近研发的计算机可读存储器类型。此外,其他的或可选的,在不脱离该实施例的情况下,处理器40A和40B均可包括其他类型的微处理器,例如从除了本主题申请的受让人之外的来源中制造和/或购买到的微处理器。
相应的机器可读固件程序指令集可存储在与处理器40A和40B相关联的相应计算机可读存储器中。这些相应的指令集可分别由处理器40A和40B来访问和执行。一旦被处理器40A和40B执行,这些相应的指令集就可导致处理器40A和40B执行在此描述为被处理器40A和40B执行的操作。
电路42A和42B还可分别包含高速缓冲存储器38A以及高速缓冲存储器38B。在这一实施例中,高速缓冲存储器38A和38B均可包括一个或多个相应的半导体存储设备。可择的或者另外的,高速缓冲存储器38A和38B均可包括相应的磁盘和/或光盘存储器。处理器40A和40B能够分别与高速缓冲存储器38A和38B交换数据和/或命令,这可分别导致高速缓冲存储器38A和38B将数据分别存储在高速缓冲存储器38A和38B中,和/或分别从高速缓冲存储器38A和38B中检索数据,以便尤其便于处理器40A和40B实现它们各自的操作。
磁带驱动器46可包括如下电缆(未示出),所述电缆将磁带驱动器46的操作电路(未示出)耦合到连接器50。连接器50可电气地或机械地耦合到连接器36A。当连接器50和36A这样互相耦合时,磁带驱动器46的操作电路可电气地耦合到总线22上。可选地,取代包括这种电路,磁带驱动器46可包括如下电路卡,所述电路卡可包括连接器50。
磁带驱动器46还可包括磁带读/写机构52,所述磁带读/写机构52可以被这样构造,从而使得可以把盒式磁带机54的配套部件56插入到机构52中。当磁带机54的配套部件56被正确地插入到机构52中时,磁带驱动器46可依照以下描述的方式使用机构52,从包含在磁带机54中的一个或多个磁带数据存储介质48(在此依照单个方式例如称为“磁带介质48”)中读取数据,和/或向所述一个或多个磁带数据存储介质48写入数据。磁带介质48例如可以包括光和/或磁的大容量存储磁带介质。当将盒式磁带机54插入到机构52中时,磁带机54和磁带驱动器46可构成大容量备份存储子系统72。
槽30B和30C被分别构造为允许将卡20A和20B插入到槽30B和30C中。当卡20A被正确地插入到槽30B中时,连接器34A和36B就电气地和机械地彼此耦合。当连接器34A和36B这样彼此耦合到一起时,卡20A中的电路42A可电气地耦合到总线22上。当卡20B被正确插进槽30C中时,连接器34B和36C就电气地和机械地彼此耦合。当连接器34B和36C这样彼此耦合到一起时,卡20B中的电路42B就可电气地耦合到总线22上。当磁带驱动器46、卡20A中的电路42A以及卡20B中的电路42B电气地耦合到总线22上时,主处理器12可经由芯片组14和总线22与磁带驱动器46、卡20A中的电路42A以及卡20B中的电路42B交换数据和/或命令,这样就可以允许主处理器12来监控和控制磁带驱动器46、卡20A中的电路42A以及卡20B中的电路42B的操作。例如,主处理器12可生成需由大容量存储器28A和28B分别执行的I/O请求,并将其经由芯片组14和总线22分别传送给卡20A和20B中的电路42A和42B。卡20A和20B中的电路42A和42B分别能够生成命令,并将所生成的命令经由链路44A和44B分别提供给大容量存储器28A和28B,所述命令是这样的命令,当大容量存储器28A和28B接收到所述命令时,可引起大容量存储器28A和28B分别执行这些I/O请求。当由大容量存储器28A和28B执行这些I/O请求时,可引起诸如从大容量存储器28A和/或大容量存储器28B中读取数据,和/或向其中写入数据。
如图3所示,RAID 29A可包含多个用户数据卷200和202。当然,在不脱离本实施例的情况下,RAID 29A可包含任意数目的用户数据卷。每个数据卷200和202可包括各自的逻辑数据卷,所述逻辑数据卷可横跨大容量存储器28A中相应的一组物理磁盘设备(未示出)。例如,数据卷200可包括多个逻辑用户数据段300A、300B、……300N,且数据卷202可包括多个逻辑数据段400A、400B、……400N。根据在RAID 29A中实现的特定RAID技术,数据卷200中的每个相应的逻辑数据段300A、300B、……300N以及数据卷202中的每个相应的逻辑数据段400A、400B、……400N都可包括多个相应的逻辑相关的物理数据段(未示出),其中所述逻辑相关的物理数据段被分布在多个物理大容量存储设备(未示出)中,并且可从所述多个物理大容量存储设备计算和/或获得相应的逻辑数据段。例如,如果在RAID 29A中实现RAID级别1(即镜像),那么数据卷200中的每个逻辑数据段300A、300B、……300N以及数据卷202中的每个逻辑数据段400A、400B、……400N都可包括相应的一对物理数据段(未示出),所述相应的一对物理数据段是互相的拷贝,并且被分布在两个相应的物理大容量存储设备(未示出)中。可选地,在不脱离本实施例的情况下,在RAID 29A中也可实现其他的RAID技术。RAID 29A中的每个逻辑数据段可具有预定的大小,例如16或32千字节(KB)。可选地,或者附加地,RAID 29A中的每个逻辑数据段可以具有如下的预定大小,所述预定大小对应于盘片(diskstripes)的预定数目。当然,在不脱离本实施例的情况下,RAID 29A中的逻辑数据段的数目和大小可以不同。
可在RAID 29A中实现的RAID技术的操作,可以由RAID电路(未示出)来实现,所述RAID电路可被包括于例如大容量存储器28A中。可选地,这种RAID电路也可包含在卡20A中。处理器40A可与这种RAID电路交换如下数据和/或命令,所述数据和/和命令可导致根据由RAID 29A实现的RAID技术将数据段写入RAID 29A中,和/或从中读取。可选地,处理器40A可被编程以用于仿真这种RAID电路的操作,并且可与大容量存储器28A交换如下数据和/或命令,所述数据和/或命令可导致在大容量存储器28A中实现RAID 29A。进一步可选地,主处理器12可被编程以用于仿真这种RAID电路的操作,并且可与大容量存储器28A和/或处理器40A交换如下数据和/或命令,所述数据和/或命令可导致在大容量存储器28A中实现RAID 29A。
依然如图3所示,RAID 29B可包含多个用户数据卷200’和202’。当然,在不脱离本实施例的情况下,RAID 29B可包含任意数目的用户数据卷。每个数据卷200’和202’可包括各自的逻辑数据卷,所述逻辑数据卷可横跨大容量存储器28B中的相应的一组物理磁盘设备(未示出)。例如,数据卷200’可包括多个逻辑用户数据段300A’、300B’、……300N’,且数据卷202’可包括多个逻辑数据段400A’、400B’、……400N’。根据在RAID 29B中所实现的特定RAID技术,数据卷200’中的每个相应的逻辑数据段300A’、300B’、……300N’以及数据卷202’中的每个相应的逻辑数据段400A’、400B’、……400N’可包括多个相应的逻辑相关的物理数据段(未示出),其中所述逻辑相关的物理数据段被分布在多个物理大容量存储设备(未示出)中,并且可从所述多个物理大容量存储设备进行计算和/或获得相应的逻辑数据段。例如,如果在RAID 29B中实现RAID级别1(即镜像),那么数据卷200’中的每个逻辑数据段300A’、300B’、……300N’以及数据卷202’中的每个逻辑数据段400A’、400B’、……400N’可包括相应的一对物理数据段(未示出),所述相应的一对物理数据段是互相的拷贝,并且被分布在两个相应的物理大容量存储设备(未示出)中。可选地,在不脱离本实施例的情况下,在RAID 29B中可实现其他的RAID技术。RAID 29B中的每个逻辑数据段可具有预定大小,例如16或32千字节(KB)。可选地,或者附加地,RAID 29B中的每个逻辑数据段可具有对应于盘片的预定数目的预定大小。当然,在不脱离本实施例的情况下,RAID 29B中的逻辑数据段的数目和大小可以不同。
可实现在RAID 29B中所使用的RAID技术的操作,可以由如下RAID电路(未示出)来实施,所述RAID电路可包含于诸如大容量存储器28B中。可选地,这种RAID电路也可包含在卡20B中。处理器40B可与这种RAID电路交换如下数据和/或命令,所述数据和/或命令可导致根据由RAID 29B所实现的RAID技术来将数据段写入RAID 29B中,和/或从中读取。可选地,处理器40B可被编程以用于仿真这种RAID电路的操作,并且可与大容量存储器28B交换如下数据和/或命令,所述数据和/或命令可导致在大容量存储器28B中实现RAID29B。进一步可选地,主处理器12可被编程以用于仿真这种RAID电路的操作,并且可与大容量存储器28B和/或处理器40B交换如下数据和/或命令,所述数据和/或命令可导致RAID 29B在大容量存储器28B中被实现。
由处理器40A和40B执行的固件程序指令,尤其可引起处理器40A和40B将适当的如下控制信号分别发送到卡20A和20B中的电路42A和42B上,所述控制信号依照一个实施例可引起在系统100中执行数据存储、备份和/或恢复操作。图4是举例说明依照这一实施例、可在系统100中实施的操作500的流程图。
依照一个实施例,人类用户(未示出)可经由用户接口系统16向主处理器12发送命令,以便对分别存储在大容量存储器28A和大容量存储器28B的RAID 29A和RAID 29B中的数据创建冗余备份拷贝。这可导致主处理器12生成命令并分别将其发送到卡20A和20B中的电路42A和42B,以便启动创建这种冗余备份拷贝。
如图4中操作502所示,I/O控制器卡20A中的电路42A可接收从主处理器12发送的命令,以启动对存储在大容量存储器28A的RAID 29A中的数据的冗余备份拷贝的创建。对来自于主处理器12的命令接收的响应,处理器40A可发信号通知电路42A。这可导致I/O控制器卡20A中的电路42A进入一种操作模式,如图4中操作504所示。在所述一种操作模式中,处理器40A可允许和/或启动由大容量存储器28A执行对所有挂起的如下I/O请求(例如,I/O写请求),所述挂起的I/O请求,如果有的话,是在卡20A中的电路42A进入所述一种操作模式之前被接收,所述I/O请求可引起RAID 29A中的一个或多个逻辑数据段的修改,如图4中操作506所示。更具体地说,在所述一种操作模式中,处理器40A可以检查如下I/O请求队列(未示出),以便确定是否有任何挂起的I/O请求正被排在请求队列中以便执行,其中所述I/O请求队列可由处理器40A保持在例如高速缓冲存储器38A或者与卡20A中的处理器40A相关联的存储器中,并且所述挂起的I/O请求是在卡20A中的电路42A进入第一操作模式之前被接收的,涉及修改在大容量存储器28A的RAID 29A中的一个或多个数据段中的数据。如在此使用的,“挂起的”I/O请求是已经向如下设备通知的I/O事务中的事务,所述设备被指定来执行、运行和/或启动事务,但是其执行、运行和/或启动还待完成。假若有任何这种挂起的I/O请求当前被排在I/O请求队列中,那么处理器40A可以发信号通知卡20A的电路42A。这可引起电路42A经由链路44向大容量存储器28A A发出一个或多个命令,所述命令可引起大容量存储器28A执行所有的这种挂起的I/O请求。
还是在所述一种操作模式中,处理器40A可以发信号通知电路42A;这可引起电路42A周期性地轮询如下的指示,所述指示表示另一个电路42B已就绪来开始向磁带介质48复制在大容量存储器28B的RAID 29B中所存储的数据的冗余备份拷贝,如图4中操作508所示。也就是说,在所述一种操作模式中,控制器卡20A中的电路42A可以周期性地经由总线22向控制器卡20B的电路42B发送如下请求,所述请求是请求控制器卡20B的电路42B给电路42A提供一指示,所述指示是控制器卡20B中的电路42B是否已就绪来开始这种复制。响应这种请求,电路42B可经由总线22向电路42A提供如下响应,所述响应可向电路42A表明电路42B是否已就绪来开始这种复制。
可选地,主处理器12可以周期性地向电路42B发送一请求,请求电路42B向主处理器12提供一指示,以表明电路42B是否已就绪来开始这种复制。响应这种请求,电路42B可向主处理器12提供一响应,所述响应可表明电路42B是否已就绪来开始这种复制。当主处理器12从电路42B接收表明电路42B已就绪来开始这种复制的指示时,主处理器12可将这种指示提供给控制器卡20A中的电路42A。
仍然在所述一种操作模式中,电路42A可存储和/或排队将来执行的任意I/O请求(例如,I/O写请求),所述任意I/O请求是由电路42A在电路42A进入所述一种操作模式后接收的,如果执行所述I/O请求则可引起存储在大容量存储器28A的RAID 29A中的一个或多个逻辑数据段的修改,如图4中操作510所示。例如,在电路42A进入所述一种操作模式之后,主处理器12可向电路42A发送一个或多个I/O写请求,如果执行所述I/O写请求,则会引起存储在大容量存储器28A的RAID 29A中的一个或多个逻辑数据段的修改。如果当在所述一种操作模式中时,电路42A接收由主处理器12发出的这种任意的I/O写请求,那么处理器40A可以发信号通知电路42A。这可引起卡20A中的电路42A在I/O请求队列中存储和/或排队这种所接收的I/O写请求。这还可以导致阻止电路42A命令大容量存储器28A执行来自于正由大容量存储器28A执行的这种任一所接收的I/O写请求,直到可由这种所接收的I/O写请求修改的一个或多个逻辑数据段已经复制到磁带介质48之后为止。这可阻止大容量存储器28A执行任意的这种所接收的I/O请求,直到已将可由这种所接收的I/O写请求修改的一个或多个逻辑数据段复制到磁带介质48上为止。
由此,在电路42A由于操作504而进入所述一种操作模式之后,并且此后,当处于所述一种操作模式中时,可执行操作506、508和510。此外,当处于所述一种操作模式中时,处理器40A可以周期性地确定电路42A和电路42B是否分别已就绪来复制RAID 29A和RAID 29B中的逻辑数据段到磁带介质48中,如图4中操作512所示。处理器40A可根据、至少部分根据电路42A是否已经接收表明电路42B已就绪来开始这种复制的指示,来确定电路42B是否已就绪来向磁带介质48复制RAID 29B中的逻辑数据段,其中所述指示例如是、至少部分是作为操作508的结果所生成的。
在操作512中,处理器40A还可检查存储在电路42A中的I/O请求队列,以便确定是否所有挂起的I/O请求都已被执行,其中所述挂起的I/O请求,如果有的话,是在电路42A进入所述一种操作模式之前被接收的,并且如果被执行,可引起RAID 29A中的一个或多个逻辑数据段的修改。若有挂起的I/O请求的话,那么在所有这种挂起的I/O请求已执行后,处理器40A可确定电路42A已就绪来开始向磁带介质48复制对存储在RAID 29A中的数据的冗余备份拷贝。
如果做为操作512的结果,处理器40A确定电路42A和42B中的任一个或两者都还没有就绪来开始向磁带介质48分别复制大容量存储器28A和28B的RAID 29A和RAID 29B中的逻辑数据段的话,那么处理器40A可以发信号通知电路42A。如果所有挂起的I/O写请求例如做为操作506的结果都已经被执行,那么由处理器40A对电路42A的这一信号通知可使得电路42A保持在所述一种操作模式中,处理继续以周期性地执行操作508、510和512进行,其中如果存在所述挂起的I/O写请求的话,那么所述挂起的I/O写请求是在做为操作504的结果电路42A进入所述一种操作模式之前被接收的,并且如果执行所述挂起的I/O写请求将引起RAID 29A中的一个或多个逻辑数据段的修改,如图4所示。相反,若有挂起的I/O写请求,并且所有的这种I/O写请求都还没有被执行,那么由处理器40A对电路42A这一信号通知操作可使得电路42A保持在所述一种操作模式,处理继续以执行操作506和周期性地执行操作508、510和512进行。
相反,如果做为操作512的结果,处理器40A确定电路42A和电路42B两者都已就绪来开始分别复制大容量存储器28A和28B的RAID 29A和RAID 29B中的逻辑数据段到磁带介质48中,那么处理器40A可以发信号通知电路42A。这可导致卡20A中的电路42A进入另一种操作模式,所述另一种操作模式不同于做为操作504的结果电路42A进入的操作模式,如操作516所示。在所述另一种操作模式中,电路42A可继续存储和/或排队任意I/O请求以便将来由大容量存储器28A执行,所述I/O请求是电路42A在电路42A进入所述一种操作模式之后并且在操作522之前可能已经接收的,如果执行所述I/O请求,将引起存储在大容量存储器28A的RAID 29A中的逻辑数据段的修改,如图4中操作518所示。更具体地说,做为操作518的结果,在电路42A处于所述另一种操作模式期间,任意这种所接收的I/O请求可继续被排队以便将来由大容量存储器28A执行。处理器40A可以发信号通知电路42A;这可阻止电路42A命令大容量存储器28A执行任意的这种所接收的I/O请求,直到做为操作522的结果,已将可通过执行这种I/O请求而进行修改的RAID 29A中的逻辑数据段复制到磁带介质48中之后为止。这可阻止大容量存储器28A执行任何这种所接收的I/O请求,直到做为操作522的结果,已将可通过执行这种I/O请求而进行修改的RAID 29A中的逻辑数据段复制到磁带介质48中之后为止。
仍然在电路42A的所述另一种操作模式中,处理器40A可以发信号通知电路42A。这可使得电路42A确定其是否被授权访问磁带介质48以便将存储在RAID 29A中的逻辑数据段复制到磁带介质48中,如操作520所示。例如,做为操作520的结果,电路42A可使用常规的仲裁过程来与另一个电路42B一起针对授权对磁带介质48进行这种访问而仲裁。
如果电路42A和42B间的仲裁导致了授权电路42A进行这种访问,那么做为操作520的结果,电路42A可确定电路42A已经被授权访问磁带介质48以便开始向磁带介质48复制RAID 29A中的逻辑数据段。相反,如果这一仲裁结果导致授权电路42B进行这种访问,那么电路42B可开始向磁带介质48复制在RAID 29B中的逻辑数据段。当电路42B正在向磁带介质48复制这些逻辑数据段的同时,电路42A可继续执行操作508,并且可周期性地确定电路42B是否已经完成向磁带介质48复制RAID 29B中的所述逻辑数据段。也就是说,在电路42B已经完成向磁带介质48复制RAID 29B中的逻辑数据段之后,电路42B可以发信号通知电路42A以便表明其已经完成复制。可选地,在电路42B已经完成向磁带介质48复制RAID 29B中的逻辑数据段之后,电路42B可以发信号通知主处理器12以表明其已经完成复制,并且主处理器12可以发信号通知电路42A。在任一种情况下,由电路42B或主处理器12对电路42A发出的这一信号通知可引起电路42A来确定,做为操作520的结果,电路42A已经被授权访问磁带介质48以便开始向磁带介质48复制RAID 29A中的逻辑数据段。
如图4中操作522所示,在卡20A中的电路42A已经确定,做为操作520的结果,它已经被授权对磁带介质48进行这种访问之后,处理器40A可从RAID29A中选择逻辑数据段,所述数据段是仍须备份(即复制)到磁带介质48的,并且可以发信号通知磁带驱动器46将这一逻辑数据段复制到磁带介质48中。处理器40A可根据、至少部分根据位图70A的检查来作出这一选择,所述位图70A可存储在卡20A的高速缓冲存储器38A中。即,根据从处理器40A提供到高速缓冲存储器38A的信号,高速缓冲存储器38A可存储和保留位图70A,所述位图70A可包含位值序列(未示出)。这些位值的每一个都可对应于和/或表示RAID 29A中的相应逻辑数据段。当做为操作516的结果,电路42A进入到另一种操作模式中时,处理器40A可以发信号通知高速缓冲存储器38A以清除位图70A中的位值。此后,在相应的逻辑数据段被传送到磁带驱动器46以用于复制到磁带介质48中之后,处理器40A可以发信号通知高速缓冲存储器38A以便设置位图70A中的位值,所述位值对应于相应的逻辑数据段。如在此使用的,当位值等于表明第一布尔逻辑条件(例如,真)的值时,要考虑位值将被设置,而相反,当位值等于表明第二布尔逻辑条件(例如,假)时,要考虑位值将被清除,其中所述第二布尔逻辑条件与第一布尔逻辑条件是相对的。由此,通过在操作522中检查位图70A,处理器40A可确定RAID 29A中的哪些逻辑数据段仍须复制到磁带介质48中。
根据从处理器40B提供给高速缓冲存储器38B的信号,高速缓冲存储器38B可存储和保留位图70B,所述位图70B可包含位值序列(未示出),这些位值可对应于和/或表示RAID 29B中的相应逻辑数据段。位图70B可依照与存储和/或保存位图70A的上述方式基本相似的方式来存储和/或保留在高速缓冲存储器38B中。
同样在操作522中,处理器40A可检查卡20A中的I/O请求队列以确定在I/O请求队列中是否存在有任何挂起的I/O请求,如果执行所述挂起的I/O请求,那么可引起RAID 29A中的任意逻辑数据段的修改。如果在I/O请求队列中有这种挂起的I/O请求,那么处理器40A可确定当执行这种请求时可被修改的段或所述逻辑数据段、以及仍须复制到磁带介质48的段或所有这种段,可被指定比RAID 29A中的其他逻辑数据段更高的相对优选权,以用于由处理器40A选择以便复制到磁带介质48中。处理器40A可在选择被指定了较低相对优先权的逻辑数据段复制到磁带介质之前,选择被指定了更高的相对优先权的逻辑数据段来用于复制到磁带介质48。由此,处理器40A还可根据、至少部分根据由处理器40A指定给RAID 29A中的逻辑数据段的这些相对优先权,来进行要将哪些逻辑数据段复制到磁带介质48的选择。
在操作522中,在RAID 29A中选择了待复制到磁带介质48的逻辑数据段(例如段300A)之后,处理器40A可允许已选出的段复制到磁带介质48中。更具体地说,处理器40A可以发信号通知卡20A中的电路42A。这可使得电路42A发信号通知大容量存储器28A。这可导致大容量存储器28A从RAID 29A中检索已选出的逻辑数据段300A,并且将已选出的逻辑数据段300A提供给电路42A。接着,电路42A可向磁带驱动器46发送已选出的逻辑数据段300A以及表明逻辑数据段300A在RAID 29A中的位置的信息。电路42A还可以发信号通知磁带驱动器46以便向磁带介质48复制数据段300A以及表明数据段300A在RAID 29A中的位置的信息。如在此使用的,数据或数据段的“位置”可包括或被指定为一个或多个标识符,例如一个或多个逻辑和/或物理地址、卷、标题和/或对应于数据或数据段的扇区,所述标识符可被用于标识标识所述数据或数据段以便能够读和/或修改数据或数据段。然后,处理器40A可以发信号通知高速缓冲存储器38A以设置位图70A中的位值,所述位值对应于发送到磁带驱动器46的逻辑数据段300A。
在所述另一种操作模式中,电路42A已经开始向磁带介质48复制RAID 29A中的逻辑数据段之后,如果电路42A接收到I/O请求,则处理器40A可检查该I/O请求以及位图70A,以确定如果执行所述I/O请求的话,该I/O请求是否可引起RAID 29A中的逻辑数据段的修改,其中所述逻辑数据段是仍须复制到磁带介质48的数据段。如果处理器40A确定如果执行所接收的I/O请求将不会引起RA ID 29A中的逻辑数据段的修改,或者可引起RAID 29A中已经复制到磁带介质48中的逻辑数据段的修改,那么处理器40A可允许所接收的I/O请求被执行。相反,如果处理器40A确定所接收的I/O请求如果执行的话将可引起RAID 29A中仍须复制到磁带介质48中的逻辑数据段的修改,那么处理器40A可以发信号通知电路42A。这可使得电路42A存储/排队在卡20A中的I/O请求队列中的所述I/O请求。这还可导致阻止电路42A命令大容量存储器28A执行所述I/O请求,直到所述段已经被复制到磁带介质48中之后为止,如图4中操作524所示。这可阻止大容量存储器28A执行I/O请求,直到所述段已经被复制到磁带介质48之后为止。
此外,做为操作524的一部分,处理器40A可检查如下I/O请求,如果所述I/O请求存在的话,则被排在卡20A的I/O请求队列中,并且处理器40A还可检查位图70A以确定这些I/O请求的哪些如果执行不会引起RAID 29A中的逻辑数据段的修改或者可引起RAID 29A中已经复制到磁带介质48中的逻辑数据段的修改。做为操作524的一部分,如果处理器40A确定在I/O请求队列中有任何的I/O请求在排队中,如果执行所述I/O请求将不会引起RAID 29A中的逻辑数据段的修改,或者可引起RAID 29A中已经复制到磁带介质48的逻辑数据段的修改,那么处理器40A可允许所有这种I/O请求被执行。
响应将数据段300A和表明数据段300A在RAID 29A中的位置的信息传输到磁带驱动器46,以及发信号通知磁带驱动器46将上述复制到磁带介质48,磁带驱动器46可以发信号通知机构52。这可导致机构52将数据段300A和所述信息复制到磁带介质48。更具体地说,机构52可依照如下种方式将所述信息和数据段300A复制到磁带介质48,所述方式为可编码所述信息的磁带介质48的部分,可直接与可编码数据段300A的磁带介质48的部分相邻。磁带驱动器46可在磁带介质48上编码来自于RAID 29A和RAID 29B的数据的方式将在下文中说明。
如图4中操作526所示,在处理器40A发信号通知高速缓冲存储器38A以设置对应于逻辑数据段300A的位图70A中的位值之后,处理器40A可检查位图70A以确定RAID 29A中的所有逻辑数据段是否都已复制到磁带介质48中。如果做为操作526的结果,处理器40A确定RAID 29A中的一个或多个逻辑数据段仍须复制到磁带介质48中,那么处理可循环返回到操作522,如图4所示。由此,可以重复操作522、524以及526,直到在RAID 29A的卷200和202中的所有逻辑数据段都已复制到磁带介质48中为止。
如果做为操作526的结果,处理器40A确定RAID 29A中的所有逻辑数据段都已复制到磁带介质48中,那么处理器40A可以发信号通知电路42A。如操作527所示,这样就可引起在卡20A中的电路42A退出所述另一种操作模式,所述另一种操作模式是做为操作516的结果而进入的。此后,卡20A中的电路42A可重新进入电路42A的如下操作模式,所述操作模式是做为操作504的结果电路42A进入所述一种操作模式之前所处的操作模式。
在这一实施例中,总体上说,卡20B、处理器40B、电路42B、高速缓冲存储器38B、大容量存储器28B和/或链路44B可执行各自的对应于操作500的操作,然而,这些相应的操作可分别由卡20B、处理器40B、电路42B、高速缓冲存储器38B、大容量存储器28B和/或链路44B来执行,而不由卡20A、处理器40A、电路42A、高速缓冲存储器38A、大容量存储器28A和/或链路44A依照此前结合操作500描述的方式来执行。此外,在这些相应的操作的相应的子集中,其中所述子集可对应于操作508,可执行轮询以便获得一种指示,所述指示表明卡20A中的电路42A是否已就绪来开始从RAID 29A将逻辑数据段复制到磁带介质48。此外,在这些相应操作的可对应于操作520的相应子集中,为访问磁带介质48,电路42B可以和电路42A一起进行仲裁,以便开始将逻辑数据段从RAID 29B复制磁带介质48中。
现在具体参考图2,该图将描述这样一种方式,采用这种方式磁带驱动器46可在磁带介质48上编码来自于RAID 29A和RAID 29B的数据。如图2所示,在RAID 29A和29B的逻辑数据段已经在磁带介质48上依照一个实施例进行编码之后,磁带介质48可包括多个部分130、132、134和136,所述多个部分对来自于RAID 29A和RAID 29B的逻辑数据段进行编码。例如,为了在磁带介质48上编码数据,根据机构52可以推进磁带介质48的方向,如果做为在操作520中电路42A和42B间的仲裁过程的结果,在授权电路42B访问磁带介质48之前,已授权电路42A访问磁带介质48的话,那么130、132、134和136部分可分别编码来自于卷200、202、200’和202’的逻辑数据段。在130部分中,已编码的部分110A、110B、……110N可编码来自于卷200的相应逻辑数据段的拷贝。依然在130部分中,已编码的部分112A、112B、……112N可编码相应的信息,所述信息可标识卷200中各个逻辑数据段的相应位置,其中所述各个逻辑数据段的数据可在部分110A、110B、……110N中被编码。在132部分中,已编码部分114A、114B、……114N可编码来自于卷202的相应逻辑数据段的拷贝。依然在部分132中,已编码的部分116A、116B、……116N可编码相应的信息,所述信息可标识来自于卷202的各个逻辑数据段的相应位置,其中所述各个逻辑数据段的数据可在部分114A、114B、……114N中被编码。在134部分中,已编码部分118A、118B、……118N可编码卷200’中的相应逻辑数据段的拷贝。依然在部分132中,已编码的部分120A、120B、……120N可编码相应的信息,所述信息可标识来自于卷200’的各个逻辑数据段的相应位置,其中所述各个逻辑数据段的数据可在部分118A、118B、……118N中被编码。在136部分中,已编码部分122A、122B、……122N可编码来自于卷202’的相应逻辑数据段的拷贝。依然在部分136中,已编码的部分124A、124B、……124N可编码相应的信息,所述信息可标识来自于卷202’的各个逻辑数据段的相应位置,其中所述各个逻辑数据段的数据可在部分122A、122B、……122N中被编码。由此,依照一个实施例,可对来自于卷200、202、200’和202’的相应逻辑数据段的拷贝进行编码的磁带介质48的部分110A、110B、……110N,114A、114B、……114N,118A、118B、……118N以及122A、122B、……122N,可被定位在磁带48的邻近部分112A、112B、……112N,116A、116B、……116N,120A、120B、……120N以及124A、124B、……124N,其中所述邻近部分112A、112B、……112N,116A、116B、……116N,120A、120B、……120N以及124A、124B、……124N可编码用于标识各个逻辑数据段的相应位置的相应信息,其中所述逻辑数据段的数据被分别复制到部分110A、110B、……110N,114A、114B、……114N,118A、118B、……118N以及122A、122B、……122N中。当然,部分110A、110B、……110N,114A、114B、……114N,118A、118B、……118N以及122A、122B、……122N相对于部分112A、112B、……112N,116A、116B、……116N,120A、120B、……120N以及124A、124B、……124N的具体次序,以及部分130、132、134和136的具体次序,在不脱离这一实施例的情况下可以变化。有利的是,由于在这一实施例中,来自于RAID 29A和29B的各个逻辑数据段的每一个的相应拷贝,在磁带介质48上被编码成邻近用于标识所述各个逻辑数据段的相应位置的各个信息,因此RAID 29A和29B中的逻辑数据段,按照独立于RAID 29A和29B中的逻辑数据段的相应位置的顺序次序,在不丢失这种信息的情况下,可以被复制到磁带介质48。
由此,总体上讲,在一个系统实施例中,提供了第一、第二和第三存储子系统。还提供了包括第一电路的第一电路卡,所述第一电路能够耦合到第一和第三存储子系统。此外,在该系统实施例中,提供了包括第二电路的第二电路卡,所述第二电路能够耦合到第二和第三存储存储子系统。当第一电路耦合到第一存储子系统和耦合到第三存储子系统时,第一电路能够进入一种操作模式和另一种操作模式。在第一电路的所述一种操作模式中,如果当第一电路处于所述一种操作模式时,它接收了输入/输出(I/O)请求,那么第一电路阻止所述I/O请求由第一存储子系统来执行,并且存储所述I/O请求以便将来由第一存储子系统来执行。在所述另一种操作模式中,第一电路也能够进入另一种操作模式,其中第一电路允许将存储在第一存储子系统中的数据复制到第三存储子系统。第一电路进入另一种操作模式是以第一电路所做的如下确定为基础的,至少部分地以其为基础,所述确定是关于第二电路是否已就绪来允许将存储在第二存储子系统中的数据复制到第三存储子系统中。第三存储子系统包括要将存储在第一存储子系统中的数据以及存储在第二存储子系统中的数据复制到其上的一个或多个介质。
有利的是,当至少第一电路仍然能够接收I/O请求并且为将来执行而存储所接收的I/O请求时,其中所述I/O请求是诸如来自主处理器的I/O请求,这一实施例的这些特征尤其允许在第三存储子系统中复制在至少第一存储子系统中存储的数据的一致性备份。
在此采用的术语和表述是用于描述而不是限制的术语,并且在使用这样的术语和表述时没有意图排除了所示出和所描述的特征的所有等价表述(或其部分),且应该能够意识到在权利要求书的范围内能够进行各种修改。例如,在不脱离该实施例的情况下,I/O控制器卡、磁带驱动器和/或大容量存储器的各自的数目可不同于此前做为构成系统100而严格描述的这些设备各自的数目。
此外,例如,在大容量存储器72中,一个或多个磁带驱动器46可包括多个磁带驱动器,且一个或多个磁带介质48可包括多个磁带介质。这些磁带驱动器中的一个可在这些磁带介质中的一个上对从大容量存储器28A中和/或RAID 29A中复制的数据进行编码,并且这些磁带驱动器中的另一个可在这些磁带介质的另一个上对从大容量存储器28B中和/或RAID 29B中复制的数据进行编码。
其他的修改也是可以的。由此,权利要求书是用来覆盖所有的这种等价表述。
权利要求
1.一种方法,包括进入第一电路的一种操作模式,其中如果当第一电路处于所述一种操作模式时,第一电路接收到输入/输出(I/O)请求,那么第一电路阻止所述I/O请求被执行并且存储所述I/O请求以便将来执行;以及进入第一电路的另一种操作模式,其中第一电路允许将存储在与第一电路相关联的第一存储器中的数据复制到第二存储器,第一电路进入所述另一种操作模式是以第一电路所做的如下确定为基础的,至少部分地以其为基础,所述确定是关于与第三存储器相关联的第二电路是否已就绪来允许将存储在第三存储器中的数据复制到第二存储器中,第二存储器包括要将存储在第一存储器中的数据以及存储在第三存储器中的数据复制到其上的一个或多个介质。
2.如权利要求1所述的方法,其特征在于在第一电路的所述一种操作模式中,如果在第一电路进入所述一种操作模式之前,待由第一电路执行的另一个I/O请求是挂起的,那么当第一电路处于所述一种操作模式中时,第一电路允许所述I/O请求被执行。
3.如权利要求1所述的方法,其特征在于第一电路和第二电路包括各自的I/O控制器;第一存储器和第三存储器包括各自的一个或多个大容量存储设备组;以及第二存储器包括磁带数据存储设备。
4.如权利要求3所述的方法,其特征在于所述各自的大容量存储设备组包括廉价磁盘冗余阵列(RAID)。
5.如权利要求1所述的方法,进一步包括在第一电路进入所述一种操作模式之前,由第一电路接收至少一个写请求;在第一电路的所述一种操作模式期间,允许所述至少一个写请求被执行;以及第一电路进入所述另一种操作模式以所述至少一个写请求是否已经被执行为基础,至少部分地以其为基础。
6.如权利要求1所述的方法,其特征在于第一电路进入所述一种操作模式是响应,至少部分响应由第一电路对来自于主处理器的命令的接收;以及由第一电路所做的、对第二电路是否已就绪允许将存储在第三存储器中的数据复制到第二存储器中的确定,是以第一电路是否已经从第三电路和第二电路中的至少一个电路中接收指示为基础的,至少部分地以其为基础。
7.如权利要求6所述的方法,其特征在于所述第三电路包括主处理器。
8.一种设备,包括能够进入一种操作模式的第一电路,其中如果当第一电路处于所述一种操作模式时,第一电路接收到输入/输出(I/O)请求,那么第一电路阻止所述I/O请求被执行并且存储所述I/O请求以便将来执行,第一电路还能够进入另一种操作模式,其中第一电路允许将存储在与第一电路相关联的第一存储器中的数据复制到第二存储器,第一电路进入所述另一种操作模式是以第一电路所做的如下确定为基础的,至少部分地以其为基础,所述确定是关于与第三存储器相关联的第二电路是否已就绪来允许将存储在第三存储器中的数据复制到第二存储器中,第二存储器包括要将存储在第一存储器中的数据以及存储在第三存储器中的数据复制到其上的一个或多个介质。
9.如权利要求8所述的设备,其特征在于在第一电路的所述一种操作模式中,如果在第一电路进入所述一种操作模式之前,待执行的另一个I/O请求是挂起的,那么当第一电路处于所述一种操作模式中时,第一电路允许所述I/O请求被执行。
10.如权利要求8所述的设备,其特征在于第一电路和第二电路包括各自的I/O控制器;第一存储器和第三存储器包括各自的一个或多个大容量存储设备组;以及第二存储器包括磁带数据存储设备。
11.如权利要求10所述的设备,其特征在于所述各自的大容量存储设备组包括廉价磁盘冗余阵列(RAID)。
12.如权利要求8所述的设备,其特征在于在第一电路进入所述一种操作模式之前,第一电路能够接收至少一个写请求;在第一电路的所述一种操作模式期间,第一电路还能够允许所述至少一个写请求被执行;以及第一电路进入所述另一种操作模式以所述至少一个写请求是否已经被执行为基础,至少部分地以其为基础。
13.如权利要求8所述的设备,其特征在于第一电路进入所述一种操作模式是响应,至少部分响应由第一电路对来自于主处理器的命令的接收;以及由第一电路所做的、对第二电路是否已就绪允许将存储在第三存储器中的数据复制到第二存储器中的确定,是以第一电路是否已经从第三电路和第二电路中的至少一个电路中接收指示为基础的,至少部分地以其为基础。
14.如权利要求13所述的方法,其特征在于所述第三电路包括主处理器。
15.一种物品,包括已经在上面存储了如下指令的存储介质,当由机器来执行所述指令时可引起以下操作进入第一电路的一种操作模式,其中如果当第一电路处于所述一种操作模式时,第一电路接收到输入/输出(I/O)请求,那么第一电路阻止所述I/O请求被执行并且存储所述I/O请求以便将来执行;以及进入第一电路的另一种操作模式,其中第一电路允许将存储在与第一电路相关联的第一存储器中的数据复制到第二存储器,第一电路进入所述另一种操作模式是以第一电路所做的如下确定为基础的,至少部分地以其为基础,所述确定是关于与第三存储器相关联的第二电路是否已就绪来允许将存储在第三存储器中的数据复制到第二存储器中,第二存储器包括要将存储在第一存储器中的数据以及存储在第三存储器中的数据复制到其上的一个或多个介质。
16.如权利要求15所述的物品,其特征在于在第一电路的所述一种操作模式中,如果在第一电路进入所述一种操作模式之前,待执行的另一个I/O请求是挂起的,那么当第一电路处于所述一种操作模式中时,第一电路允许所述I/O请求被执行。
17.如权利要求15所述的物品,其特征在于第一电路和第二电路包括各自的I/O控制器;第一存储器和第三存储器包括各自的一个或多个大容量存储设备组;以及第二存储器包括磁带数据存储设备。
18.如权利要求17所述的物品,其特征在于所述各自的大容量存储设备组包括廉价磁盘冗余阵列(RAID)。
19.如权利要求15所述的物品,进一步包括当由机器执行所述指令时,还可引起以下操作在第一电路进入所述一种操作模式之前,由第一电路接收至少一个写请求;在第一电路的所述一种操作模式期间,允许所述至少一个写请求被执行;以及第一电路进入所述另一种操作模式以所述至少一个写请求是否已经被执行为基础,至少部分地以其为基础。
20.如权利要求15所述的物品,其特征在于第一电路进入所述一种操作模式是响应,至少部分响应由第一电路对来自于主处理器的命令的接收;以及由第一电路所做的、对第二电路是否已就绪允许将存储在第三存储器中的数据复制到第二存储器中的确定,是以第一电路是否已经从第三电路和第二电路中的至少一个电路中接收指示为基础的,至少部分地以其为基础。
21.如权利要求20所述的物品,其特征在于所述第三电路包括主处理器。
22.一种系统,包括第一存储子系统、第二存储子系统和第三存储子系统;包括第一电路的第一电路卡,所述第一电路能够耦合到第一存储子系统并且能够耦合到第三存储子系统;以及包括第二电路的第二电路卡,所述第二电路能够耦合到第二存储子系统并且能够耦合到第三存储子系统;当第一电路耦合到第一存储子系统以及第三存储子系统时,第一电路能够进行如下操作进入一种操作模式,其中如果当第一电路处于所述一种操作模式时,第一电路接收到输入/输出(I/O)请求,那么第一电路阻止所述I/O请求被第一存储子系统执行并且存储所述I/O请求以便将来由第一存储子系统执行;以及进入另一种操作模式,其中第一电路允许将存储在第一存储子系统中的数据复制到第三存储子系统,第一电路进入另一种操作模式是以第一电路所做的如下确定为基础的,至少部分地以其为基础,所述确定是关于第二电路是否已就绪来允许将存储在第二存储子系统中的数据复制到第三存储子系统中,第三存储子系统包括要将存储在第一存储子系统中的数据以及存储在第二存储子系统中的数据复制到其上的一个或多个介质。
23.如权利要求22所述的系统,其特征在于第一存储子系统、第二存储子系统和第三存储子系统均包括一个或多个各自的大容量存储设备;以及第一电路卡和第二电路卡均包括各自的I/O控制器。
24.如权利要求22所述的系统,其特征在于第一存储子系统和第二存储子系统均包括各自的廉价磁盘冗余阵列(RAID);第三存储子系统包括大容量磁带存储器系统;以及第一电路以及第二电路均包括各自的处理器。
25.如权利要求22所述的系统,其特征在于第一电路和第二电路能够经由一条或多条相应的通信链路分别耦合到第一存储子系统和第二存储子系统;第一存储子系统、第二存储子系统和第三存储子系统能够存储多个数据段;以及第一电路和第二电路均包括各自的如下高速缓冲存储器,所述高速缓冲存储器存储一个或多个数据段。
26.如权利要求22所述的系统,进一步包括一电路板,它包括总线和耦合到所述总线上的主处理器;以及所述第一电路卡和第二电路卡,它们都能够耦合到所述总线上。
27.如权利要求22所述的系统,其特征在于第三存储子系统包括磁带存储子系统,以存储从第一存储子系统和第二存储子系统中复制到一个磁带数据存储介质的数据。
28.如权利要求27所述的系统,其特征在于复制到所述一个磁带数据存储介质上的数据包括至少一个相应的数据段,所述至少一个数据段来自于每个第一存储子系统和第二存储子系统;以及所述系统还在所述一个磁带存储介质上存储如下信息,所述信息用于标识复制到所述一个磁带数据存储介质上的每个相应数据段。
29.如权利要求22所述的系统,其特征在于所述I/O请求,如果被执行,则将导致第一存储子系统中的数据段的修改;以及在所述另一种操作模式中第一电路能够将所述数据段复制到第三存储子系统中;以及在已经将所述数据段复制到第三存储子系统之后,第一电路还能够允许所述I/O请求被执行。
全文摘要
在一个实施例中提供了一种方法。该实施例的方法可包括进入第一电路的一种操作模式。依照所述一种操作模式,如果当第一电路处于所述一种操作模式中时,第一电路接收到输入/输出(I/O)请求,那么第一电路阻止I/O请求被执行并且存储I/O请求以便将来执行。这一实施例的方法还可包括进入第一电路的另一种操作模式。在所述另一种操作模式中,第一电路可允许将存储在与第一电路相关联的第一存储器中的数据复制到第二存储器中。第一电路进入所述另一种操作模式是以第一电路所做的如下确定为基础的,至少部分地以其为基础,所述确定是关于与第三存储器相关联的第二电路是否已就绪来允许将存储在第三存储器中的数据复制到第二存储器中。当然,在不脱离这一实施例的情况下,各种改变、修改以及替换都是可能的。
文档编号G06F12/00GK1609820SQ20031011980
公开日2005年4月27日 申请日期2003年10月24日 优先权日2003年10月24日
发明者J·S·卡瓦罗 申请人:英特尔公司