CN102239479A - 使用写队列机制实施多阵列一致性组的方法 - Google Patents
使用写队列机制实施多阵列一致性组的方法 Download PDFInfo
- Publication number
- CN102239479A CN102239479A CN2009801487892A CN200980148789A CN102239479A CN 102239479 A CN102239479 A CN 102239479A CN 2009801487892 A CN2009801487892 A CN 2009801487892A CN 200980148789 A CN200980148789 A CN 200980148789A CN 102239479 A CN102239479 A CN 102239479A
- Authority
- CN
- China
- Prior art keywords
- storage array
- write
- interval
- queue
- slave
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000007246 mechanism Effects 0.000 title claims description 22
- 230000008569 process Effects 0.000 claims description 19
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 238000003491 array Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种实施多阵列一致性组的方法,包括将写输入/输出(I/O)队列间隔用于一致性组(CG)的逻辑单元(LU)成员。该方法同样包括使用时间戳来标记每一个写I/O,并在该参与存储阵列从主存储阵列接收快照请求后暂停从该参与存储阵列到该CG的LU成员的I/O。该方法进一步包括确定该快照请求时间戳是否在该参与存储阵列的写I/O队列间隔内。
Description
技术领域
本发明主要涉及存储系统领域,更具体地,涉及用于为数据库备份实施多阵列一致性组的方法。
背景技术
单个应用可使用多个逻辑单元(LUs)。例如,数据库系统可具有在一个LU上的日志文件和在另一个LU上的数据文件。数据库可使用备份技术,其对数据库LUs制作快照,并将该快照备份到合适的存储媒体,如磁带。此类备份技术可以被实施而不脱机该数据库;该数据库可不停顿I/O(输入/输出)功能。例如,该数据库文件可在制作快照时继续运行,其中该快照可能不与该数据库活动相协调。在可能实施备份之前,该快照备份技术可能需要该数据库文件所使用的所有LUs的一致性快照。该一致性可确保实际上从该备份处准确地重新存储该应用。
当数据库系统具有位于不同存储阵列上的LUs时可使用一致性组(CG)。CG可由一个或多个LUs组成,并可用于创建该CG所有成员的快照作为单个原子操作。
发明内容
一种用于实施多阵列一致性组的方法包括将写输入/输出(I/O)队列间隔应用于一致性组(CG)的逻辑单元(LU)成员。该CG的LU成员驻留的存储阵列是参与参与存储阵列。该方法也包括使用时间戳对每一个写I/O作标记,并且在该参与存储阵列从主存储阵列接收快照请求后,暂停从该参与存储阵列到该CG的LU成员的I/O。该快照请求具有快照请求时间戳。该方法进一步包括确定该快照请求时间戳是否在该参与存储阵列的写I/O队列间隔内。当该快照请求时间戳被确定在该参与存储阵列的写I/O队列间隔内时,该参与存储阵列执行以下至少一个:(a)完成早于该快照请求时间戳的每一个写I/O,(b)创建该CG的LU成员的本地快照,或(c)恢复I/O到该CG的LU成员。
一种用于实施多阵列一致性组的方法包括在一致性组(CG)存储阵列的控制器上启动一致性组(CG)的快照。具有该控制器的该CG存储阵列定义为主机,以及该CG的逻辑单元(LU)成员所在的存储阵列是参与存储阵列。该方法也包括记录该启动的CG快照的时间戳并将PREPARE请求从该主机发送到每一个参与存储阵列的每一个控制器。将每一个接收PREPARE请求的参与存储阵列定义为从机。该方法进一步包括当该从机接收到该PERPARE请求时,暂停到该LU成员的I/O并确定该时间戳是否符合在该从机的写输入/输出(I/O)队列间隔内,当该时间戳符合在该写I/O队列间隔内时,刷新在该写I/O队列间隔内早于该时间戳的每一个写I/O,以及执行以下至少一个:(a)创建该LU成员的快照,(b)恢复I/O,(c)将PERPARE状态记入永久存储器,或(d)将PERPARE-ACK消息发送到该主机。
一种计算机可读介质,其具有计算机可执行指令以实施一方法,其中该方法包括将写输入/输出(I/O)队列间隔应用于一致性组(CG)的逻辑单元(LU)成员。该CG的LU成员所在的存储阵列是参与存储阵列。该方法也包括在该参与存储阵列从主存储阵列接收快照请求后,该参与存储阵列使用时间戳对每一个写I/O作标记并暂停从该参与存储阵列到该CG的LU成员的I/O。该快照请求具有快照请求时间戳。该方法进一步包括确定该快照请求时间戳是否在该参与存储阵列的写I/O队列间隔内。当该快照请求时间戳被确定在该参与存储阵列的写I/O队列间隔内时,该参与存储阵列执行以下至少一个:(a)完成早于该快照请求时间戳的每一个写I/O,(b)创建该CG的LU成员的本地快照,或(c)恢复I/O到该CG的LU成员。
应当可以理解,不管是上述概括的描述还是后面详细的描述都仅仅是示例性和说明性的,并不会是对本发明的必要限制。包括并组成说明书一部分的附图揭示了本发明的主题。该说明书和该附图一起用来解释本发明的原理。
附图说明
通过参考附图,本发明的众多优点可以被本领域的技术人员更好地理解:
图1A示出了多阵列存储数据库的方框图;
图1B示出了在存储数据库的多个一致性组成员之上的多个写I/O的方框图;
图2A和2B是描述了在多阵列存储数据库上的快照请求的实施方式的流程图;
图3是描述了使用写队列机制实施多阵列一致性组的方法的流程图;和
图4是描述了使用写队列机制实施多阵列一致性组的方法的另一实施方案的流程图。
具体实施方式
此时对在该附图中所描述的公开主题进一步做出详细说明。
此时参照图1A和1B,示出了多阵列存储数据库以及在存储数据库的多个一致性组成员之上的多个写I/O的方框图。存储数据库102可包括多个存储阵列104,逻辑单元(LUs)位于不同存储阵列上。一致性组(CG)可由在大量存储阵列之上的一个或多个LUs组成以支持创建所有CG成员的快照作为单个基本操作。在存储阵列104中,主机可见的小型计算机系统接口(SCSI)逻辑单元(LU)可映射到虚拟卷106,例如,当存储虚拟化管理器(SVM)108部署在该存储阵列104中时。虚拟卷106可来自在存储阵列104内的一个或多个存储池110的容量。图1B示出了三个虚拟卷:VV1,VV2,VV3,具有多个排队的写I/O:W11,W12,W13,W21,W22,W23,W31,W32,W33。一致性组可包括VV1,VV2和VV3,但是应当清楚,可在该一致性组内包括任意数量的虚拟卷。
可使用在存储阵列控制器缓存112内的写I/O队列机制来创建时间窗口,在该时间窗口期间快照可在多个存储阵列104上创建。该写I/O队列机制可用于成为一致性组的成员的LUs。包括一致性组的LU成员的存储阵列可被称为参与存储阵列114。每一个该参与存储阵列114可具有普通时间概念,如通过使用分布式时钟同步机制116。例如,该分布式时钟同步机制116可以是网络时间协议(NTP)。
一个或多个写I/O可排队为按先进先出(FIFO)顺序的LU。可使用该FIFO顺序,不考虑该写I/O是否具有逻辑块地址(LBA),该LBA可与已存在于存储阵列控制器118的高速缓存112内的写LBA重叠。可使用来自该参与存储阵列114所使用的分布式时钟同步机制116的时间戳来标记每一个写I/O。在一致性组内的LU的写I/O队列可表现为从当前时间到该队列中最早写I/O的时间戳的时间间隔。该存储阵列控制器118可在该队列中保留足够的写I/O,以使该写I/O队列所表现的时间间隔大于在该参与存储阵列114之间通信的消息的最长等待时间。
当参与存储阵列114接收到来自主存储阵列114a的快照请求时,参与存储阵列114可暂停到一致性组成员的I/O。该主存储阵列114a可定义为接收从用户或主机的至少一个的快照请求的存储阵列。该参与存储阵列114可确定来自该主存储阵列114a的该快照请求的时间戳是否在该写I/O队列间隔内。如果该快照请求的时间戳在该写队列间隔内,则该参与存储阵列114可完成早于该一致性组快照请求时间戳的写,创建该一致性组的LU成员的本地快照,并恢复I/O到该一致性组的LU成员。
在图1B的方框图中,一致性组快照可包括写W11,W21和W31,不包括后来的写。但是,由于在多阵列系统中的延迟,到最后存储阵列暂停该一致性组的最后LU成员时,写W22,W12,W32和W23已经被排队。当该参与存储阵列114接收到该一致性组快照请求时,为了该一致性组快照成功,在该参与存储阵列114内的队列应该足够大以使写W22,W12,W32和W23仍在该各个参与存储阵列队列中而并未被写入该一致性组的LU成员。在创建该本地快照之前,如果W11,W21和W31任意一个仍在该队列中,每一个可被刷新到成员LU。
一致性组的每一个参与存储阵列114可与其他参与存储阵列交换测试消息,如经常地,用来确定往返延迟。可使用该往返延迟来确定该写I/O队列间隔的最小时间间隔。但是,应当预料到,使用该往返延迟来设置该最小时间间隔可能不总是可行的。例如,该LU的队列的大小可由每一个在一致性组内LU可允许使用多少高速缓存的存储器阵列宽度阈值来限制。因此,当在接收新的写I/O中达到/超出该高速缓存阈值时,可从该FIFO队列到物理驱动器来刷新较早的写I/O,即使其减少了该队列所表现的时间间隔的大小。
该写队列机制可用于包括电池支持的高速缓存的存储阵列。进一步地,可将该高速缓存镜像到在该存储阵列中另一控制器,如为了冗余目的。
此时参照图2A和2B,描述了在多阵列存储数据库上的快照请求的实施方式的流程图。该一致性组快照创建的协调可利用两阶段提交(2PC)协议。当在参与存储阵列的控制器上启动一致性组快照时,可将控制器定义为该处理200的主机。实施该快照请求的该处理200可根据图2A和2B的流程图来进行。
在操作202中,处理200的开端被打上时间戳。例如,主机可根据该分布式时钟同步机制对该处理200的开端打上时间戳。在操作204中,将PREPARE请求发送到在该一致性组内的所有参与存储阵列控制器。例如,该主机可将该PREPARE请求发送到在该一致性组内的所有参与存储阵列控制器。可将每一个接收PREPARE请求的参与存储阵列定义为从机。在操作206中,暂停到该一致性组的LU成员的I/O。例如,该从机可在接收PREPARE请求后暂停I/O。在操作208中,传送合适的查询,该合适的查询包括来自该主机的一致性组时间戳是否符合在该从机的写I/O队列间隔内。例如,可将该合适的查询传送到该从机的控制器。如果该操作208的结果为否(no),(即,该时间戳不符合在该写I/O队列间隔内),在操作210中,记录ABORT并发送ABORT-ACK。例如,该从机可将ABORT记录给永久存储器并发送ABORT-ACK。例如,该从机可将ABORT记录给永久存储器并发送ABORT-ACK给该主机。随后该处理200可进行到操作220,如下所示。如果该操作208的结果为是(yes),(即该时间戳符合在该写I/O队列间隔内),在操作212中,刷新早于该处理200时间戳的写I/O。例如,该从机可刷新在该队列中早于该处理200时间戳的任意写I/O。在操作214中,创建该LU的快照。例如,该从机可创建该LU的快照,在操作216中,到该LU的I/O被恢复。例如,该从机可恢复I/O到该LU。在操作218中,记录PREPARED状态并发送PREPARE-ACK消息。例如,该从机可将PREPARED状态记录给永久存储器,以及该从机可将PREPARE-ACK消息发送给该主机。随后该处理进行到操作220。
在操作220中,传送接收查询,该接收查询包括该主机是否从所有从机接收PREPARE-ACK消息。例如,可将该接收查询传送给该主机。如果该操作220的结果为否,在操作222中,发出ROLLBACK消息。例如,该主机可将ROLLBACK消息发出给所有从机。在操作224中,记录了该ROLLBACK状态,并释放了任意锁定。例如,当从机接收到该ROLLBACK消息时,该从机可将该ROLLBACK状态记录到永久存储器,以及该从机可释放该从机可能已保持的代表该整个处理200的任意锁定。在操作226中,删除在操作214中进行的快照。例如,该从机可删除在操作214中进行的快照。在操作228中,发出ROLLBACK-ACK消息。例如,该从机可将该ROLLBACK-ACK消息发给该主机。随后该处理200可在236处结束,其结果如下所示。如果该操作200的结果为是,(即,接收到了ROLLBACK-ACK消息,如该主机从所有从机),处理200可进行到操作230处。
在操作230中,发出COMMIT请求。例如,该主机可将该COMMIT请求发布到所有从机。在操作232中,记录COMMIT状态,并释放了任意锁定。例如,当从机接收到该COMMIT请求时,该从机可将该COMMIT状态记录到永久存储器,以及该从机可释放其所保持的代表整个处理200的任意锁定。在操作234中,发送COMMIT-ACK消息。例如,该从机可将COMMIT-ACK消息发给该主机。随后该处理200可在236结束。在结束236该处理200的结果可因此基于该主机从该从机处接收到了哪种消息。如果该主机从所有从机处接收到了COMMIT-ACK消息,该整个处理200成功,并对在该一致性组内的所有LUs已经进行了一致性快照。如果该主机从所有从机接收到了ROLLBACK-ACK消息,该整个处理200未形成一致性快照,但每一个从机进行了清除(如,释放了任意锁定并删除了在操作214中进行的快照)。
该2PC协议可以是具有假定ABORT的被称为2PC的变体。在本例中,在发出PREPARE请求时启动计时器。例如,该主机可启动计时器,在该主机发出PREPARE请求到该一致性组中的所有参与存储阵列控制器时(操作204)。如果该计时器在该主机接收到来自所有从机的响应之前到期,则发出ROLLBACK消息。例如,如果该计时器没有接收到来自所有从机的响应而到期,该主机可假设该整个处理200需要被退出,以及该主机可将ROLLBACK消息发送到所有从机。因此,如果该计时器在该主机接收到来自所有从机的响应之前到期,可将该处理200处置为操作220的结果为否。如果在该计时器到期后发出PREPARE-ACK消息,可重新发出该ROLLBACK消息。例如,如果从机将PREPARE-ACK消息发送到该主机,在该计时器到期后,如在该ROLLBACK消息发出后从机停止并恢复起来,该主机可随后将该ROLLBACK消息重新发送到该从机处,于是该从机可进行清除。
如果该主机发生故障,如在将PREPARE消息发送到所有从机后具有永久故障,每一个从机可能需要手动ROLLBACK。在本发明的一实施方案中,由用户执行该手动ROLLBACK。
应当预料到,限制控制器高速缓存的地方可使用其它存储装置来筹划该排队的写I/O。例如,可使用固态硬盘(SSDs)。当使用另一种存储装置时,可使用常用控制器缓存管理机制从该高速缓存到其它存储装置来刷新写I/O。这样,将该写I/O队列保留在该其它存储装置上。
以下参照方法的流程图说明对本发明进行描述。应当理解,该流程图说明的每一个块和/或在该流程图说明中块的组合,可由计算机程序指令来实施。可将这些计算机程序指令提供给通用计算机,专业计算机或其他可编程数据处理设备的处理器,以产生机制使得通过该计算机或其他可编程数据处理设备的处理器所执行的指令创造出实施该流程图中指定的功能/行为的装置。可同样将这些计算机程序指令存储到计算机可读实体介质中(因而包括计算机程序产品),该介质能够将计算机或其他可编程数据处理设备引导成以特定方式运作,使得存储在该计算机可读实体介质中的该指令产生包括实施在该流程图中指定功能/行为的指令装置的制品。
在本发明的一实施方案中,可将该写I/O队列机制实施为现有RAID(独立冗余磁盘阵列)引擎的补充,其可支持跨越多个存储阵列的一致性组。进一步地,本发明可使用本领域已知的任何存储阵列支持的本地快照机制。可不需要将该本地快照机制认识为多存储阵列一致性组,或该写I/O阵列,以正确进行操作。另外,使用该2PC协议可使得在一致性组快照未完成情况中自动清除存储阵列。
此时参照图3,示出了描述了使用写队列机制实施多阵列一致性组的方法300的流程图,依照本发明的实施方案。方法300可将写输入/输出(I/O)队列间隔用于一致性组(CG)的逻辑单元(LU)成员302。该CG的LU成员驻留的存储阵列可以是参与存储阵列。方法300可使用时间戳对每一个写I/O标记304。方法300在参与存储阵列306从主存储阵列接收到快照请求后可暂停从该参与存储阵列到该CG的LU成员的I/O。该快照请求可以具有快照请求时间戳。方法300可确定该快照请求时间戳是否在该参与存储阵列的写I/O队列间隔内308。当确定了该快照请求时间戳在该参与存储阵列的写I/O队列间隔内时,该参与存储阵列可实施以下至少一个:(a)完成早于该快照请求时间戳的每一个写I/O,(b)创建该CG的LU成员的本地快照,或(c)恢复I/O到该CG的LU成员。
将写I/O队列间隔用于CG的LU成员的方法300可包括按先入先出(FIFO)顺序排列写I/O。使用时间戳对每一个写I/O标记的方法300可包括根据分布式时钟同步机制来同步该CG的每一个参与存储阵列。该分布式时钟同步机制可以是网络时间协议(NTP)。将写I/O队列间隔用于CG的LU成员的方法300可包括将该写I/O队列间隔表现为从当前时间到该队列中最早写I/O的时间戳的时间间隔。方法300可进一步包括在该CG的每一个参与存储阵列之间交换测试消息,用来确定往返延迟。方法300可进一步包括使用该往返延迟来确定该写I/O队列间隔的最小时间间隔。
此时参照图4,示出了描述了使用写队列机制实施多阵列一致性组的方法400的另一实施方案的流程图。方法400可在CG存储阵列的控制器上启动一致性组(CG)的快照402。可将具有该控制器的该CG存储阵列定义为主机,该CG的逻辑单元(LU)成员所在的存储阵列可以是参与存储阵列。方法400可记录该启动的CG快照的时间戳404。方法400可将PREPARE请求从该主机发送到每一个参与存储阵列的每一个控制器406。可将每一个接收PREPARE请求的参与存储阵列定义为从机。方法400可暂停到该LU成员的I/O并确定该时间戳是否符合在该从机写输入/输出(I/O)队列间隔内,当该从机接收到该PERPARE请求时408。方法400可刷新在该写I/O队列间隔内早于该时间戳的每一个写I/O,当该时间戳符合在该写I/O队列间隔内时410。方法400可实施以下至少一个:(a)创建该LU成员的快照,(b)恢复I/O,(c)将PERPARE状态记入永久存储器,或(d)将PERPARE-ACK消息发送到该主机412。
方法400可进一步包括当该主机从每一个从机处接收到该PREPARE-ACK消息时,从该主机处发出COMMIT请求到每一个从机。当每一个从机从该主机处接收到该COMMIT请求时,每一个从机可实施以下至少一个:(a)将新状态记录到永久存储器,(b)释放代表整个处理所保持的锁定,(c)删除该LU成员的快照,或(d)将COMMIT-ACK消息发送给该主机。当该方法400的时间戳不符合在该写I/O队列间隔内时,该从机可将ABORT消息发送到永久存储器以及该从机将ABORT消息发送到该主机。方法400可进一步包括从该主机处发出ROLLBACK消息给每一个从机,当该主机从至少一个从机处接收到该ABORT消息时。当每一个从机从该主机处接收到该ROLLBACK消息时,每一个从机可实施以下至少一个:(a)将新状态记录到永久存储器,(b)释放代表整个处理所保持的锁定,(c)删除该LU成员的快照,或(d)将ROLLBACK-ACK消息发送给该主机。方法400可进一步包括启动计时器,在方法400的从该主机到每一个参与存储阵列的每一个控制器处发送PREPARE请求的步骤后可启动该计时器。方法400可进一步包括当该计时器在该主机从每一个从机处接收到响应之前到期时,将第一ROLLBACK消息发送给每一个从机。方法400可进一步包括当该从机在发出该第一ROLLBACK消息后发送PREPARE-ACK消息时,将第二ROLLBACK消息发送给从机。
在本发明中,所公开的方法可被实施为指令集或装置可读的软件。这样的软件包可以是计算机程序产品,其采用了计算机可读存储介质,该介质包括存储的计算机代码用来对计算机编程以实施本发明所公开的功能和过程。该计算机可读介质可包括,但不限于,任意类型的常用软盘、光盘、CD-ROM、磁盘、硬盘、磁光盘、ROM、RAM、EPROM、EEPROM、磁或光卡、或任意其他适合存储电子指令的媒体。
进一步地,应当理解,该方法中所公开的步骤的指定顺序或层次是示范性方式的实施例。基于设计偏好,应当理解,该方法中步骤的指定顺序或层次可重新设置而保留在所公开的主题内。该附属方法权利要求展现了按单个顺序的各个步骤的元件,并不必然地意味着将其限制于所展现的指定顺序或层次。
应当相信,通过前述将理解本公开和许多其伴随的优点,以及应当清楚,其组件的形式、结构和布置可以进行不同的变化而不背离本公开主题或不牺牲所有其物质优点。所述的形式只是示例说明,下列权利要求的目的是包含和包括此类变化。
Claims (20)
1.一种方法,包括:
将一写输入/输出(I/O)队列间隔应用于一致性组(CG)的一逻辑单元(LU)成员,所述CG的所述LU成员驻留的一存储阵列是一参与存储阵列;
使用时间戳对每一个写I/O作标记;
在该参与存储阵列从一主存储阵列接收一快照请求后暂停从该参与存储阵列到该CG的该LU成员的I/O,该快照请求具有一快照请求时间戳;和
确定该快照请求时间戳是否在该参与存储阵列的该写I/O队列间隔内,
其中当确定了该快照请求时间戳在该参与存储阵列的该写I/O队列间隔内时,该参与存储阵列执行以下至少一个:(a)完成早于该快照请求时间戳的每一个写I/O,(b)创建该CG的该LU成员的一本地快照,或(c)恢复I/O到该CG的该LU成员。
2.如权利要求1所述的方法,其中将一写I/O队列间隔应用于CG的一LU成员包括:
按一先入先出(FIFO)顺序排列写I/O。
3.如权利要求1所述的方法,其中使用时间戳对每一个写I/O作标记包括:
根据一分布式时钟同步机制同步该CG的每一个参与存储阵列。
4.如权利要求3所述的方法,其中该分布式时钟同步机制是一网络时间协议(NTP)。
5.如权利要求1所述的方法,其中将一写I/O队列间隔应用于CG的一LU成员包括:
将该写I/O队列间隔表现为从当前时间到该队列中最早的写I/O的时间戳的时间间隔。
6.如权利要求1所述的方法,进一步包括在该CG的每一个参与存储阵列之间交换一测试消息以确定一往返延迟。
7.如权利要求6所述的方法,进一步包括使用该往返延迟确定该写I/O队列间隔的一最小时间间隔。
8.一种方法,包括:
在一致性组(CG)存储阵列的一控制器上启动CG快照,具有该控制器的该CG存储阵列被定义为一主机,该CG的一逻辑单元(LU)成员驻留的一存储阵列是一参与存储阵列;
记录该启动的CG快照的一时间戳;
将一PREPARE请求从该主机发送到每一个参与存储阵列的每一个控制器,将接收一PREPARE请求的每一个参与存储阵列被定义为一从机;
当该从机接收该PERPARE请求时,暂停到该LU成员的I/O并确定该时间戳是否在该从机的写输入/输出(I/O)队列间隔内;
当该时间戳在该写I/O队列间隔内时,刷新在该写I/O队列间隔内早于该时间戳的每一个写I/O;和
实施以下至少一个:(a)创建该LU成员的快照,(b)恢复I/O,(c)将一PERPARE状态记录入一永久存储器,或(d)将一PERPARE-ACK消息发送到该主机。
9.如权利要求8所述的方法,进一步包括当该主机从每一个从机接收该PERPARE-ACK消息时,从该主机将一COMMIT请求发送到每一个从机。
10.如权利要求9所述的方法,其中当每一个从机从该主机接收到该COMMIT请求时,每一个从机执行以下至少一个:(a)将一新状态记录到一永久存储器,(b)释放代表整个处理所保持的锁定,(c)删除该LU成员的该快照,或(d)将一COMMIT-ACK消息发送给该主机。
11.如权利要求8所述的方法,其中当该时间戳不在该写I/O队列间隔内时,该从机将一ABORT消息记录到一永久存储器并且该从机发送一ABORT消息到该主机。
12.如权利要求11所述的方法,进一步包括:
当该主机从至少一个从机接收该ABORT消息时从该主机发出一ROLLBACK消息给每一个从机,
其中当每一个从机从该主机接收该ROLLBACK消息时,每一个从机执行以下至少一个:(a)将一新状态记录到一永久存储器,(b)释放代表整个处理所保持的锁定,(c)删除该LU成员的该快照,或(d)将一ROLLBACK-ACK消息发送给该主机。
13.如权利要求8所述的方法,进一步包括启动一计时器,该计时器在所述的将一PREPARE请求从该主机发送到每一个参与存储阵列的每一个控制器的步骤之后被启动。
14.如权利要求13所述的方法,进一步包括当该计时器在该主机从每一个从机接收一响应之前到期时,发送一第一ROLLBACK消息给每一个从机。
15.如权利要求14所述的方法,进一步包括当该第一ROLLBACK消息被发送后一从机发送一PREPARE-ACK消息时,将一第二ROLLBACK消息发送给该从机。
16.一种计算机可读介质,其具有计算机可执行指令以实施一方法,所述方法包括:
将一写输入/输出(I/O)队列间隔应用于一致性组(CG)的一逻辑单元(LU)成员,该CG的该LU成员驻留的一存储阵列是一参与存储阵列;
使用时间戳对每一个写I/O作标记;
在该参与存储阵列从一主存储阵列接收一快照请求后暂停从该参与存储阵列到该CG的该LU成员的I/O,该快照请求具有一快照请求时间戳;和
确定该快照请求时间戳是否在该参与存储阵列的该写I/O队列间隔内,
其中当确定了该快照请求时间戳在该参与存储阵列的该写I/O队列间隔内时,该参与存储阵列执行以下至少一个:(a)完成早于该快照请求时间戳的每一个写I/O,(b)创建该CG的该LU成员的一本地快照,或(c)恢复I/O到该CG的该LU成员。
17.如权利要求16所述的计算机可读介质,其中将一写I/O队列间隔应用于CG的一LU成员包括:
按一先入先出(FIFO)顺序排列写I/O。
18.如权利要求16所述的计算机可读介质,其中将一写I/O队列间隔应用于CG的一LU成员包括:
将该写I/O队列间隔表现为从当前时间到该队列中最早的写I/O的时间戳的一时间间隔。
19.如权利要求16所述的计算机可读介质,进一步包括在该CG的每一个参与存储阵列之间交换一测试消息以确定一往返延迟。
20.如权利要求19所述的计算机可读介质,进一步包括使用该往返延迟确定该写I/O队列间隔的一最小时间间隔。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20302308P | 2008-12-18 | 2008-12-18 | |
US61/203,023 | 2008-12-18 | ||
PCT/US2009/000430 WO2010071661A1 (en) | 2008-12-18 | 2009-01-23 | Method for implementing multi-array consistency groups using a write queuing mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102239479A true CN102239479A (zh) | 2011-11-09 |
CN102239479B CN102239479B (zh) | 2014-06-04 |
Family
ID=42269097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980148789.2A Expired - Fee Related CN102239479B (zh) | 2008-12-18 | 2009-01-23 | 使用写队列机制实施多阵列一致性组的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8566281B2 (zh) |
EP (1) | EP2359251B1 (zh) |
JP (1) | JP5452615B2 (zh) |
KR (1) | KR101351222B1 (zh) |
CN (1) | CN102239479B (zh) |
TW (1) | TWI400651B (zh) |
WO (1) | WO2010071661A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182297A (zh) * | 2013-05-23 | 2014-12-03 | 国际商业机器公司 | 用于从主存储卷的故障中恢复的方法和系统 |
CN106250322A (zh) * | 2016-08-12 | 2016-12-21 | 华为技术有限公司 | 一种写数据的方法和装置 |
CN106648993A (zh) * | 2016-12-30 | 2017-05-10 | 杭州宏杉科技股份有限公司 | 一致性组快照管理的方法及装置 |
CN106716377A (zh) * | 2015-01-12 | 2017-05-24 | 斯特拉托斯卡莱有限公司 | 在分布式储存系统中的快照的同步 |
CN109726151A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 用于管理输入输出栈的方法、设备和计算机程序产品 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507841B2 (en) * | 2011-06-16 | 2016-11-29 | Sap Se | Consistent backup of a distributed database system |
US20140201149A1 (en) * | 2013-01-16 | 2014-07-17 | Ca, Inc. | Consistent bookmark |
US9569310B2 (en) * | 2013-02-27 | 2017-02-14 | Netapp, Inc. | System and method for a scalable crash-consistent snapshot operation |
US9110601B2 (en) | 2013-06-24 | 2015-08-18 | Sap Se | Backup lifecycle management |
US9990161B2 (en) * | 2014-12-17 | 2018-06-05 | Vmware, Inc. | Consistent replication of virtual computing instance data |
US10423609B1 (en) * | 2017-03-29 | 2019-09-24 | Amazon Technologies, Inc. | Consistent snapshot points in a distributed storage service |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US10929376B2 (en) * | 2018-03-22 | 2021-02-23 | Microsoft Technology Licensing, Llc | Performing transactions in distributed transactional memory systems |
US11144408B2 (en) * | 2019-10-24 | 2021-10-12 | EMC Holding Company, LLC | System and method for improving asynchronous replication performance in dual controller storage systems |
JP2024504171A (ja) * | 2021-01-25 | 2024-01-30 | ボリュームズ テクノロジーズ リミテッド | オペレーティングシステムベースのストレージ方法およびシステム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6243141B1 (en) * | 1997-05-06 | 2001-06-05 | Matsushita Electric Industrial Co., Ltd. | Video signal processing device |
US6708227B1 (en) * | 2000-04-24 | 2004-03-16 | Microsoft Corporation | Method and system for providing common coordination and administration of multiple snapshot providers |
JP4255699B2 (ja) * | 2003-01-20 | 2009-04-15 | 株式会社日立製作所 | 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置 |
US8037264B2 (en) * | 2003-01-21 | 2011-10-11 | Dell Products, L.P. | Distributed snapshot process |
US7127577B2 (en) * | 2003-01-21 | 2006-10-24 | Equallogic Inc. | Distributed snapshot process |
US7266652B1 (en) * | 2004-06-30 | 2007-09-04 | Emc Corporation | System and method for managing data consistency between different data volumes on one or more data storage systems in a data storage environment |
TWI252977B (en) * | 2004-11-22 | 2006-04-11 | Inventec Corp | Disk array data protection system and method thereof |
US20070033356A1 (en) * | 2005-08-03 | 2007-02-08 | Boris Erlikhman | System for Enabling Secure and Automatic Data Backup and Instant Recovery |
US7765187B2 (en) | 2005-11-29 | 2010-07-27 | Emc Corporation | Replication of a consistency group of data storage objects from servers in a data network |
US7577867B2 (en) * | 2006-02-17 | 2009-08-18 | Emc Corporation | Cross tagging to data for consistent recovery |
US7516352B2 (en) * | 2006-03-21 | 2009-04-07 | International Business Machines Corporation | Isolating a drive from disk array for diagnostic operations |
US8140785B2 (en) * | 2006-06-29 | 2012-03-20 | International Business Machines Corporation | Updating metadata in a logical volume associated with a storage controller for data units indicated in a data structure |
US7644204B2 (en) * | 2006-10-31 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | SCSI I/O coordinator |
JP4951326B2 (ja) * | 2006-12-12 | 2012-06-13 | 株式会社野村総合研究所 | I/o要求の処理順序を最適化するためのコンピュータプログラム |
US8290899B2 (en) * | 2007-03-28 | 2012-10-16 | Netapp, Inc. | Group stamping style asynchronous replication utilizing a loosely-accurate global clock |
US8255562B2 (en) * | 2008-06-30 | 2012-08-28 | International Business Machines Corporation | Adaptive data throttling for storage controllers |
-
2009
- 2009-01-23 KR KR1020117013941A patent/KR101351222B1/ko not_active IP Right Cessation
- 2009-01-23 CN CN200980148789.2A patent/CN102239479B/zh not_active Expired - Fee Related
- 2009-01-23 EP EP09833765.2A patent/EP2359251B1/en active Active
- 2009-01-23 JP JP2011542100A patent/JP5452615B2/ja not_active Expired - Fee Related
- 2009-01-23 WO PCT/US2009/000430 patent/WO2010071661A1/en active Application Filing
- 2009-01-23 US US13/139,462 patent/US8566281B2/en not_active Expired - Fee Related
- 2009-05-11 TW TW098115501A patent/TWI400651B/zh not_active IP Right Cessation
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182297A (zh) * | 2013-05-23 | 2014-12-03 | 国际商业机器公司 | 用于从主存储卷的故障中恢复的方法和系统 |
CN104182297B (zh) * | 2013-05-23 | 2017-10-13 | 国际商业机器公司 | 用于从主存储卷的故障中恢复的方法和系统 |
CN106716377A (zh) * | 2015-01-12 | 2017-05-24 | 斯特拉托斯卡莱有限公司 | 在分布式储存系统中的快照的同步 |
CN106716377B (zh) * | 2015-01-12 | 2021-06-25 | 迈络思科技有限公司 | 在分布式储存系统中的快照的同步 |
CN106250322A (zh) * | 2016-08-12 | 2016-12-21 | 华为技术有限公司 | 一种写数据的方法和装置 |
CN106250322B (zh) * | 2016-08-12 | 2019-11-19 | 华为技术有限公司 | 一种写数据的方法和装置 |
CN106648993A (zh) * | 2016-12-30 | 2017-05-10 | 杭州宏杉科技股份有限公司 | 一致性组快照管理的方法及装置 |
CN106648993B (zh) * | 2016-12-30 | 2019-07-19 | 杭州宏杉科技股份有限公司 | 一致性组快照管理的方法及装置 |
CN109726151A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 用于管理输入输出栈的方法、设备和计算机程序产品 |
CN109726151B (zh) * | 2017-10-27 | 2022-11-08 | 伊姆西Ip控股有限责任公司 | 用于管理输入输出栈的方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI400651B (zh) | 2013-07-01 |
EP2359251B1 (en) | 2014-03-12 |
KR101351222B1 (ko) | 2014-01-13 |
JP5452615B2 (ja) | 2014-03-26 |
EP2359251A1 (en) | 2011-08-24 |
KR20110097846A (ko) | 2011-08-31 |
US8566281B2 (en) | 2013-10-22 |
TW201025128A (en) | 2010-07-01 |
EP2359251A4 (en) | 2013-02-20 |
CN102239479B (zh) | 2014-06-04 |
WO2010071661A1 (en) | 2010-06-24 |
JP2012513061A (ja) | 2012-06-07 |
US20110246423A1 (en) | 2011-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102239479B (zh) | 使用写队列机制实施多阵列一致性组的方法 | |
CN105389230B (zh) | 一种结合快照技术的持续数据保护系统及方法 | |
US20140208012A1 (en) | Virtual disk replication using log files | |
JP4800031B2 (ja) | ストレージシステム及びスナップショット管理方法 | |
US7197615B2 (en) | Remote copy system maintaining consistency | |
US8521694B1 (en) | Leveraging array snapshots for immediate continuous data protection | |
US9043637B2 (en) | Failure recovery method in information processing system and information processing system | |
CN101061467B (zh) | 远程存储数据副本 | |
JP4993913B2 (ja) | 記憶制御装置及びそのデータ管理方法 | |
CN101453489B (zh) | 一种网络附加存储装置及其数据备份和数据恢复方法 | |
US9335931B2 (en) | System and method for making snapshots of storage devices | |
JP2007286860A (ja) | データ転送方法及び情報処理装置 | |
CN102594849A (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
WO2007095456A2 (en) | Continuous data protection of block-level volumes | |
JP2013509646A (ja) | メタデータ仮想ハードドライブおよび差分仮想ハードドライブを使用するバックアップ | |
CN114637475A (zh) | 一种分布式存储系统控制方法、装置及可读存储介质 | |
CN103197988A (zh) | 一种数据备份、恢复的方法、设备和数据库系统 | |
CN101441582A (zh) | 计算机数据对象的备份和恢复方法及实现该方法的系统和程序产品 | |
WO2015054897A1 (zh) | 数据存储方法、数据存储装置和存储设备 | |
CN105589887A (zh) | 分布式文件系统的数据处理方法及分布式文件系统 | |
JP7215971B2 (ja) | 記憶機器のデータ位置の処理方法及び処理装置、コンピュータ機器並びにコンピュータ読み取り可能な記憶媒体 | |
CN101945131A (zh) | 一种基于存储虚拟化的数据迁移方法 | |
CN110377223A (zh) | 数据再同步 | |
US11809385B1 (en) | Efficient data backup in a distributed storage system | |
WO2014158166A1 (en) | Address range transfer from first node to second node |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160715 Address after: Singapore Singapore Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd. Address before: California, USA Patentee before: LSI Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140604 Termination date: 20160123 |
|
EXPY | Termination of patent right or utility model |