在复制环境中的协调的存储管理操作的制作方法

文档序号:6504965阅读:110来源:国知局
专利名称:在复制环境中的协调的存储管理操作的制作方法
本专利申请的部分包含受著作权保护的内容。著作权人不反对任何人传真复制专利文件或专利公开,当专利文件发表在专利商标局文件或记录中时,但在其它方面保留全部著作权。
背景技术
信息推动企业。对于日益依赖于用于企业的日常运作的数据和信息的企业,由于数据丢失或数据损毁造成的意外停工会损害它们的声誉和收益。企业日益意识到由数据损毁和丢失带来的成本,并采取措施来对这样的事件作计划并从中恢复。通常这些措施包括制作主数据或生产数据的备份副本,这些数据是用于企业运作的“活”数据。主数据的备份副本在不同的物理存储设备上制作,并且通常在远程位置,以确保主数据的版本始终和连续地可用。
当出现硬件和/或软件故障时,以及在随后的恢复期间,两个关心区域防止数据丢失并维持主数据存储器和备份数据存储器之间的一致性。一致性确保即使主数据的备份副本不同于主数据(例如对备份副本的更新可能落后于对主数据的更新),备份副本也表示在前一个时间点实际存在的主数据的状态。如果应用程序对主数据完成一系列写操作A、B和C,则可以通过防止写操作对数据的备份副本以彼此相反的顺序发生而维持一致性。备份副本不应反映主数据中实际从未发生的状态,例如,如果写操作C在写操作B之前完成可能发生的状态。一组操作中某些写操作可以并行发生,并且某些或者所有写操作可以以原子方式实行,以达到辅助节点上数据的一致性状态。
一种达到一致性并避免数据丢失的方法是确保对主数据进行的每次更新也对备份副本进行,最好是实时的。通常这样的“复制”更新由管理主数据的同一个应用程序在本地对主数据的一个或者多个“镜像”副本进行。数据的镜像副本通常维持在附属于主节点或者可由主节点直接访问的设备上,因此容易遭受主节点故障或通过主节点访问的数据的损毁的影响。
因此,在本地制作镜像副本不能防止数据丢失,并且主数据通常被复制到辅助站点。然而,在远程站点维持数据的副本带来了另一个问题。当主数据被损毁并且损毁主数据的更新结果通过复制传播到数据的备份副本时,需要对已经制作的每一个数据的副本“取消”被损毁的数据并将主数据恢复到以前的状态。以前,这个问题已经通过从在主数据被损毁之前制作的备份副本中恢复主数据来解决。备份副本通常在具有与存储主数据的存储设备相同的存取速度的存储设备上制作。一旦主数据被恢复,整个一组主数据被复制到每个备份副本,以确保主数据和备份副本之间的一致性。只有这时使用主数据的正常操作,诸如更新和复制,才可以重新开始。
前面所述的将整个一组主数据复制到每个备份副本的技术确保了数据在主站点和辅助站点之间是一致的。然而,当只有主数据的小的子集改变时,将整个一组主数据复制到每个备份副本使用了不必要的网络带宽。另外,跨过网络复制整个一组主数据需要大量的时间以建立数据的备份副本,特别是当涉及大量的数据时,诸如几千兆字节的数据时。所有这些因素延迟了正常操作的重新开始,并可能因为停工花费公司大量的资金。
所需要的是能够维持主数据的一致的、最新的副本,其能够在发现主数据的损毁或主节点的故障后快速地重新开始操作。

发明内容
本发明提供以使用最少的网络带宽的有效的、低成本的方式在辅助节点上维持主数据的最新、一致的副本的能力。当作为不是在复制期间获取的程序驱动写操作的操作的结果修改数据时,维持主数据的最新、一致的副本而无需复制被修改的数据。在数据相同的时间点对主数据存储器和辅助数据存储器执行所选择的存储管理操作,以确保所存储的数据保持一致。对于那些对数据进行大规模变化的操作,诸如重新组织存储在盘上的数据或者从在较早的时间点制作的数据副本中恢复数据,避免将被修改的数据复制到辅助数据存储器节省了时间和资金。
这些所选择的存储管理操作包括产生存储在主数据存储器中的被修改的数据的操作,其中被修改的数据不被复制到辅助节点。例如,从快照卷中恢复数据是影响存储在主数据存储器中的数据的操作,但是其中由恢复产生的被修改的数据不被复制。
选择其它存储管理操作以对主数据存储器和辅助数据存储器执行,其中这些操作是不直接改变主数据存储器中的数据但可能影响存储在主数据存储器中的数据的操作。例如,诸如创建快照卷的配置变化不影响存储在主数据存储器中的数据,而是制作了该数据的副本。然而,如果快照卷以后用于恢复主数据存储器中的数据,并且在那时快照卷的副本不在辅助数据存储器中,则主数据存储器和辅助数据存储器中的数据变得不一致。因此,创建快照的操作被包括在所选择的对辅助数据存储器执行的操作中。本发明确保包含用于恢复主数据存储器的数据的副本的辅助快照卷可用于恢复辅助数据存储器中的数据的副本。通过在主数据存储器和辅助数据存储器中提供相同的数据,可以避免复制每个在恢复期间变化的数据项目。


