首页 / 数据存储

数据存储无效专利 发明

技术内容

技术领域 本公开内容涉及数据存储器领域。 背景技术 在数据备份技术中,可以生成存储在数据存储系统中的数据的冗余拷贝 (redundant copy)。如果存储在系统中的数据发生丢失和/或被破坏,那么能 够通过冗余拷贝来恢复丢失和/或被破坏的数据。如果数据备份技术不能够采 用维持系统数据在冗余拷贝中保持一致的方式将系统数据复制到冗余拷贝,那 么就可不能通过冗余拷贝来恢复有意义的数据。 附图说明 所请求主题的实施例的特征和优点,在参考附图的基础上将随着接下来 的详细描述而变得显而易见,在所述附图中相同的数字表示相同的部分,并且 其中: 图1是举例说明系统实施例的框图。 图2是举例说明可依照一个实施例的在磁带数据存储介质上进行编码的 信息的图。 图3是举例说明可依照一个实施例的可以被存储在大容量存储器中的数 据卷(data volume)和数据段的图。 图4是依照一个实施例举例说明在图1的系统中可执行的操作的流程图。 尽管,将参照说明性的实施例继续下列详细说明,但是其中的各种替换、 修改以及变化对本领域技术人员来说是显而易见的。因此,应广泛地认识本发 明所请求保护的主题,并且所要求的主题仅由如在所附权利要求书中阐明的那 样进行限定。 具体实施方式 图1举例说明了系统实施例100。系统100可包括主处理器12,所述主 处理器12与芯片组14相耦合。主处理器12例如可以包括从本主题申请的受 让人处购买到的IntelPentiumIII或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中而在此描述的操作电路(operative circuitry)42A和42B,不必包含在卡20A和20B中,但是相反,在不脱离该 实施例的情况下,它们也可以被包含于其他结构、系统和/或如下设备中,所 述设备例如可被包括在主板32中,与总线22相耦合,并且可以与系统100中 的其他组件交换数据和/或命令。用户接口系统16可包含例如键盘、指示设备 以及显示系统,可允许人类用户向系统100输入命令,并且监控系统100的操 作。 总线22可包括这样一种总线,所述总线符合1998年12月18日发布的外 围部件互连局部总线规范(Peripheral Component Interconnect(PCI)Local Bus 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 Advanced Technology Attachment)(S-ATA)或传输控制协议/网际协议(TCP/IP)这 样的通信协议。当然,可选地,在不脱离本实施例的情况下,I/O控制器卡20A 和20B可使用其他通信协议来分别与大容量存储器28A和大容量存储器28B交 换数据和/或命令。 依照该实施例,可由控制器卡20A和20B使用来分别与大容量存储器28A 和大容量存储器28B交换数据和/或命令的SCSI协议,可与如下接口/协议相 符合或相兼容,所述接口/协议在美国国家标准化组织(American National Standards Institute,ANSI)的小型计算机系统接口-2(SCSI-2)ANSI X3.131-1994规范中有所描述。如果控制器卡20A和20B使用FC协议来分别与 大容量存储器28A和28B交换数据和/或命令,那么所述FC协议可遵守在ANSI 标准光纤通道(FC)物理和信号接口-3 X3.303:1998规范中描述的接口/协 议或与之兼容。可选地,如果控制器卡20A和20B使用以太网协议来分别与大 容量存储器28A和28B交换数据和/或命令,那么所述以太网协议可遵守于2000 年10月20日出版的2000版的电气与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)标准802.3中描述的协议或与之兼容。 此外,可选地,如果控制器卡20A和20B使用S-ATA协议来分别与大容量存储 器28A和28B交换数据和/或命令,那么所述S-ATA协议可符合由串行ATA工 作组于2001年8月29日出版的“Serial ATA:High Speed Serialized AT Attachment”,1.0版本中描述的协议或与之兼容。另外,可选地,如果控制器 卡20A和20B使用TCP/IP协议来分别与大容量存储器28A和28B交换数据和/ 或命令,那么所述TCP/IP协议可符合于1981年9月出版的Internet Engineering 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可包含相应的处理器(例如IntelPentiumIII或IV微处理器)以及 相应的相关联的计算机可读存储器(以下统称为和/或单称为“处理器40A”)。 电路42B可包含相应的处理器(例如IntelPentiumIII或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 中的每个逻辑数据段可以具有如下的预定大小,所述预定大小对应于盘片(disk stripes)的预定数目。当然,在不脱离本实施例的情况下,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中实现RAID 29B。进一步可选地,主处理器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可从RAID 29A中选择逻辑数据段,所述数据段是仍须备份(即复制)到磁带介质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中复制的数据进行 编码。 其他的修改也是可以的。由此,权利要求书是用来覆盖所有的这种等价 表述。

J·S·卡瓦罗发明人的其他相关专利技术