通过参照附图可以更好地理解本发明,并且其许多目的、特征和优点对于本领域的技术人员很明显。
图1示出本发明可运行的系统环境的例子;图2是用于在辅助节点上维持主数据的一致和最新的副本的方法的一个例子的流程图;图3A-3F示出在图1的系统中发生的一系列操作;图3A示出对数据的一系列更新,其后创建主数据的快照;图3B示出在创建图3A的快照后发生的对数据的另一系列更新;图3C示出由图3A和3B的更新产生的数据复制和插入复制流的命令;
图3D示出图3C的命令到达辅助节点;图3E示出在辅助节点上创建快照以响应在辅助节点上执行命令;图3F示出在图3A和3B的所有更新被写入辅助节点上的存储器后的系统;图4是可用于运行本发明的计算机系统的实例性配置;在不同的附图中使用相同的附图标记表示相似或相同的项目。
具体实施例方式
为了全面地理解本发明,请参照下面详细的说明,包括所附的权利要求,以及上述的附图。尽管本发明关于几个实施例进行了描述,但是本发明并不局限于这里所述的特定形式。相反,它意味着覆盖可合理地包括在由所附的权利要求所限定的本发明的范围内的替换、修改以及等同。
在下面的描述中,出于说明的目的,描述了许多特定细节以提供对本发明的全面理解。然而,对本领域的技术人员来说,很明显,本发明无需这些特定细节也能实现。
在说明书中,参照“一个实施例”或“实施例”是说在本发明的至少一个实施例中包括关于实施例所描述的特定特征、结构或特性。在说明书的不同地方出现的短语“在一个实施例中”不是必须都指同一个实施例,也不是指除了其它实施例之外相互分离或可选的实施例。另外,描述了各种可通过某些实施例显示而不通过其它实施例显示的特征。同样,描述了各种可以是对某些实施例的要求而不是对其它实施例的要求的要求。
术语在这里,术语“一致的”和“一致性”用于描述数据的备份副本,其或者是该数据的准确副本或者是准确地表示该数据在前一个时间点存在时该数据的状态。为了准确地表示数据在前一个时间点存在时数据的状态,当数据的写操作和复制正在进行时,术语“一致性”用于表明备份副本包括由已经在该前一个时间点完成的所有写操作产生的数据。另外,为了一致,备份副本不能包括由在该前一个时间点还没有开始的写操作产生的数据。下面讨论确定由在该前一个时间点进行的写操作产生的数据的一致性。
当备份副本包括、部分包括、或者不包括所有由正在进行的写操作写入的数据时,由正在进行的写操作写入的数据和在前一个时间点并行更新不同数据的数据可以被认为是一致的。例如,假定当主节点故障时,块1到4包含值“AAAA”,并行的写操作正在进行以将块1和2的值变为“BB”。块1-4中的数据可以被认为是与具有值“AAAA”(表明在该前一个时间点之前没有完成任何写操作)、“BAAA”(表明在前一个时间点之前已经完成对块1的写操作,但没有完成对块2的写操作)、“ABAA”(表明在前一个时间点之前已经完成对块2的写操作,但没有完成对块1的写操作)或“BBAA”(表明在前一个时间点之前已经完成两个写操作)的备份副本一致。
当在一个时间只出现这四种情形中的一种时,根据执行写操作的定时,每种情形表示主数据的一个有效的可能状态,并因此可以被认为是一致的。为了确保在复制期间数据的严格一致性,使得辅助数据是主数据的前一个状态的准确副本,某些实施例可中止写操作一段短时间以允许正在进行的写操作在复制这些写操作的结果之前完成。
术语“写操作”和“更新操作”被交替使用以描述对数据进行变化。当对数据使用术语“变化”和“修改”时,“变化”和“修改”包括添加新的数据以及更新现有的数据。当对于数据存储器的配置使用术语“变化”和“修改”时,“变化”和“修改”包括改变现有的配置和/或添加新配置。
数据存储器可以采用由一个或者多个物理设备构成的组,诸如一个或者多个动态或静态随机存取存储设备、一个或者多个磁或光数据存储盘或者一个或者多个其它类型的存储设备。对于主数据的备份副本,优选地,备份存储设备是诸如盘的直接存取存储设备,而不是诸如磁带的顺序存取存储设备。因为盘通常被分组以形成用于存储主数据的备份副本的逻辑存储卷,所以在此,将“存储器”、“数据存储器”和“数据存储单元”与“卷”和“存储卷”交替使用;然而,本领域的技术人员可以认识到,这里所述的系统和过程也可以应用于其它类型的存储器,并且术语“卷”的使用并不意味着限制。在此,存储主数据的存储卷被称为主卷,存储主数据的备份副本存储卷被称为备份卷、辅助卷或远程卷。在这里,存储数据快照的存储卷被称为快照卷。
术语“主机”和“节点”被交替使用以描述计算机系统,其在下面图4的讨论中描述。在这里,网络中管理主数据/卷的节点被称为主节点,网络中维持主数据的备份副本而不是主数据本身的节点被称为辅助节点、备份节点或远程节点。
术语“数据部分”可包括所有的数据,或者仅仅一些而不是所有的数据。同样,术语操作的“组”或“子集”可包括所有的操作或者仅仅一些而不是所有的操作。
导言本发明提供以使用最少的网络带宽的有效、低成本的方式在辅助节点上维持主数据的最新、一致的副本的能力。当作为不是在复制期间获取的程序驱动写操作的操作的结果修改数据时,可以维持主数据的最新、一致的副本,而无需复制被修改的数据。在数据相同的时间点对主数据存储器和辅助数据存储器执行所选择的存储管理操作,以确保所存储的数据保持一致。
对主数据存储器执行的每个操作没有都对辅助数据存储器执行以达到主数据和辅助数据的一致性;相反,只有被选择的存储管理操作对主数据存储器和辅助数据存储器都执行。对主数据存储器和辅助数据存储器都执行的这类操作包括产生存储在主数据存储器中的被修改的数据的操作,其中被修改的数据不被复制到辅助节点。例如,从快照卷中恢复数据是影响存储在主数据存储器中的数据的操作,但是其中由恢复产生的被修改的数据不被复制。
选择其它类型的存储管理操作以对主数据存储器和辅助数据存储器都执行,其中这些操作不直接改变主数据存储器中的数据,但可能影响存储在主数据存储器中的数据。例如,诸如创建快照卷的配置变化不影响存储在主数据存储器中的数据,但是制作了该数据的副本,称为快照。快照不需要写入物理存储设备,因此可以是存储器中的“虚拟”副本,其可用于重构主数据存储器中数据的状态。然而,如果快照以后用于恢复主数据存储器中的数据,并且快照卷的副本在辅助节点上不可用于恢复那时的辅助数据存储器,那么主数据存储器和辅助数据存储器中的数据变得不一致,或者需要昂贵的操作来恢复一致性。恢复一致性的操作的一个例子是将所有由恢复操作修改的数据复制到辅助数据存储器。本发明确保包含用于恢复主数据存储器的数据的副本的辅助快照卷可用于恢复辅助数据存储器中的数据。通过在主数据存储器和辅助数据存储器中提供相同的数据,可以避免复制每个在恢复期间变化的数据项目。
应当包括在一组操作中的操作的例子包括改变主数据存储器的大小、制作主数据存储器的快照、制作快照的快照、恢复快照、刷新快照和通过应用程序将数据写入快照的操作。这些操作应当在相同的各个时间点对复制流中的数据发生。写操作的顺序与复制流的协调确保在对主数据存储器的两个操作之间执行的所有写操作都适用于在对辅助节点的两个操作之间的辅助数据存储器,并因此适用于相同的数据。
在主数据存储器和辅助数据存储器中具有相同的数据的状态可以被表示为“快照树”,其中在主节点上的主数据的每个副本(快照)都具有在辅助节点上的相同数据的对应副本(快照)。通过对包含相同数据的快照树执行相同的操作,可以在被修改的数据由一个操作产生并且在复制期间没有被获取时避免复制被修改的数据。如上所述,快照不需要被写入物理存储设备,因此可以是存储器中的“虚拟”副本,其可用于重构主数据的状态。
图1示出了本发明可运行的系统环境的例子。示出了两个节点,主节点110A和辅助节点110B。软件应用程序115A和存储管理器/复制器120A在主节点110A上运行。应用程序115A管理可存储在变化日志130A和数据存储器140A中的主数据。
变化日志130A可被认为是“阶段区域(staging area)”,数据的变化在被写入数据存储器140A之前写入该变化日志130A中。诸如变化日志130A的变化日志,也可以简单地称为日志,在本领域是公知的,并且可以采用几种不同的方式实现;例如,日志中的条目可以表示将对数据的特定区域执行的操作。可选择地,日志可以被构建为维持关于每个区域的一组操作。其它类型的日志结构也是可以的,运行本发明不需要特定类型的变化日志实现。本发明可以无需使用日志实现,只要执行写操作使得数据保持一致。
存储管理器/复制器120A通过应用程序115A拦截对主数据的写操作,并将主数据的变化复制到辅助节点110B。只要应用更新使得辅助数据存储器中的数据与主数据存储器中的数据一致,由存储管理器/复制器120A执行的一类复制可以是同步的、异步的和/或周期性的。当应用程序115A和存储管理器/复制器120A可以在同一个计算机系统上运行时,诸如主节点110A,由主节点110A表示的硬件和软件配置可以变化。应用程序115A和存储管理器/复制器120A可在不同的计算机系统上运行,变化日志130A可以存储在非永久性或永久性数据存储器中,数据存储器140A是存储在逻辑存储设备上的一组数据的逻辑表示,其中该逻辑存储设备可以包括一个或者多个物理存储设备。
另外,虽然示出了在主节点110A内应用程序115A、存储管理器/复制器120A、变化日志130A和数据存储器140A之间的连接,但是本领域的技术人员将了解这些连接仅仅是示例性的目的,而其它连接配置是可以的。例如,应用程序115A、存储管理器/复制器120A、变化日志130A和数据存储器140A中的一个或者多个可以在物理上位于由主节点110A表示的节点的外面,但是连接到该节点。
辅助数据存储器140B在逻辑上与主数据存储器140A分离,并且也可以在物理上分离,虽然不需要物理的分离以实现本发明。主节点110A的存储管理器/复制器120A通过复制链路102C与辅助节点110B的存储管理器/复制器120B进行通信。辅助节点110B也包括用于存储主数据的副本的变化日志130B和数据存储器140B,并且辅助节点110B的硬件和软件配置也可以有类似的变化。
因为存储管理器/复制器120A被配置为通过应用程序115A拦截对主数据的写操作并复制被改变的数据,所以作为执行其它不涉及应用程序115的操作(诸如在数据存储器140A中重新格式化盘)的结果而进行的主数据的修改可以不被复制。参照图2进一步讨论这样的操作。
图2是用于在辅助节点上维持主数据的一致和最新的副本的方法的一个例子的流程图。在“对主数据存储器执行一组操作”步骤210中,对主数据存储器执行包含一个或者多个操作的一组操作。在该组操作中的每个操作,或者修改存储在主数据存储器中的数据,或者修改主数据存储器的配置。在将所选择的数据从主数据存储器拷贝(例如复制)到至少一个辅助存储器期间,执行该组操作。对主数据存储器执行的每个操作没有都对辅助数据存储器执行;只有被选择的操作包括在该组操作中。
在一个实施例中,如果给定的操作修改了主数据存储器中的数据,则只有当被修改的数据没有在将所选择的数据从主数据存储器拷贝(复制)到辅助数据存储器期间被获取时,被修改的数据才被复制到辅助数据存储器。然而,被修改的数据的一部分而不是全部从主数据存储器复制到辅助数据存储器也在本发明的范围内。
如果给定的操作仅修改主数据存储器的配置,那么如果该操作是可以在以后影响主数据存储器中的数据的被选择类型的操作,则该给定的操作对辅助数据存储器执行。作为这种配置变化的例子,可以创建快照卷。本发明还包括使该组操作对辅助数据存储器执行,使得主数据存储器中的数据与辅助数据存储器中的数据是一致的。例如,如果该组操作产生被修改的数据,并且被修改的数据没有包括在所选择的复制到辅助数据存储器的数据中,那么在对辅助数据存储器执行该组操作后,被修改的数据的副本被存储在辅助数据存储器中。在该组操作中的每个操作被执行之前,作为在主数据存储器和辅助数据存储器中具有相同数据的结果,数据是一致的。因此,无需复制在复制期间受该组操作影响的每个数据项目,就使数据一致。
该组操作可例如由图1的存储管理器/复制器120A执行。存储管理器/复制器120A用作用于对主数据存储器执行一组操作的执行模块、装置或指令的例子,虽然执行模块、装置或指令的其它实施例也在本发明的范围内。这种可以提供执行模块、装置或指令的功能的商业上可用的存储管理器/复制器的例子是Veritas Volume Manger和Veritas VolumeReplicator产品的结合,可以从位于加利福尼亚山景城的Veritas软件公司获取。
从“对主数据存储器执行一组操作”步骤210以后,控制进行到“识别与复制流中数据的变化有关的每个操作各自的时间”步骤220。与复制流中进行的变化有关的每个操作的时间可用于确保对辅助数据存储器中的数据的每次更新的正确排序,用于维持与主数据存储器中的数据的一致性。下面参照图3B和3C讨论一种用于识别与复制流中数据的变化有关的操作的时间的技术。
从“识别与复制流中数据的变化有关的每个操作各自的时间”步骤220以后,控制进行到“使一组操作中的每个操作在复制流中相同的各个时间对辅助数据存储器执行”步骤230。如上所述,为了维持主数据存储器和辅助数据存储器中的数据的一致性,应当执行操作使得对配置或者数据的变化对辅助数据存储器在相同的各个时间(例如以相同的顺序)进行,其中这些变化已经对主数据存储器进行了。
存储管理器/复制器120A用作用于使一组操作对辅助数据存储器执行以使得辅助数据包括由该组操作产生的被修改的数据的使动模块、装置或指令的例子,虽然使动模块、装置或指令的其它实现也在本发明的范围内。如上所述,商业上可用的存储管理器/复制器的例子是Veritas VolumeManger和Veritas Volume Replicator产品的结合,其可以从位于加利福尼亚山景城的Veritas软件公司获取。
存储管理器/复制器120A也可以被认为是其它类型的模块、装置和指令的例子,包括快照创建模块、装置或指令,用于创建快照和创建辅助数据存储器的对应快照;恢复模块、装置或指令,用于从主数据存储器的快照中恢复一部分主数据存储器,并使辅助数据存储器的对应部分从对应的快照中恢复;插入模块、装置或指令,用于插入命令以执行操作;发送模块、装置或指令,用于发送命令以执行操作;以及同步模块、装置或指令,用于同步主数据的两个快照,并使辅助数据的对应两个快照同步。也可以用存储管理器/复制器120A实现模块、装置和指令,以执行其它功能。可选择地,上面参照存储管理器/复制器120A描述的功能可以实现为分开的存储管理器和复制模块,或者其它与上述实现不同的方式。
图3A-3F示出了在图1A的系统中发生的一系列操作。示出了对数据的各种更新,以及创建主数据存储器和辅助数据存储器的快照卷,使得最终的快照是相同的。
图3A示出了对主存储器中的数据的一系列更新,其后创建主数据的快照。在操作3.1,应用程序115A通过存储管理器/复制器120A执行对主节点110A上的被复制的存储器组240A的卷240A2产生更新(也称为写操作的结果或被修改的数据)的一组操作。这些更新包括更新220-a到220-i,每个更新按连续的(字母)顺序发生。在这里,一组更新也被称为复制流。在操作3.2,制作卷240A2的对应快照240A2-ss。创建快照240A2-ss是影响主数据存储器140A的配置的操作,其中,主数据存储器140A包括被复制的存储器组240A。快照240A2-ss包含由一组更新220-a到220-i产生的数据。
图3B示出了在图3A的快照创建后发生的另一组更新。操作3.3示出对卷240A2的一组更新220-j到220-m。如该例所示的,更新220-i是在创建快照240A2-ss的快照操作之前的最后一个写操作的结果,而更新220-j是在快照操作后的第一个写操作的结果。
图3C示出了由图3A和3B的更新所产生的数据的复制和插入复制流的命令。主存储卷240A2示出所有的更新220-a到220-m已经被写入。当数据从应用程序115A经过存储管理器/复制器120A传送到卷240A2时,存储管理器/复制器120A获取每个写操作的结果用于复制。示出了来自主节点110A上的存储管理器/复制器120A和辅助节点110B上的存储管理器/复制器120B的复制流。在辅助节点110B的卷240B2内示出更新220-a,其已经作为复制流的第一个写操作的结果被复制。示出更新220-b正在存储管理器/复制器120B和卷240B2之间传送,而更新220-c正在到达存储管理器/复制器120B。
示出了在220-c之后到220-i的更新在主节点110A和辅助节点110B之间传输,其后是命令210。命令210是用于执行快照创建操作的指令并在某个位置被插入复制流中,以确保对主数据存储器和辅助数据存储器的每个更新按相同的顺序进行。示出了在复制流中的命令210后,更新220-j到220-m正在被复制。虽然在更新220-m后没有示出其它更新,但是不需要直到辅助节点110B被同步才停止对主节点110A的更新。当执行用于同步主数据存储器和辅助数据存储器中的数据的操作时,复制可以继续。然而,停止复制,等待所有更新被复制到辅助数据存储器,当所有更新已经被复制时执行操作,然后重新开始复制也在本发明的范围内。
图3D示出命令210到达辅助节点。此时,更新220-a到220-i被存储在辅助数据存储器240B2中。在命令210之后,跟随着在传输中的更新,包括更新220-j到更新220-m。
图3E示出在辅助节点上创建快照以响应在辅助节点110B上执行命令210。已经创建了快照卷240B2-ss,包含更新220-a到220-i。更新220-j到220-m处于正在被复制到辅助节点110B上的卷240B2中的处理中。
图3F示出在图3A和3B的所有更新被写入辅助节点上的存储器后的系统。辅助节点110B上的卷240B2包含更新220-a到220-m中的每个更新,并且是主节点110A上的卷240A2的副本。辅助节点110B上的快照卷220B2-ss包含更新220-a到220-i,并且是主节点110A上的快照卷220A2-ss的副本。作为将复制流中的命令210插入在创建快照卷240A2-ss之前的最后一个操作和创建后的第一个操作之间的结果,快照卷240B2-ss已经被创建为快照卷240A2-ss的准确副本。该过程进行得更加有效,因为除了已经被复制为复制流的一部分的数据外,不需要发送数据通过网络。插入单个命令能够在辅助节点110B上创建副本而无需再次复制数据部分。
当操作制作主数据存储器的快照时,使该操作对辅助数据存储器执行包括制作辅助数据存储器的对应快照。在对辅助数据存储器执行该操作后,第一数据存储器的快照包含第一数据,而第二数据存储器的对应快照包含第一数据的副本。
当操作从主数据存储器的另一个备份副本中恢复数据的一部分时,从数据存储器的对应备份副本中恢复辅助数据存储器中的数据的对应部分。例如,如果从主节点上的快照中恢复主数据,那么从驻留在辅助节点上的快照的对应副本中恢复辅助节点上的主数据的副本。通过确保对主节点的一组操作中的每个操作也对辅助节点发生,包括创建快照,快照的对应副本也驻留在辅助节点上。辅助数据存储器中的对应快照是第一数据存储器中的快照的副本,因此可用于执行具有相同数据的辅助数据存储器的恢复。
当操作同步主数据存储器的两个快照时,使该操作对辅助数据存储器执行包括同步辅助数据存储器的对应第一快照与对应第二快照。如果主数据存储器的第一快照包含第一数据,那么辅助数据存储器的对应第一快照包含辅助数据存储器同步后的第一数据的副本。同样,如果第一数据存储器的第二快照包含第二数据,则第二数据存储器的对应快照包含辅助数据存储器同步后的第二数据的副本。
在一个实施例中,当与主数据存储器相关联的节点出现故障时,如果为复制指定的一组变化中的未决变化还没有在辅助数据存储器中进行,则识别该变化。然后,在辅助数据存储器中进行该未决变化。
在至少一个实施例中,当在辅助节点上创建快照卷时,在主快照卷和辅助节点上的对应快照卷之间建立复制关系。建立复制关系使得主快照中数据的变化被包括在所选择的被复制到辅助节点上的对应快照的数据中。由于复制关系,辅助节点上的对应快照卷将保持与主快照卷的同步,因为对主快照卷进行的每个更新都将被复制到辅助节点上的对应快照卷中。
本领域的技术人员将认识到,对应的快照卷和复制关系可以在超过一个的辅助节点上建立。上述技术使大量的主数据的副本能够被维持,对数据的更新只需被复制到辅助节点一次,命令被包括在复制流中以执行其它操作,甚至改变数据的操作。
当周期性地执行复制使得在某些事件后或在设置的时间间隔届满后复制一组变化时,可能期望使未决的一组变化在发生每个存储管理操作后被复制。这将确保在对辅助数据存储器执行存储管理操作之前,相同的变化按相同的顺序应用于辅助数据存储器。
将对数据的一组变化从主数据存储器复制到辅助数据存储器的复制模块可以通过执行该操作的软件以外的软件执行。期望在这种实现中配置复制软件,使得在对辅助数据存储器执行操作以前,对主数据存储器中数据的一组未决的变化对辅助数据存储器进行。
具有在复制中近似相同的点执行的操作的实施例在本发明的另一个实施例中,命令可以在近似于在主节点110A上执行操作的时间从主节点110A发送到辅助节点110B,而无需确保命令在复制流中的准确点执行,只要对主节点和辅助节点按相同的顺序执行更新即可。其它机制可用于确保命令在近似相同的时间点发布,而无需将命令插入复制流中。例如,一对快照可以在近似相同的时间在主数据存储器和辅助数据存储器中创建。
在这个实施例的例子中,对主数据的第二组变化可以在快照在主数据存储器上创建之后并在辅助数据存储器上的快照创建操作之前发生。例如,第二组变化可能已经被记入复制日志但是还没有被复制。第二组变化被识别为应该在辅助数据存储器中进行的变化,使得主数据存储器和辅助数据存储器中的数据是一致的。一旦建立了一对快照,这两个快照可以通过识别两个快照之间的具有差异的数据区域并且只针对所识别的区域将数据从主快照复制到辅助快照而非常快速地同步。该同步操作确保对辅助数据存储器进行第二组变化,使得它与主数据存储器相一致。
一种用于同步两个快照卷的技术描述在申请号为10/610,603(代理编号VRT0011US,客户卷号VRTS0073)的名称为“Flexible Hierarchy ofRelationships and Operations in Data Volumes(数据卷中灵活的关系和操作层次)”的美国专利申请中,其申请日为2003年7月1日,发明人为Anand A.Kekre,John A.Colgrove,Oleg Kiselev,Ronald S.Karr和Niranjan S.Pendharkar。
具有单独的安全域的实施例在另一个实施例中,可以对主节点和辅助节点建立单独的安全域,使得对主数据存储器执行操作的用户或者过程必须通过附加的安全屏障以对辅助数据存储器执行相同的操作。通常,当复制原因是高可用性和灾难恢复性时,辅助数据存储器在物理上与主数据存储器分离,并且主数据存储器和辅助数据存储器由各自的节点管理。通常,主节点可以访问主数据的所有镜像副本,不可访问的辅助数据意味着读取操作必须对主数据本身(或者对主节点上的数据的副本)执行。然而,当从数据安全的角度考虑时,主节点对辅助数据的不可访问性提供附加的安全屏障以保护数据的备份副本不受损毁。如果主数据的安全被恶意入侵者、管理员错误或有故障的软件或硬件危及,则只有本地可访问的存储器直接受到危害。另外,为了损毁备份数据,必须越过该附加的安全屏障并且必须重复损毁数据的破坏行为。
再次参照图1,用于具有单独的安全域的实施例的系统结构被设计为使得主节点110A可以在单独的安全域内操作而辅助节点110B不能。复制链路102C可以被配置为只允许存储管理器/复制器120A和120B访问而不允许在主节点110A上运行的应用程序115A或其它过程访问。主节点110A和辅助节点110B的访问账户可以被配置为具有不同的密码,特别是系统管理和特权账户。因为存储管理器/复制器120A被配置为拦截应用程序115A对主数据的写操作和复制被改变的数据,所以作为执行不涉及应用程序115A的其它破坏活动(诸如在数据存储器140A中重新格式化盘)的结果而进行的对主数据的改变不会被复制。
作为附加的安全特征,系统被设计为使得复制链路102C是主节点110A的安全域和辅助节点110B的安全域之间的唯一通信链路。系统也可以被配置为使得只有符合由存储管理器/复制器120A和120B使用的协议的数据通过复制链路102C传输。当主数据存储器140A和辅助数据存储器140B通过存储区域网络(SAN,未示出)连接时,系统可以被配置为将主数据存储器140A和辅助数据存储器140B实现为两个不同的物理网络的部分,以提供附加的安全屏障。
在该具有单独的安全域的实施例中,主节点110A不直接访问数据存储器140B。为了访问辅助节点110B上的数据,主节点110A向辅助节点110B请求数据,并对主数据存储器140A中的数据执行操作。接着,存储管理器/复制器120A通过复制链路102C将更新复制到存储管理器/复制器120B。
一种用于在单独的安全域中维持主数据和辅助数据的技术在申请号为10/669,475(代理号为VRT0096,客户卷号为VRTS0395)的名称为“Synchronous Replication for System and Data Security(用于系统和数据安全的同步复制)”的美国专利申请中描述,其申请日为2003年10月31日,发明人为Oleg Kiselev。
本发明的上述实施例可以在多种计算和联网环境中实现。下面参照图4描述可用于实现本发明的实例性的计算环境。
实例性的计算机系统图4是可用于实现本发明的计算机系统410的框图。计算机系统410包括总线412,其使计算机系统410的主要子系统互连,诸如中央处理器414、系统存储器417(通常是RAM,但还可以包括ROM、闪存等等)、输入/输出控制器418、诸如经由音频输出接口422的扬声器系统420的外部音频设备、诸如经由显示适配器426的显示屏424、串行端口428和430、键盘432(与键盘控制器433相连)、存储器接口434、可以接收软盘438的软盘驱动器437、可以与光纤信道网络490连接的主机总线适配器(HBA)接口卡435A、可以连接到SCSI总线439的主机总线适配器(HBA)接口卡435B和可以接收光盘442的光盘驱动器440的外部设备。还包括鼠标446(或者其它点击设备,通过串行端口428连接到总线412)、调制解调器447(通过串行端口430连接到总线412)和网络接口448(直接连接到总线412)。
总线412允许中央处理器414和系统存储器417之间进行数据通信,如前面所述,系统存储器417可包括只读存储器(ROM)或者闪存(未示出)和随机存取存储器(RAM)(未示出)。RAM通常是加载有操作系统和应用程序的主要存储器,并通常提供至少64兆字节的存储空间。在其它代码中,ROM或闪存可包含基本输入输出系统(BIOS),其控制诸如与外围组件进行交互的基本硬件操作。驻留在计算机系统410中的应用程序通常存储在计算机可读介质上,并通过该介质访问,诸如硬盘驱动器(例如固定盘444)、光盘驱动器(例如光盘驱动器440)、软盘单元437或其它存储介质。另外,当通过网络调制解调器447或接口448访问时,应用程序可以采用根据应用程序和数据通信技术调制的电信号。
存储器接口434与计算机系统410的其它存储器接口可以连接到标准的计算机可读介质,以存储和/或检索信息,诸如固定盘驱动器444。固定盘驱动器444可以是计算机系统的一部分或者可以是单独并可通过其它接口系统访问的。调制解调器447可以提供通过电话链路到远程服务器的直接连接,或者通过因特网服务提供商(ISP)到因特网的直接连接。网络接口448可以提供通过直接网络链路到远程服务器的直接连接,或者通过POP(接入点)到因特网的直接连接。网络接口448可以使用无线技术提供这种连接,包括数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等等。
许多其它设备或子系统(未示出)可以采用类似的方式连接(例如条形码阅读器,文档扫描器,数码相机等等)。相反,实现本发明不需要提供如图4所示的所有设备。设备和子系统可以采用与图4所示的不同的方式相互连接。如图4所示的计算机系统的运行在本领域中是容易知道的,在本申请中没有详细讨论。用于实现本发明的代码可以存储在计算机可读介质中,诸如系统存储器417、固定盘444、光盘442或软盘438中的一个或者多个。另外,计算机系统410可以是任何类型的计算设备,因此包括个人数字助理(PDA)、网络设备、X-窗口终端或者其它这类计算设备。在计算机系统410上提供的操作系统可以是MS-DOS、MS-WINDOWS、OS/2、UNIX、Linux或者其它已知的操作系统。计算机系统410还支持许多因特网访问工具,包括例如具有JavaScript解释器的HTTP网页浏览器,如Netscape Navigator、Microsoft Explorer等等。
其它实施例本发明很好地获得上述的优点以及固有的优点虽然本发明已经通过参考本发明特定的实施例来描写、描述和限定,但是这些参考不应解释为对本发明的限制,也不能推断出这种限制。如呈现给本领域的技术人员那样,本发明在形式和功能上能够进行相当多的修改、变化和等同。所描述和描写的实施例仅仅是例子,而不是本发明的范围的穷尽。
前述的详细说明已经通过使用框图、流程图和例子陈述了本发明的各种实施例。本领域的技术人员知道,每个框图组件、流程图步骤、由使用的例子示出的操作和/或组件可以通过大范围的硬件、软件、固件或者其任意结合来单独地和/或结合地实现。
本发明已经在全功能计算机系统的上下文中被描述,然而,本领域的技术人员将知道,本发明能够被分布成具有多种形式的程序产品,并且不管实际执行分布的信号承载介质的特定类型,本发明都同样适用。信号承载介质的例子包括诸如软盘和CD-ROM的可记录介质,诸如数字和模拟通信链路的传输类型介质,以及将来开发的介质存储和分布系统。
上述实施例可以通过执行某些任务的软件模块实现。在这里讨论的软件模块包括脚本、批处理或其它可执行的文件。软件模块可以存储在诸如盘驱动器的机器可读或者计算机可读的存储介质中。根据本发明的实施例的用于存储软件模块的存储设备可以是例如磁软盘、硬盘或诸如CD-ROM或CD-R的光盘。根据本发明的实施例的用于存储固件或硬件模块的存储设备还可以包括基于半导体的存储器,其可以永久地、可移动地或远程地连接到微处理器/存储系统。因此,这些模块可以存储在计算机系统存储器内以配置计算机系统,以执行这些模块的功能。其它新的和不同类型的计算机可读存储介质可以用于存储这里所述的模块。
上述说明是本发明的示例而不应被认为是限制。在本发明的范围内可以有其它实施例。本领域的技术人员可以容易实现提供在此公开的结构和方法所需的步骤,并将理解,这些步骤的处理参数和顺序仅以例子的方式给出,并且可以改变以实现期望的结构以及修改,而这些都在本发明的范围内。根据前述的说明书,可以对这里所公开的实施例进行变化和修改而不脱离本发明的范围。因此,本发明仅由所附的权利要求的范围限定,在所有方面对等同物给出全面的认识。
权利要求
1.一种方法,包括对第一数据存储器执行一组操作,其中,对所述第一数据存储器的所述一组操作中的每一个操作执行以下操作中的至少一个从所述第一数据存储器中的数据中产生被修改的数据;以及改变所述第一数据存储器的配置;以及在将所选择的所述第一数据存储器中的数据复制到第二数据存储器期间,执行所述一组操作;以及使所述一组操作对所述第二数据存储器执行,其中,如果所述一组操作产生所述被修改的数据,并且所述被修改的数据的一部分没有包括在所选择的复制到所述第二数据存储器的数据,则在所述一组操作对所述第二数据存储器执行以后,所述第二数据存储器包括所述被修改的数据的一部分的副本。
2.如权利要求1所述的方法,其中,所述一组操作中的一个操作从第三数据存储器中的第三数据中恢复所述第一数据存储器中的第一数据的一部分;所述的使所述一组操作对所述第二数据存储器执行包括使所述第二数据存储器中的第二数据的对应部分从第四数据存储器中的第四数据中恢复,其中,在恢复所述第一数据的一部分后和在使所述第二数据的对应部分恢复后,所述第一数据的一部分和所述第二数据的一部分是相同的。
3.如权利要求1所述的方法,其中,所述一组操作中的一个操作使所述第一数据存储器中的第一数据与第三数据存储器中的第三数据同步;所述的使所述一组操作对所述第二数据存储器执行包括使所述第二数据存储器中的第二数据与对应于所述第三数据存储器的第四数据存储器中的第四数据同步,其中,在同步所述第一数据后和在使所述第二数据同步后,所述第一数据和所述第二数据是相同的。
4.如权利要求1所述的方法,其中,所述一组操作中的一个操作通过创建与所述第一数据存储器有关的第一快照数据存储器,改变所述第一数据存储器的配置,其中,第一数据存储器中的第一数据的第一快照被存储在所述第一快照数据存储器中;所述的使所述一组操作对所述第二数据存储器执行包括使与所述第二数据存储器有关的第二快照数据存储器被创建,其中,所述第二数据存储器中的第二数据的第二快照被存储在所述第二快照数据存储器中;所述第一快照和所述第二快照包括相同的数据。
5.如权利要求4所述的方法,还包括在所述第二快照数据存储器被创建后,在所述第一快照数据存储器和所述第二快照数据存储器之间建立复制关系,其中,所述复制关系使所述第一快照数据存储器中随后被修改的数据包括在所选择的复制到所述第二快照数据存储器中的快照数据中。
6.如权利要求5所述的方法,其中,当所选择的数据被复制到所述第二数据存储器中时,随后被修改的数据被复制到所述第二快照数据存储器中。
7.如权利要求1所述的方法,其中,如果在执行所述一组操作期间的第一个时间点所述一组操作的第一个操作对所述第一数据存储器执行;以及当所述第一个操作对所述第一数据存储器执行时,所述第一数据存储器包括第一数据;那么,在第二个时间点当所述第一个操作对所述第二数据存储器执行时,所述第二数据存储器包括所述第一数据的副本。
8.如权利要求1所述的方法,其中,如果在执行所述一组操作期间的第一个时间点,所述第一数据存储器包含第一数据,那么,在第二个时间点,当所述第二数据存储器表示在所述第一个时间点的第一数据存储器时,所述第二数据存储器包含所述第一数据的副本。
9.如权利要求1所述的方法,其中,所述一组操作包括所述一组操作的有序的子集,其中,在所述操作的有序子集中的操作以连续的顺序对所述第一数据存储器和所述第二数据存储器都执行。
10.如权利要求1所述的方法,其中,在所述第一数据存储器上,在所述连续的顺序中的特定点产生所述被修改的数据;所述特定点在所述连续的顺序中的第一单独点和所述连续的顺序中的第二单独点之间;所述第一单独时间点和所述第二单独时间点在所述连续的顺序中相邻;所述的使所述一组操作对所述第二数据存储器执行包括使产生所述被修改的数据的副本发生在所述第二数据存储器上、在所述连续的顺序中的特定点。
11.如权利要求10所述的方法,其中,所述的使产生所述被修改的数据的副本发生在所述特定点包括在所选择的从所述第一数据存储器复制到所述第二数据存储器的数据中插入命令以在所述特定点产生所述被修改的数据的副本。
12.如权利要求1所述的方法,其中,有序操作的子集包括所述一组操作中的所有操作。
13.如权利要求1所述的方法,其中,所述一组组操作还包括所述一组操作的无序的子集,其中,所述无序的子集在所述连续的顺序中的特定点执行;所述连续的顺序中的特定点在所述连续的顺序中的第一单独点和所述连续的顺序中的第二单独时间点之间;所述第一单独时间点在所述连续的顺序中与所述第二单独时间点相邻;所述无序的子集中的每个操作可以与所述无序的子集中的其它操作同时执行。
14.如权利要求1所述的方法,其中,所述的使所述一组操作对所述第二数据存储器执行包括使执行所述一组操作的至少一个命令对所述第二数据存储器执行。
15.如权利要求1所述的方法,其中,所述的所选择的数据包括由于写操作而修改的第一数据。
16.如权利要求15所述的方法,其中,所述一组操作不包括所述写操作。
17.如权利要求1所述的方法,其中,所述的所选择的数据还包括存储在所述第一数据存储器中的第一数据的快照的一部分,所述快照的一部分由于第二写操作而被修改。
18.如权利要求17所述的方法,其中,所述一组操作不包括所述第二写操作。
19.如权利要求1所述的方法,其中,在将所述的所选择的数据复制到所述第二数据存储器后,所述第二数据存储器还包含所述的所选择的数据的副本。
20.如权利要求1所述的方法,还包括在与所述第一数据存储器相关联的主节点出现故障后,识别所述第一数据存储器中所述所选择的数据的一部分,其中,所述一部分还没有被复制到所述第二数据存储器中,并且仅使所述一部分复制到所述第二数据存储器中,使得所述第一数据和所述第二数据是相同的。
21.如权利要求1所述的方法,还包括识别所述第一数据存储器中的第二被修改的数据,其中,所述第二被修改的数据在所述一组操作对所述第一数据存储器执行之前并在对所述第二数据存储器执行之后产生;以及所述第二被修改的数据没有包括在所选择的复制到所述第二数据存储器的数据中;以及仅使所述第二被修改的数据复制到所述第二数据存储器中,使得所述第二数据和所述第一数据是相同的。
22.一种系统,包括执行装置,用于对第一数据存储器执行一组操作,其中,对所述第一数据存储器的所述一组操作中的每一个操作执行以下操作中的至少一个操作从所述第一数据存储器中的数据中产生被修改的数据;以及改变所述第一数据存储器的配置;以及在将所选择的所述第一数据存储器中的数据复制到第二数据存储器期间,执行所述一组操作;以及使动装置,用于使所述一组操作对所述第二数据存储器执行,其中,如果所述一组操作产生所述被修改的数据,并且所述被修改的数据的一部分没有包括在所选择的复制到所述第二数据存储器的数据,则在所述一组操作对所述第二数据存储器执行后,所述第二数据存储器中的第二数据包括所述被修改的数据的一部分的副本。
23.如权利要求22所述的系统,其中,所述一组操作包括所述一组操作的有序的子集,其中,所述操作的有序子集中的操作以连续的顺序对所述第一数据存储器和所述第二数据存储器执行。
24.如权利要求23所述的系统,还包括第二使动装置,用于使产生所述被修改的数据的副本发生在所述第二数据存储器上、在所述连续的顺序中的特定点,其中,在所述第一数据存储器上,在所述连续的顺序中的特定点产生所述被修改的数据;所述特定点在所述连续的顺序中的第一单独时间点和所述连续的顺序中的第二单独时间点之间;所述第一单独时间点和所述第二单独时间点在所述连续的顺序中相邻。
25.如权利要求24所述的系统,还包括插入装置,用于在所选择的从所述第一数据存储器复制到所述第二数据存储器的数据中插入命令以在所述特定点产生被修改的数据的副本。
26.如权利要求23所述的系统,其中,所述一组操作还包括所述一组操作的无序的子集,其中,所述无序的子集在所述连续的顺序中的特定点执行;所述连续的顺序中的特定点在所述连续的顺序中的第一单独时间点和所述连续的顺序中的第二单独时间点之间;所述第一单独时间点在所述连续的顺序中与所述第二单独时间点相邻;所述无序的子集中的每个操作可以与所述无序的子集中的其它操作同时执行。
全文摘要
一种方法、系统、计算机系统和计算机可读介质,用于在作为不是在复制期间获取的程序驱动写操作的操作的结果修改数据时维持主数据的最新、一致的副本,而无需复制被修改的数据。在数据相同的时间点对主数据存储器和辅助数据存储器执行所选择的存储管理操作,以确保数据存储器内存储的数据保持一致性。这些所选择的存储管理操作包括产生存储在主数据存储器中的被修改的数据的操作,其中被修改的数据的一部分没有被复制到辅助节点。选择其它类型的存储管理操作以对主数据存储器和辅助数据存储器都执行,其中这些操作不直接改变主数据存储器中的数据,但可能影响存储在主数据存储器中的数据。
文档编号G06F11/20GK1902595SQ200480039656
公开日2007年1月24日 申请日期2004年12月30日 优先权日2003年12月31日
发明者J·A·科尔格罗夫, R·S·卡尔, O·基谢廖夫 申请人:维里塔斯管理公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1