CN1886743A - 对多存储设备的虚拟排序的写 - Google Patents
对多存储设备的虚拟排序的写 Download PDFInfo
- Publication number
- CN1886743A CN1886743A CNA2004800355554A CN200480035555A CN1886743A CN 1886743 A CN1886743 A CN 1886743A CN A2004800355554 A CNA2004800355554 A CN A2004800355554A CN 200480035555 A CN200480035555 A CN 200480035555A CN 1886743 A CN1886743 A CN 1886743A
- Authority
- CN
- China
- Prior art keywords
- data
- storage device
- memory device
- groove
- local memory
- 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.)
- Pending
Links
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
- G06F11/2074—Asynchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
排序数据写包括一组主存储设备(51)中的至少部分接收第一多个数据写,使得该组主存储设备的周期切换,其中第一多个数据写与该组中每一主存储设备上的特定周期相关联;及该组主存储设备的至少部分在开始周期切换之后接收第二多个写,其中所有第二多个写与每一主存储设备(51)上不同于前述特定周期的周期相关联。在开始周期切换之后开始的向该组的写可能直到周期切换已结束之后仍未完成。将在数据块(52)中提供的数据恢复到多个辅助存储设备(62)包括,对于每一辅助存储设备,放弃其所有数据尚未被接收的数据相应数据块,及对每一辅助存储设备,恢复数据块(56),恢复到多个辅助存储设备的所有数据块对应于提供数据给多个辅助存储设备的主存储设备的传输周期。
Description
发明背景
1.技术领域
本发明涉及计算机存储设备,特别是涉及在存储设备之间传输数据的领域。
2.背景技术
主处理机系统可使用存储设备保存和检索数据,存储设备包含多个主机接口装置(主机适配器)、磁盘驱动器、及磁盘接口装置(磁盘适配器)。这样的存储设备可由麻萨诸塞州Hopkinton的伊姆西公司提供,且其在授权给Yanai等的美国专利5,206,939、授权给Galtzur等的美国专利5,778,394、授权给Vishlitzky等的美国专利5,845,147、及授权给Ofek等的美国专利5,857,208中公开。主机系统通过多个随其提供的通道访问存储设备。主机系统通过通道提供数据和访问控制信息给存储设备,存储设备也通过通道提供数据给主机系统。主机系统不直接寻址存储设备的磁盘驱动器,而是访问对主机系统表现为多个逻辑磁盘机的装置。逻辑磁盘机可以也可不对应于实际的磁盘驱动器。允许多个主机系统访问单个存储设备将允许主机系统共享保存于其中是数据。
在某些情形下,可能希望将数据从一个存储设备复制到另一存储设备。例如,如果主机写数据到第一存储设备,则可能希望将该数据复制到位于不同位置的第二存储设备,使得当致使第一存储设备不能工作的灾难出现时主机(或另一主机)可使用第二存储设备的数据恢复运行。这样的性能可由麻萨诸塞州Hopkinton的伊姆西公司提供的远程数据镜像(RDF)产品提供。具有RDF功能的第一存储设备(标注为“主存储设备”或“R1”)连接到主机。一个或多个其它存储设备(称为“辅助存储设备”或“R2”)接收由主机写到主存储设备的数据的拷贝。主机与主存储设备直接相互作用,但主存储设备的任何数据变化均使用RDF自动提供给一个或多个辅助存储设备。主和辅助存储设备可由数据链路连接,数据链路如ESCON链路、光纤通道链路、和/或吉比特以太网链路。RDF功能可使用在每一存储设备处提供的RDF适配器(RA)而得以促进。
RDF允许同步数据传输,其中在数据从主机写到主存储设备之后,该数据通过使用RDF从主存储设备传输到辅助存储设备,由辅助存储设备向主存储设备确认数据的接收,主存储设备接下来将写确认提供回主机。因此,在同步模式中,主机不从主存储设备接收写确认,直到对辅助存储设备的RDF传输已被完成并由辅助存储设备确认为止。
同步RDF系统的缺点在于每一写操作的等待时间将由于等待RDF传输的确认而增加。在主存储设备和辅助存储设备之间距离较长时,该问题更加突出。由于传输延迟,进行RDF传输及随后在传输完成后等待确认回馈所需要的时延可能是不可接受的。
也可能以半同步方式使用RDF,在这种情况下,数据从主机写到主存储设备,主存储设备立即确认写,接着,同时开始将数据传输到辅助存储设备的步骤。因此,对于单一数据传输,该方案克服了以同步方式使用RDF的一些缺点。然而,对于数据完整性目的,半同步传输不允许主存储设备传输数据给辅助存储设备,直到先前的传输由辅助存储设备确认为止。因此,与以同步方式使用RDF相关联的瓶颈在于由一次重复造成的简单的延迟,因为第二数据量的传输不会发生,直到先前数据的传输为辅助存储设备确认为止。
另一种可能是使主机以异步方式写数据到主存储设备并使主存储设备在背后将数据复制到辅助存储设备。后台复制包括顺序轮转通过主存储设备的每一磁轨,当确定特定的数据块自上次复制该数据块后已被修改时,数据块被从主存储设备传输到辅助存储设备。尽管该机制可减轻与同步及半同步数据传输方式相关的等待时间问题,但困难依然存在,因为不能保证主存储设备和辅助存储设备之间的数据一致性。如果发生问题,如主系统不能工作,则辅助系统可能以使得数据不可用的无序变化结束工作。
所提出的解决该问题的方案为对称自动复制(SAR)方法,其于未决美国专利申请10/224,918和10/225,021中描述,两申请均于2002年8月21日申请。SAR使用可镜像标准逻辑设备的设备(BCV)。BCV设备还可在镜像后从其标准逻辑设备分离并可在分离后重新同步(即重新建立为镜像)到标准逻辑设备。此外,BCV可使用RDF进行远程镜像,在这种情况下,当BCV从相应的标准逻辑设备分离时,BCV可将对其做出的数据变化(当BCV用作镜像时)传播给BCV远程镜像。
然而,使用SAR方法要求大量连续分离和重新同步BCV设备的辅助操作。SAR方法还使用主机控制和管理,其依赖于控制主机运行。此外,SAR方法的实际实施的轮转时间为20-30分钟,因此,当RDF链路和/或主设备出故障时,可能丢失的数据量为20-30分钟的数据价值。
因此,希望具有这样一种RDF系统,其具有上述不同技术中的每一种的部分有益品质,同时还减少了缺点。该系统对每一主机写可呈现低等待时间性,不管主设备和辅助设备之间的距离的长短如何,并可在出现故障时提供辅助设备的一致性(可复原性)。
发明内容
根据本发明,排序数据写包括一组主存储设备中的至少部分接收第一多个数据写,使得该组主存储设备的周期切换,其中第一多个数据写与该组中每一主存储设备上的特定周期相关联;及该组主存储设备的至少部分在开始周期切换之后接收第二多个写,其中所有第二多个写与每一主存储设备上不同于前述特定周期的周期相关联。在开始周期切换之后开始的向该组的写可能直到周期切换已结束之后仍未完成。排序数据写还可包括,在周期切换结束之后,该组的每一主存储设备开始将第一多个写传输给相应的辅助存储设备。排序数据写还可包括,在该组的每一主存储设备完成将第一多个写传输给相应的辅助存储设备之后,每一主存储设备发送消息给相应的辅助存储设备。排序数据写还可包括,将第一多个数据写提供给该组主存储设备的缓存槽。接收第一多个数据写还可包括从主机接收多个数据写。主机可导致周期切换。排序数据写还可包括等待预定的时间,确定存储设备的该组主存储设备是否均已准备好切换,及,对该组的每一主存储设备,向其发送第一指令以引起周期切换。发送导致周期切换的指令还可使得第一指令之后开始的写在接收到第二指令之前不结束。排序数据写还可包括,在将第一指令发送给该组的所有主存储设备之后,向所有主存储设备发送第二指令以允许写结束。
根据本发明,排序对一组主存储设备的数据写的计算机软件包括使得该组主存储设备的周期切换的可执行代码,其中第一多个数据写与该组中每一主存储设备上的特定周期相关联;及对于在开始周期切换之后提供的第二多个写,将所有第二多个写与每一主存储设备上不同于前述特定周期的周期相关联的可执行代码。在开始周期切换之后开始的向该组的写可能直到周期切换已结束之后仍未完成。计算机软件还可包括,在周期切换结束之后,使该组的每一主存储设备开始将第一多个写传输给相应的辅助存储设备的可执行代码。计算机软件还可包括,在该组的每一主存储设备完成将第一多个写传输给相应的辅助存储设备之后,使每一主存储设备发送消息给相应的辅助存储设备的可执行代码。计算机软件还可包括,将第一多个数据写提供给该组主存储设备的缓存槽的可执行代码。第一多个数据写可来自主机。主机可运行导致周期切换的可执行代码。导致周期切换的可执行代码可包括等待预定时间的可执行代码,确定存储设备的该组主存储设备是否均已准备好切换的可执行代码,及向该组的每一主存储设备发送第一指令以引起周期切换的可执行代码。发送导致周期切换的指令的可执行代码还可使得第一指令之后开始的写在接收到第二指令之前不结束。计算机软件还可包括,在将第一指令发送给该组的所有主存储设备之后,向所有主存储设备发送第二指令以允许写结束的可执行代码。
附图说明
图1为连同在此描述的系统使用的主机、本地存储设备及远程数据存储设备的示意图。
图2为连同在此描述的系统使用的主机、本地存储设备及远程数据存储设备之间的数据流的示意图。
图3为根据在此描述的系统,示出用于构建和利用本地存储设备上的数据块的项目的示意图。
图4示出了连同在此描述的系统使用的槽的数据结构。
图5为根据在此描述的系统,响应于主机的写,主机适配器(HA)的操作流程图。
图6为根据在此描述的系统,将数据从本地存储设备传输到远程存储设备的流程图。
图7为根据在此描述的系统,示出用于构建和利用远程存储设备上的数据块的项目的示意图。
图8为根据在此描述的系统,由远程存储设备执行的、与从本地存储设备接收提交指示符有关的步骤的流程图。
图9为根据在此描述的系统,将所传输的数据保存在远程存储设备中的流程图。
图10为根据在此描述的系统,所执行的与本地存储设备增加序号有关的步骤的流程图。
图11为根据在此描述的系统的另一实施例,用于构建和利用本地存储设备上的数据块的项目的示意图。
图12为根据在此描述的系统的另一实施例,响应于主机的写,主机适配器(HA)的操作流程图。
图13为根据在此描述的系统的另一实施例,将数据从本地存储设备传输到远程存储设备的流程图。
图14为根据在此描述的系统,多个本地和远程存储设备与主机的示意图。
图15为连同在此描述的系统使用的多盒模式(multi-box mode)表。
图16为根据在此描述的系统修改多盒模式表的流程图。
图17为根据在此描述的系统,主机转换周期的流程图。
图18为根据在此描述的系统连同本地存储设备递增序号所执行的步骤的流程图。
图19为根据在此描述的系统,将数据从本地存储设备传输到远程存储设备的流程图。
图20为根据在此描述的系统的另一实施例,将数据从本地存储设备传输到远程存储设备的流程图。
图21为根据在此描述的系统,从远程存储设备提供活动态空指示符消息给相应的本地存储设备的流程图。
图22为根据在此描述的系统,示出多个本地和远程存储设备与多个主机的示意图。
图23为根据在此描述的系统,由远程存储设备执行的与数据恢复有关的处理的流程图。
图24为根据在此描述的系统,由主机执行的与数据恢复有关的处理的流程图。
具体实施方式
参考图1,图表20示出了主机22、本地存储设备24和远程存储设备26之间的关系。主机22经主机适配器(HA)28从本地存储设备读数据及写数据到本地存储设备,主机适配器便于主机22和本地存储设备24之间的连接。尽管图表20仅示出了一个主机22和一个HA28,本领域一般技术人员可以意识到的是,可使用多个HA,且一个或多个HA可有一个或多个主机与其连接。
来自本地存储设备24的数据经RDF链路29复制到远程存储设备26以使远程存储设备26上的数据与本地存储设备24上的数据一样。尽管只示出了一个链路29,在存储设备24、26之间及在存储设备24、26之一或二者与其它存储设备(未示出)之间具有另外的链路是可能的。注意,在从本地存储设备24到远程存储设备26的数据传输之间可能有时间延迟,从而远程存储设备26可能,在某些时间点,某些数据与本地存储设备上的数据不一样。使用RDF的通信在美国专利5,742,792中描述,其通过引用组合于此。
本地存储设备24包括第一多个RDF适配器单元(RA)30a、30b、30c,远程存储设备26包括第二多个RA32a-32c。RA30a-30c、32a-32c均连接到RDF链路29且均类似于主机适配器28,但用于在存储设备24、26之间传输数据。连同RA30a-30c、32a-32c使用的软件将在下文中详细描述。
存储设备24、26可包括一个或多个磁盘,每一磁盘包含保存在每一存储设备24、26上的数据的不同部分。图1示出了存储设备24包括多个磁盘33a、33b、33c,及存储设备26包括多个磁盘34a、34b、34c。在此描述的RDF功能可被应用,使得本地存储设备24的磁盘33a-33c的至少一部分的数据可使用RDF复制到远程存储设备26的磁盘34a-34c的至少一部分中。存储设备24、26的其它数据不在存储设备24、26之间进行复制是可能的,因而不完全相同。
磁盘33a-33c中的每一个被连接到对应的磁盘适配器单元(DA)35a、35b、35c,其提供数据给磁盘33a-33c中的对应磁盘并从磁盘33a-33c中的对应磁盘接收数据。类似地,远程存储设备26的多个DA36a、36b、36c均用于提供数据给磁盘34a-34c中的对应磁盘并从磁盘34a-34c中的对应磁盘接收数据。在本地存储设备24的DA35a-35c、HA28和RA30a-30c之间存在内部数据通路。类似地,在远程存储设备的DA36a-36c和RA32a-32c之间也存在内部数据通路。注意,在其它实施例中,DA服务于一个以上的磁盘是可能的,且一个以上的DA服务于一个磁盘也是可能的。
本地存储设备24还包括全局存储器37,其可用于帮助在DA35a-35c、HA28和RA30a-30c之间的数据传输。存储器37可包含将由DA35a-35c、HA28和RA30a-30c中的一个或多个执行的任务,及包含用于从磁盘33a-33c中的一个或多个取回的数据的高速缓存器。类似地,远程存储设备26包括全局存储器38,其可包含将由DA36a-36c和RA32a-32c中的一个或多个执行的任务,及包含用于从磁盘34a-34c中的一个或多个取回的数据的高速缓存器。存储器37、38的使用将在下文中详细描述。
本地存储设备24中对应于磁盘33a-33c的存储空间可被再分为多个卷或逻辑设备。逻辑设备可以也可不对应于磁盘33a-33c的物理存储空间。因而,例如,磁盘33a可包含多个逻辑设备,或者单个逻辑设备可横跨两个磁盘33a、33b。类似地,远程存储设备26的包括磁盘34a-34c的存储空间可被再分为多个卷或逻辑设备,其中每一逻辑设备可以也可不对应于磁盘34a-34c中的一个或多个。
假设在本地存储设备24和远程存储设备26的部分之间进行映射的RDF包括,在远程存储设备26上建立逻辑设备,其是对本地存储设备24上的逻辑设备的远程镜像。主机22从本地存储设备24上的逻辑设备读数据并写数据到该逻辑设备,且RDF映射使得已修改的数据将通过使用RA30a-30c、32a-32c和RDF链路而从本地存储设备24传输到远程存储设备26。在稳态工作情况下,远程存储设备26上的逻辑设备包含的数据与本地存储设备24上的逻辑设备的数据完全一样。本地存储设备24上为主机22所访问的逻辑设备被称为“R1卷”(或“R1”),而远程存储设备26上包含R1卷上的数据的拷贝的逻辑设备被称为“R2卷”(或“R2”)。因此,主机从R1卷读数据并将数据写到R1卷,及RDF处理从R1卷到R2卷的数据的自动复制和更新。
参考图2,其示出了从主机22到本地存储设备24和远程存储设备26的数据通路。如本地存储设备24的数据元51所示,从主机22写到本地存储设备24的数据被本地保存。由主机22写到本地存储设备24的数据还被本地存储设备24保持并由本地存储设备24经链路29发送给远程存储设备26。
在在此描述的系统中,主机22的每一数据写(如记录、多个记录、磁轨等的写)均被分配以序号。序号可在与写相关联的适当数据字段中提供。在图2中,主机22的写被示为被分配以序号N。由主机执行的、被分配以序号N的所有写均被收集在一个数据块52中。数据块52代表由主机22执行的、几乎在同时发生的多个单独的写。
通常,本地存储设备24积聚一个序号的数据块,同时将先前积聚的数据块(具有在前的序号)传输给远程存储设备26。因而,当本地存储设备24正积聚来自主机的、被分配以序号N的写时,已发生的、在前序号(N-1)的写由本地存储设备24经链路29传输给远程存储设备26。数据块54代表来自主机22的、被分配以序号N-1的、尚未传输给远程存储设备26的写。
远程存储设备26从对应于被分配以序号N-1的写的数据块接收数据并为具有序号N-1的主机写建立新的数据块56。数据可使用适当的RDF协议进行传输,其确认跨链路29发送的数据。当远程存储设备26已从数据块54接收所有的数据时,本地存储设备24发送提交信息给远程存储设备26以提交被分配以N-1序号的所有数据,其对应于数据块56。通常,一旦对应于特定序号的数据块被提交,则数据块可被写到逻辑存储设备。这在图2中用数据块58图示,其对应于被分配以序号N-2(即,主机22到本地存储设备24的写正使用的当前序号之前的第二个序号)的写。在图2中,数据块58被示出为正被写到数据元62,其代表远程存储设备26的磁盘存储。因而,远程存储设备26正接收和积聚对应于序号N-1的数据块56,同时对应于在前序号(N-2)的数据块58正被写到远程存储设备26的磁盘存储,如数据元62所示。在一实施例中,数据块58的数据因为写(但不是必需立即写)而被标记,而数据块56的数据则未被标记。
因此,在运行中,主机写数据到本地存储设备24,该数据被本地保存在数据元51中并被积聚在数据块52中。一旦特定序号的所有数据均已被积聚(在本文的其它地方描述),本地存储设备24递增序号。对应于小于当前序号的序号的数据块54的数据经链路29从本地存储设备24传输到远程存储设备26。数据块58对应于已由本地存储设备24通过发送消息给远程存储设备26进行提交的序号的数据。数据块58的数据被写到远程存储设备26的磁盘存储。
应注意的是,在数据块52、54、56、58特定之一内的写不是必须被排序。然而,如本文中其它地方所详细描述的,在开始对应于序号N-1的数据块54、56的任何写之前,对应于序号N-2的数据块58的每一写均已开始。此外,在开始对应于序号N的数据块52的任何写之前,对应于序号N-1的数据块54、56的每一写均已开始。因此,如果本地存储设备24和远程存储设备26之间通信失败,远程存储设备26可简单地结束最后提交的数据块(在图2的例子中为数据块58)的写,并可被保证:远程存储设备26处的数据的状态被排序,其中数据元62包含在某一时间点之前开始的所有写且不包含该时间点之后开始的写。因而,R2总是包含R1的即时拷贝且从R2设备重新建立一致的映射是可能的。
参考图3,图表70示出了用于构建和保持数据块52、54的项目。标准逻辑设备72包含由主机22写入的数据并对应于图2的数据元51和图1的磁盘33a-33c。标准逻辑设备72包含由主机22写到本地存储设备24的数据。
两个指针的链表74、76与标准逻辑设备72一起使用。链表74、76对应于可被保存在本地存储设备24的存储器37中的数据。链表74包含多个指针81-85,每一指针指向与本地存储设备24一起使用的高速缓存器88的槽。类似地,链表76包含多个指针91-95,每一指针指向高速缓存器88的槽。在一些实施例中,高速缓存器88可被提供在本地存储设备24的存储器37中。高速缓存器88包含多个缓存槽102-104,其可连同向标准逻辑设备72写一起使用,同时,可连同链表74、76一起使用。
链表74、76中的每一个均可用于数据块52、54之一,使得链表74可对应于序号N的数据块52,而链表76可对应于序号N-1的数据块54。因而,当数据由主机22写到本地存储设备24时,数据被提供给高速缓存器88,在某些情况下(在本文其它地方描述),链表74的适当指针被产生。应注意,数据将不会从高速缓存器88去除,直到数据被降级(destage)到标准逻辑设备72且数据不再被链表74的任一指针81-85指向为止,如本文其它地方所述。
在在此的实施例中,链表74、76之一被视为“活动态”,而另一个被视为“非活动态”。因此,当序号N为偶数时,链表74可以是活动态,而链表76是非活动态。链表74、76中的活动态链表处理来自主机22的写,而非活动态链表对应于正从本地存储设备24传输到远程存储设备26的数据。
在由主机22写的数据通过使用链表74、76中的活动态链表进行积聚时(对于序号N),对应于链表74、76中的非活动态链表的数据(对于在前的序号N-1)被从本地存储设备24传输到远程存储设备26。RA30a-30c使用链表74、76确定数据从本地存储设备24传输到远程存储设备26。
一旦对应于链表74、76之一中的指针的特定指针的数据已被传输给远程存储设备26,指针中的特定指针可从链表74、76中的适当链表去除。此外,假如槽中的数据不再因其它目的需要(如降级到标准逻辑设备72),数据还可被标记以从高速缓存器88去除(即槽可被返回到槽池以用于随后的、不相干的使用)。一机制可被用于确保数据不被从高速缓存器88去除,直到所有设备不再使用该数据为止。这样的机制在1996年7月16日授予的美国专利5,537,568、及2001年7月7日申请的美国专利申请09/850,551中有所描述,二者均通过引用组合于此。
参考图4,槽120,与高速缓存器88的槽102-104之一类似,包括标题122和数据124。标题122对应于系统用以管理槽120的内务信息。数据124为来自磁盘的、正被(暂时)保存在槽120中的相应数据。标题122中的信息包括指回到磁盘的指针、时间标签等。
标题122还包括与在此描述的系统一起使用的缓存标签126。在在此的实施例中,缓存标签126为8个字节。其中两个字节为“密码”,其表明槽120是否正由在此描述的系统使用。在其它实施例中,密码可以是一个字节,而其后的字节用于填充。如本文其它地方所描述的,等于特定值的两字节密码(或一字节)表明槽120被链表74、76的至少一项指向。不等于特定值的密码表明槽120未被链表74、76的项指向。密码的使用将在本文其它地方描述。
缓存标签126还包括一两字节字段,其指明槽120的数据124的序号(如N、N-1、N-2等)。如本文其它地方所描述的,缓存标签126的序号字段可用于帮助在此描述的处理。缓存标签126的其余四个字节可用于指针,如本文其它地方所描述的那样。当然,序号的两个字节和指针的四个字节仅在密码等于特定值时是有效的,其中特定值表明槽120被列表74、76之一中的至少一项指向。
参考图5,流程图140示出了连同主机22执行写操作,由HA28执行的步骤。当然,当主机22执行写时,处理出现以用一般方式处理写,而不管数据是否是R1/R2 RDF组的一部分。例如,当主机22对磁盘的一部分写数据时,对缓存槽的写发生,其最后被降级到磁盘。缓存槽或可以是新的缓存槽,或可以是已经存在的、连同先前对同一磁轨进行的读和/或写操作产生的缓存槽。
处理开始于第一步骤142,其中对应于写的槽被锁定。在在此的实施例中,高速缓存器88的每一槽102-104对应于标准逻辑设备上的数据磁道。在步骤142锁定槽阻止另外的过程在HA28执行的、对应于流程图140的步骤的处理期间在相应的槽上运行。
在步骤142之后是步骤144,其中序号N的值被设定。如本文别处所描述的,在步骤144获得的序号的值在HA28执行的整个写操作期间均被保持,同时槽被锁定。如本文别处所描述的,序号被分配给每一写以设定写属于数据块52、54中的哪一个。主机22执行的写被分配以当前序号。单一写操作始终保持同一序号是有用的。
在步骤144之后是测定步骤146,其确定缓存槽的密码字段是否有效。如上所述,在此描述的系统将密码字段设定为预先确定的值以表明缓存槽已经在指针的链表74、76之一中。如果在测定步骤146确定密码字段无效(表明槽是新的且没有列表74、76的指针指向该槽),则控制从步骤146转到步骤148,新槽的缓存标签被设定,其中将密码设定为预先确定的值、将序号字段设定为N、将指针字段设定为空。在其它实施例中,指针字段可被设定为指向槽本身。
在步骤148之后是步骤152,指向新槽的指针被添加到指针列表74、76中的活动态列表。在在此的一实施例中,列表74、76为循环双向链表,且新指针被以传统方式添加到循环双向链表中。当然,其它适当的数据结构也可用于管理列表74、76。在步骤152之后是步骤154,其中标志被设定。在步骤154,RDF_WP标志(RDF写悬挂标志)被设定以表明该槽需要通过使用RDF传输给远程存储设备26。此外,在步骤154,IN_CACHE标志被设定以表明该槽需要被降级到标准逻辑设备72。在步骤154之后是步骤156,由主机22和HA28写的数据被写到该槽中。在步骤156之后是步骤158,该槽被解锁。在步骤158之后,处理结束。
如果在测定步骤146确定槽的密码字段有效(表明该槽已经被列表74、76的至少一指针指向),则控制从步骤146转到测定步骤162,其确定该槽的序号字段是否等于当前序号N。应注意,对于具有有效密码的槽的序号字段有两种有效的可能性。序号字段等于N(当前序号)是可能的。这在槽对应于具有序号N的在前写的情况下发生。另一种可能性是序号字段等于N-1。这在槽对应于具有序号N-1的在前写的情况下发生。序号字段的任何其它值均是无效的。因此,对于某些实施例,在步骤162中包括错误/有效性检查或在单独的步骤中进行错误/有效性检查是可能的。这样的错误可以任何适当的方式处理,其可包括提供消息给用户。
如果在测定步骤162确定槽的序号字段中的值等于当前序号N,则不要求特殊的处理且控制从步骤162转到步骤156,如上所述,数据被写到槽中。否则,如果序号字段的值为N-1(唯一另外的有效值),则控制从步骤162转到步骤164,新槽被获得。在步骤164获得的新槽可用于保存正被写的数据。
在步骤164之后是步骤166,来自旧槽的数据被复制到小步骤164获得的新槽。应注意,所复制的数据包括RDF_WP标志,其应在该槽被第一次创建时已被设定(步骤154)。在步骤166之后是步骤168,新槽的缓存标签被设定,其将密码字段设定为适当的值、将序号字段设定为当前序号N、及将指针字段设定为指向旧槽。在步骤168之后是步骤172,指向新槽的指针被添加到链表74、76中的活动态链表。在步骤172之后是步骤156,如上所述,数据被写到槽中,在该例子中,其是新槽。
参考图6,流程图200示出了连同RA30a-30c扫描链表72、74中的非活动态链表所执行的步骤以将RDF数据从本地存储设备24传输到远程存储设备26。如上所述,当N周期正由主机使用链表72、74中的活动态链表写到R1设备时,链表72、74中的非活动态链表指向对应于R1设备的N-1周期的槽。
处理开始于第一步骤202,其确定在列表72、74的非活动态表中是否有任何项。当数据被传输时,相应的项被从列表72、74的非活动态列表中去除。此外,新的写被提供给列表72、74中的活动态列表且通常不提供给列表72、74中的非活动态列表。因此,列表72、74中的非活动态列表在某些时间不包含数据是可能的(也是所希望的,如本文别处所述的)。如果在步骤202确定没有数据将被传输,则列表72、74中的非活动态列表继续被轮询直到数据可用为止。用于发送的数据变得可用同时周期切换(在本文别处描述),其中列表72、74中的非活动态列表变成列表72、74中的活动态列表,反之亦然。
如果在步骤202确定有数据可用于发送,则控制从步骤202转到步骤204,其中槽被验证为是正确的。在步骤204执行的处理是随意的“精神健全检查”,其可包括验证密码字段是正确的及验证序号字段是正确的。如果在槽中有不正确的(意外的)数据,则可执行错误处理,其可包括通知用户该错误及可能的错误校正处理。
在步骤204之后是步骤212,数据以传统方式经RDF进行发送。在在此的一实施例中,整个槽均未被传输。而是,只有槽内具有适当的镜像位设置(表明记录已改变)的记录被传输给远程存储设备26。然而,在其它实施例中,则可能传输整个槽,假如远程存储设备26只写对应于具有适当镜像位设置的数据并忽略该磁轨的其它数据,其可能是也可能不是有效的。在步骤212之后是测定步骤214,其确定被传输的数据是否已被R2设备确认。如果没有,则数据被按照从步骤214回到步骤212的流程的指示重新发送。在其它实施例中,不同的及更多有关的处理可用于发送数据及确认其接收。这样的处理可包括错误报告及在一定数量的发送数据的努力已失败之后执行的另外的处理。
一旦在测定步骤214确定数据已被成功发送,控制从步骤214转到步骤216以清除RDF_WP标志(因为数据已经RDF成功发送)。在步骤216之后是测定步骤218,其确定该槽是否是连同向已经具有列表72、74的非活动态列表中的现存项的槽进行写而创建的复制槽。这种可能性已在上面连同步骤162、164、166、168、172进行描述。如果在测定步骤218确定该槽是复制槽,则控制从步骤218转到步骤222,该槽被返回到可用的槽池中(将被重新使用)。此外,槽还可被老化(或具有某些应用于其的其它适当机制)以在其它槽之前提供用于立即的重新使用,因为该槽中提供的数据对于任何其它目的均不是有效的。在步骤222或步骤218(如果槽不是复制槽)之后是步骤224,槽的标题的密码字段被清零,使得当槽被重新使用时,在图5的步骤146的测定可正确地将该槽分类为新槽。
在步骤224之后是步骤226,列表72、74的非活动态列表中的项被移除。在步骤226之后,控制转回到步骤202,如上所述,其确定在列表72、74的非活动态列表上是否有另外的项对应于需要被传输的数据。
参考图7,图表240示出了远程存储设备26所使用的数据块56、58的产生和处理。由远程存储设备26接收的数据经链路29提供给远程存储设备26的高速缓存器242。高速缓存器242可被提供在远程存储设备26的存储器38中。高速缓存器242包括多个缓存槽244-246,每一缓存槽可被映射到标准逻辑存储设备252的磁轨。高速缓存器242类似于图3的高速缓存器88并可包含可被降级到远程存储设备26的标准逻辑存储设备252的数据。标准逻辑存储设备252对应于图2中所示的数据元62及图1中所示的磁盘34a-34c。
远程存储设备26还包含一对只缓存虚拟设备254、256。只缓存虚拟设备254、256对应可能保存在远程存储设备26的存储器38中的设备表。每一只缓存虚拟设备254、256的表的每一磁轨项(trackentry)或指向标准逻辑设备252的磁轨或指向高速缓存器242的槽。只缓存虚拟设备在2003年3月25日申请的、题为“CACHE-ONLY虚拟设备”的美国未决专利申请10/396,800中描述,其通过引用组合于此。
多个缓存槽244-246可与向标准逻辑设备252进行写一起使用,同时,也可与只缓存虚拟设备254、256一起使用。在在此的实施例中,只缓存虚拟设备254、256的每一磁轨表项包含一空值以表明该磁轨的数据被保存在标准逻辑设备252的对应磁轨上。否则,每一只缓存虚拟设备的磁轨表中的项包含指向高速缓存器242中的槽244-246之一的指针。
每一只缓存虚拟设备254、256对应于数据块56、58之一。因而,例如,只缓存虚拟设备254可对应于数据块56,而只缓存虚拟设备256可对应于数据块58。在在此的实施例中,只缓存虚拟设备254、256之一可被视为“活动态”,而只缓存虚拟设备254、256中的另一个可被视为“非活动态”。只缓存虚拟设备254、256中的非活动态虚拟设备可对应于正从本地存储设备24接收的数据(即数据块56),而只缓存虚拟设备254、256中的活动态虚拟设备对应于正被恢复(写)到标准逻辑设备252的数据。
来自本地存储设备24的、经链路29接收的数据可被放置在高速缓存器242的槽244-246之一中。只缓存虚拟设备254、256中的非活动态虚拟设备的相应指针可被设置为指向所接收的数据。随后的具有相同序号的数据可以类似的方式进行处理。在某一时间,本地存储设备24提供消息,其提交所有使用同一序号发送的数据。一旦特定序号的数据已被提交,只缓存虚拟设备254、256中的非活动态设备变成活动态,反之亦然。在这时,来自只缓存虚拟设备254、256的当前活动态设备的数据被复制到标准逻辑设备252,而只缓存虚拟设备254、256中的非活动态设备被用于接收从本地存储设备24传输给远程存储设备26的新数据(具有新的序号)。
当从只缓存虚拟设备254、256中的活动态设备移除数据时(在本文别处描述),只缓存虚拟设备254、256中的活动态设备中的对应项可被设为空值。此外,假如槽中的数据不再为其它目的所需要(如将被降级到标准逻辑设备252),数据还可从高速缓存器244中移除(即该槽被返回到空闲槽池中以供后用)。一机制可用于确保数据不从高速缓存器242中移除,直到所有镜像(包括只缓存虚拟设备254、256)均不再使用该数据为止。这样的机制在1996年7月16日授予的美国专利5,537,568及2001年7月7日申请的美国专利申请09/850,551中描述,二者均通过引用组合于此。
在本文别处讨论的一些实施例中,远程存储设备26可包含链表258、262,类似于本地存储设备24使用的链表74、76。链表258、262可包含这样的信息,其确定相应的只缓存虚拟设备254、256中已被修改的槽,其中列表258、262之一对应于只缓存虚拟设备254、256之一,及列表258、262中的另一列表对应于只缓存虚拟设备254、256中的另一个。如本文别处所描述的,列表258、262可用于帮助从只缓存虚拟设备254、256恢复数据到标准逻辑设备252中。
参考图8,流程图270示出了与处理用于序号提交的数据有关的、由远程存储设备26执行的步骤,其中所述数据由本地存储设备24传输给远程存储设备26。如本文别处所描述的,本地存储设备24定期递增序号。当其发生时,本地存储设备24结束在前序号的所有数据的传输并继而发送一用于在前序号的提交信息。
处理开始于第一步骤272,其接收提交。在步骤272之后是测定步骤274,其确定远程存储设备26的只缓存虚拟设备254、256中的活动态虚拟设备是否是空的。如本文别处所描述的,远程存储设备26的只缓存虚拟设备254、256中的非活动态虚拟设备用于积聚来自本地存储设备24的使用RDF发送的数据,而只缓存虚拟设备254、256中的活动态虚拟设备被恢复到标准逻辑设备252。
如果在测定步骤274确定只缓存虚拟设备254、256中的活动态虚拟设备不是空的,则控制从测定步骤274转到步骤276,其中,在执行进一步的处理之前只缓存虚拟设备254、256中的活动态虚拟设备的恢复被完成。从只缓存虚拟设备254、256中的活动态虚拟设备恢复数据将在本文别处详细描述。在处理提交并开始恢复下一序号的数据之前只缓存虚拟设备254、256中的活动态虚拟设备为空是有用的。
在步骤276之后或在步骤274之后(如果只缓存虚拟设备254、256中的活动态虚拟设备被确定为空)是步骤278,只缓存虚拟设备254、256中的活动态虚拟设备被使得为非活动态。在步骤278之后是步骤282,只缓存虚拟设备254、256中先前非活动态的虚拟设备(即在执行步骤278之前为非活动态的虚拟设备)被变成活动态。在步骤278、282交换活动态及非活动态只缓存虚拟设备254、256准备了只缓存虚拟设备254、256中的当前非活动态(及空)的虚拟设备以开始从本地存储设备24接收下一序号的数据。
在步骤282之后是步骤284,只缓存虚拟设备254、256中的活动态虚拟设备被恢复到远程存储设备26的标准逻辑设备252。将只缓存虚拟设备254、256中的活动态虚拟设备恢复到标准逻辑设备252将在下文中详细描述。然而,应注意,在一些实施例中,恢复过程在步骤284开始,但不必在步骤284就结束。在步骤284之后是步骤286,已从本地存储设备24发送到远程存储设备26的提交被确认回到本地存储设备24,使得本地存储设备24被通知:提交成功。在步骤286之后,处理结束。
参考图9,流程图300更详细地示出了图8的步骤276、284,其中远程存储设备26恢复只缓存虚拟设备254、256中的活动态虚拟设备。处理开始于第一步骤302,指针被设定为指向只缓存虚拟设备254、256中的活动态虚拟设备的第一槽。指针用于重复通过只缓存虚拟设备254、256中的活动态虚拟设备的每一磁轨表项,每一磁轨表项均被单独处理。在步骤302之后是测定步骤304,其确定只缓存虚拟设备254、256中的活动态虚拟设备的正被处理的磁轨是否指向标准逻辑设备252。如果是,则没有东西需要恢复。否则,控制从步骤304转到步骤306,只缓存虚拟设备254、256中的活动态虚拟设备的相应槽被锁定。
在步骤306之后是测定步骤308,其确定标准逻辑设备252的相应槽是否已经在远程存储设备26的高速缓存器中。如果是,则控制从测定步骤308转到步骤312,标准逻辑设备的槽被锁定。在步骤312之后是步骤314,来自只缓存虚拟设备254、256中的活动态虚拟设备的数据与用于标准逻辑设备252的高速缓存器中的数据合并。在步骤314合并数据包括用只缓存虚拟设备254、256中的活动态虚拟设备的新数据盖写标准逻辑设备的数据。应注意,在对记录级标志提供的实施例中,则可能简单地将新记录从只缓存虚拟设备254、256中的活动态虚拟设备或(OR)到高速缓存器中的标准逻辑设备252的记录。即,如果记录被交叉存取,则只需使用来自只缓存虚拟设备254、256中的活动态虚拟设备的已改变的记录,并将记录提供给标准逻辑设备252的缓存槽。在步骤314之后是步骤316,标准逻辑设备252的槽被解锁。在步骤316之后是步骤318,只缓存虚拟设备254、256中的活动态虚拟设备的正被处理的槽也被解锁。
如果在测定步骤308确定标准逻辑设备252的相应槽不在高速缓存器中,则控制从测定步骤308转到步骤322,改变标准逻辑设备252的槽的磁轨项以表明标准逻辑设备252的槽在高速缓存器中(如可设置IN_CACHE标志)并需要被降级。如本文别处所述,在一些实施例中,只有具有适当镜像位设置的磁轨的记录才需要被降级。在步骤322之后是步骤324,可设置磁轨的标志以表明该磁轨的数据在高速缓存器中。
在步骤324之后是步骤326,标准逻辑设备252的槽指针被改变为指向高速缓存器中的槽。在步骤326之后是测定步骤328,其确定在步骤322、324、326执行的操作是否已成功。在某些情况下,一称为“比较和交换”的操作可用于执行步骤322、324、326。如果这些操作因任何原因而没有成功,则控制从步骤328转回到步骤308以重新检查标准逻辑设备252的相应磁轨是否在高速缓存器中。否则,如果在测定步骤328确定先前的操作均已成功,则控制从测定步骤328转到步骤318,如上所述。
在步骤318之后是测定步骤332,其确定只缓存虚拟设备254、256中的活动态虚拟设备的缓存槽(其正被恢复)依然在使用。在某些情况下,只缓存虚拟设备254、256中的活动态虚拟设备的槽可能依然正由另一镜像使用。如果在测定步骤332确定只缓存虚拟设备的槽正由另一镜像使用,则控制从测定步骤332转到步骤334,释放槽以为其它过程使用(如恢复到可用槽池中,如本文别处所述)。在步骤334之后是步骤336,指向下一槽以处理只缓存虚拟设备254、256中的活动态虚拟设备的下一槽。应注意,步骤336还可从测定步骤332到达,如果在步骤332确定只缓存虚拟设备254、256中的活动态虚拟设备仍然由另一镜像使用的话。应注意,如果在步骤304确定对于正处理的槽,只缓存虚拟设备254、256中的活动态虚拟设备指向标准逻辑设备252,步骤336也可从测定步骤304到达。在步骤336之后是测定步骤338,其确定只缓存虚拟设备254、256中的活动态虚拟设备是否有更多的槽要被处理。如果不是,则处理结束。否则,控制从测定步骤338转回到步骤304。
在另一实施例中,可能对所接收的数据块56建立已修改的槽的列表,数据块56对应于远程存储设备26上的N-1周期,所述列表如图7中所示的列表258、262。当数据被接收时,远程存储设备26建立已修改的槽的链表。所建立的链表可以是循环的、线性的(具有NULL终止)、或任何其它适当的设计。链表接着可用于恢复只缓存虚拟设备254、256中的活动态虚拟设备。
图9的流程图300示出了两个二选一的通路342、344,其图示了使用已修改的槽的列表的实施例的实施。在步骤302,指针(用于反复通过已修改的槽的列表)被使得指向列表的第一单元。在步骤302之后是步骤306,其由另一通路342到达。在使用已修改的槽的列表的实施例中,不需要测定步骤304,因为列表上没有槽应指向标准逻辑设备252。
在步骤306之后,如上以先前实施例所述,处理继续,除了步骤336为遍历已修改的槽的列表而不是指向COVD中的下一槽以外。类似地,在步骤338的测试确定指针是否在列表的末尾(或在循环链表的情况下回到开始)。同样,如果在步骤338确定有更多的槽要处理,则控制从步骤338转到步骤306,如另一通路344所示。如上所述,对于使用已修改的槽的列表的实施例,步骤304可被排除。
参考图10,流程图350示出了连同本地存储设备24增加序号执行的步骤。处理开始于第一步骤352,在增加序号之前本地存储设备24等待至少M秒。在在此的实施例中,M为30,当然,M可以为任何数字。如果存储设备24、26之间的通信中断,较大的M值增加了可能丢失的数据的量。然而,较小的M值可能因更频繁地递增序号而增加内务操作的总量。
在步骤352之后是测定步骤354,其确定是否本地存储设备24的所有HA已设置位,其表明HA已完成在前序号的所有I/O。当序号改变时,每一HA注意到该改变并设置位,其表明在前序号的所有I/O完成。例如,如果序号从N-1变为N,HA将在HA已完成序号N-1的所有I/O时设置位。注意,在某些情况下,HA的单一I/O可能需要很长时间并可能在序号已改变之后仍然在进行之中。还应注意,对于某些系统,可使用不同的机制来确定所有HA已完成它们的N-1I/O。不同的机制可包括检查存储器37中的设备表。
如果在测定步骤354确定来自在前序号的I/O已被完成,则控制从步骤354转到测定步骤356,其确定列表74、76中的不活动态列表是否是空的。应注意,可不进行序号转换,除非及直到对应于列表74、76的不活动态列表的所有数据已使用RDF协议全部从本地存储设备24传输到远程存储设备26为止。一旦列表74、76中的不活动态列表被确定为空,则控制从步骤356转到步骤358,在前序号的提交从本地存储设备24发送到远程存储设备26。如上所述,远程存储设备26接收特定序号的提交信息将使得远程存储设备26开始恢复对应于序号的数据。
在步骤358之后是步骤362,对列表74、76中的不活动态列表的数据复制被暂停。如本文别处所述,不活动态列表被扫描以将相应的数据从本地存储设备24发送到远程存储设备26。暂停复制数据直到序号转换完成为止是有用的。在在此的实施例中,暂停通过发送消息给RA 30a-30c实现。然而,本领域一般技术人员应该意识到的是,对于使用其它组件来帮助使用在此描述的系统发送数据的实施例,暂停复制可通过发送适当的消息/指令给其它组件实现。
在步骤362之后是步骤364,其增加序号。在步骤364之后是步骤366,在测定步骤354中使用的HA的位均被清零,使得这些位可连同序号的增加而被再次设置。在步骤366之后是测定步骤372,其确定远程存储设备26是否已确认在步骤358发送的提交信息。确认提交信息已在上面结合图8进行了描述。一旦确定远程存储设备26已确认在步骤358发送的提交信息,控制从步骤372转到步骤374,在步骤362提供的暂停复制设定被解除,使得复制可重新开始。在步骤374之后,处理结束。注意,从步骤374回到步骤352以开始新的周期从而连续增加序号是可能的。
使用R1设备上的COVD来收集与活动态数据和非活动态数据块相关的槽也是可能的。在这种情况下,正象R2设备处那样,一COVD可与非活动态序号相关联,而另一COVD可与活动态序号相关联。这将在下面讨论。
参考图11,图表400示出了用于构建和保持数据块52、54的项目。标准逻辑设备402包含由主机22写的数据并对应于图2的数据单元51和图1的磁盘33a-33c。标准逻辑设备402包含由主机22写到本地存储设备24的数据。
两个只缓存虚拟设备404、406可与标准逻辑设备402一起使用。只缓存虚拟设备404、406对应可能保存在本地存储设备24的存储器37中的设备表。每一只缓存虚拟设备404、406的表的每一磁轨项或指向标准逻辑设备402的磁轨或指向连同本地存储设备24使用的高速缓存器408的槽。在某些实施例中,高速缓存器408可被提供在本地存储设备24的存储器37中。
高速缓存器408包含多个缓存槽412-414,其可连同对标准逻辑设备402进行写一起使用,同时,还可连同只缓存虚拟设备404、406一起使用。在在此的实施例中,只缓存虚拟设备404、406的每一磁轨表项包含一空值以指向标准逻辑设备402的相应磁轨。否则,每一只缓存虚拟设备404、406的磁轨表中的项包含指向高速缓存器408中的槽412-414之一的指针。
每一只缓存虚拟设备404、406可用于数据块52、54之一,从而,例如,只缓存虚拟设备404可对应于数据块52(序号N),而只缓存虚拟设备406可对应于数据块54(序号N-1)。因此,当数据由主机22写到本地存储设备24时,数据被提供给高速缓存器408且只缓存虚拟设备404的适当指针被调整。应注意,数据将不从高速缓存器408中移除,直到数据被降级到标准逻辑设备402为止,且数据还由只缓存虚拟设备404释放,如本文别处所述。
在在此的实施例中,只缓存虚拟设备404、406之一被视为“活动态”,而另一只缓存虚拟设备被视为“非活动态”。因而,例如,当序号N为偶数时,只缓存虚拟设备404可以为活动态,而只缓存虚拟设备406为非活动态。只缓存虚拟设备404、406中的活动态虚拟设备处理来自主机22的写,而只缓存虚拟设备404、406中的非活动态虚拟设备对应于正从本地存储设备24传输到远程存储设备26的数据。
当主机22所写的数据使用只缓存虚拟设备404、406中的活动态虚拟设备进行积聚时(对于序号N),对应于只缓存虚拟设备404、406中的非活动态虚拟设备的数据(对于在前序号N-1)从本地存储设备24传输到远程存储设备26。对于本实施例及有关的实施例,本地存储设备的DA 35a-35c处理对只缓存虚拟设备404、406的不活动态虚拟设备的扫描以将复制请求发送给一个或多个RA 30a-30c从而将数据从本地存储设备24传输到远程存储设备26。因而,上述与暂停和重新开始复制有关的步骤362、374可包括提供消息/指令给DA35a-35c。
一旦数据已被传输给远程存储设备26,只缓存虚拟设备404、406的非活动态虚拟设备中的对应项可被设定为空值。此外,如果槽中的数据不再因另外的目的所需要(如要被降级到标准逻辑设备402),数据还可从高速缓存器408中移除(即槽被返回到槽池中以供后用)。一机制可用于确保数据不被从高速缓存器408移除,直到所有镜像(包括只缓存虚拟设备404、406)不再使用该数据为止。这样的机制在1996年7月16日授予的美国专利5,537,568及2001年7月7日申请的美国专利申请09/850,551中描述,二者均通过引用组合于此。
参考图12,流程图400示出了连同主机22执行写操作由HA28执行的步骤,其是针对两个COVD均由R1设备使用以提供在此描述的系统的实施例。处理开始于第一步骤442,对应于写的槽被锁定。在在此的实施例中,高速缓存器408的每一槽412-414对应于标准逻辑设备402上的数据磁轨。在步骤442锁定槽可在HA28执行的处理期间阻止另外的过程在相应的槽上运行,所述HA28执行的处理对应于流程图440的步骤。
在步骤442之后为步骤444,序号N的值被设定。正象使用列表而不是在R1侧上使用COVD的实施例那样,在步骤444获得的序号的值在HA28执行的整个写操作期间均被保持,且槽被锁定。如本文别处所述,序号被分配给每一写以设定数据块52、54之一属于哪一写。主机22执行的写被分配以当前序号。单一写操作始终保持相同的序号是有用的。
在步骤444之后是测定步骤446,其确定只缓存虚拟设备404、406中的非活动态虚拟设备是否已经指向在步骤442锁定的槽。这可能在序号小于当前序号时如果对同一槽的写已被提供的情况下发生。对应于在前序号的写的数据可能尚未被传输给远程存储设备26。
如果在测定步骤446确定只缓存虚拟设备404、406中的非活动态虚拟设备没有指向该槽,则控制从测定步骤446转到另一测定步骤448,其确定只缓存虚拟设备404、406中的活动态虚拟设备是否指向该槽。如果在序号与当前序号相同时先前已有对该槽的写,则只缓存虚拟设备404、406中的活动态虚拟设备指向该槽是可能的。如果在测定步骤448确定只缓存虚拟设备404、406中的活动态虚拟设备没有指向该槽,则控制从测定步骤448转到步骤452,为数据获得新槽。在步骤452之后是步骤454,只缓存虚拟设备404、406中的活动态虚拟设备被使得指向该槽。
在步骤454之后或在步骤448之后(如果只缓存虚拟设备404、406的活动态虚拟设备指向该槽)是步骤456,设置标志。在步骤456,RDF_WP标志(RDF写未决标志)被设定以表明该槽需要使用RDF传输给远程存储设备26。此外,在步骤456,IN_CACHE标志被设定以表明该槽需要被降级到标准逻辑设备402。应注意,在某些情况下,如果只缓存虚拟设备404、406的活动态虚拟设备已经指向该槽(如在步骤448确定),则RDF_WP和IN_CACHE标志在执行步骤456前已被设定是可能的。然而,在步骤456设置标志确保标志被正确地设置,而不管先前的状态如何。
在步骤456之后是步骤458,指向该槽的磁轨表中的间接标志被清零,以表明有关数据被提供在该槽中而不是在间接指向其的另外的槽中。在步骤458之后是步骤462,正由主机22和HA28写的数据被写到该槽中。在步骤462之后是步骤464,其解锁槽。在步骤464之后,处理结束。
如果在测定步骤446确定只缓存虚拟设备404、406中的非活动态虚拟设备指向该槽,则控制从步骤446转到步骤472,其获得新槽。在步骤472获得的新槽可用于只缓存虚拟设备404、406的非活动态虚拟设备以实现RDF传输,同时旧槽可与只缓存虚拟设备404、406的活动态虚拟设备相关联,如下所述。
在步骤472之后是步骤474,旧槽的数据被复制到在步骤472获得的新槽。在步骤474之后是步骤476,(上述的)间接标志被设定以表明只缓存虚拟设备404、406的非活动态虚拟设备的磁轨表项指向旧槽及表明数据在旧槽所指向的新槽中。因此,在步骤476设置间接标志影响只缓存虚拟设备404、406的非活动态虚拟设备的磁轨表从而导致磁轨表项表明数据在新槽中。
在步骤476之后是步骤478,新槽中的记录的镜像位被调整。当数据在步骤474从旧槽复制到新槽时,被复制的任何本地镜像位均被清零,因为新槽的目的只是简单地实现对只缓存虚拟设备的非活动态虚拟设备的RDF传输。旧槽将用于处理任何本地镜像。在步骤478之后是步骤462,数据被写到槽中。在步骤462之后是步骤464,解锁槽。在步骤464之后,处理结束。
参考图13,流程图500示出了连同本地存储设备24将数据块54传输给远程存储设备26所执行的步骤。传输实质上包括:对只缓存虚拟设备404、406的非活动态虚拟设备先前在活动态时的反复操作期间已写到那里的磁轨,扫描只缓存虚拟设备404、406的非活动态虚拟设备。在该实施例中,本地存储设备24的DA35a-35c扫描只缓存虚拟设备404、406的非活动态虚拟设备以通过一个或多个RA30a-30c、使用RDF协议将需要传输的数据复制到远程存储设备26。
处理开始于第一步骤502,指向只缓存虚拟设备404、406的非活动态虚拟设备的第一磁轨以开始通过所有磁轨的反复过程。在第一步骤502之后是测定步骤504,其确定RDF_WP标志是否已被设定。如本文别处所述,RDF_WP标志被用于表明槽(磁轨)包含需要经RDF链路传输的数据。被设置的RDF_WP标志表明槽(磁轨)中的至少部分数据将使用RDF传输。在在此的实施例中,整个槽均不被传输。而是,只有槽内具有适当的镜像位设置(表明记录已改变)的记录才被传输给远程存储设备26。然而,在其它实施例中,假如远程存储设备26只写对应于具有适当镜像位设置的记录的数据并忽略磁轨的其它数据,则可能传输整个槽,其可以是也可不是有效的。
如果在测定步骤504确定被处理的缓存器具有RDF_WP标志设置,则控制从步骤504转到测定步骤505,其确定槽是否包含数据或确定槽是否是指向包含相关数据的另一槽的间接槽。在某些情况下,槽可能不包含对应于槽的磁盘部分的数据。即槽可能是指向包含数据的另一槽的间接槽。如果在步骤505确定槽是间接槽,则控制从步骤505转到步骤506,获取数据(从间接槽指向的槽获取)。因而,如果槽是直接槽,正由RDF发送的数据被保存在该槽中,而如果槽是间接槽,则正由RDF发送的数据被保存在由间接槽所指向的另一槽中。
在步骤506之后或步骤505(如果槽是直接槽)是步骤507,正被发送的数据(直接或间接从槽)由DA 35a-35c之一复制以使用RDF协议从本地存储设备24发送到远程存储设备26。在步骤507之后是测定步骤508,其确定远程存储设备26是否已确认数据的接收。如果否,则控制从步骤508转回到步骤507以重新发送数据。在其它实施例中,不同的及更多有关的处理可用于发送数据并确认其接收。这样的处理可包括错误报告及其它处理,其是在一定量的发送数据的尝试失败之后执行的处理。
一旦在测定步骤508确定数据已被成功发送,控制从步骤508转到步骤512以清零RDF_WP标志(因为数据已经RDF成功发送)。在步骤512之后是步骤514,适当的镜像标志被清零以表明至少RDF镜像(R2)不再需要数据。在在此的实施例中,作为槽(磁轨)的一部分的每一记录具有各自的镜像标志,其表明哪些镜像使用特定的记录。R2设备是每一记录的镜像之一且是对应于R2设备的标志在步骤514被清零。
在步骤514之后是测定步骤516,其确定正被处理的磁轨的任意记录是否具有任意其它镜像标志设置(对于其它镜像设备)。如果否,则控制从步骤516转到步骤518,其释放槽(即不再被使用)。在一些实施例中,未使用的槽可被保持在可用槽池中。应注意,对于槽的一些记录,如果另外的标志仍被设置,则可能意味着记录需要被降级到标准逻辑设备402或正由一些其它镜像(包括另一R2设备)使用。在步骤518之后,或在步骤516之后(如果更多的镜像标志存在)是步骤522,用于反复通过只缓存虚拟设备404、406的非活动态虚拟设备的每一磁轨项的指针被使得指向下一磁轨。在步骤522之后是测定步骤524,其确定只缓存虚拟设备404、406中的非活动态虚拟设备是否有更多的磁轨要被处理。如果否,则处理结束。否则,控制转回到测定步骤504,如上所述。注意,如果确定对于正被处理的磁轨RDF_WP标志未被设置,步骤522还可从测定步骤504到达。
参考图14,图表700示出了主机702连接到多个本地存储设备703-705。图表700还示出了多个远程存储设备706-708。尽管图表700中只示出了三个本地存储设备703-705和三个远程存储设备706-708,在此描述的系统可扩展到使用任意数量的本地和远程存储设备。
本地存储设备703-705中的每一个连接到相应的远程存储设备706-708,从而,例如,本地存储设备703连接到远程存储设备706,本地存储设备704连接到远程存储设备707,及本地存储设备705连接到远程存储设备708。本地存储设备703-705和远程存储设备706-708可使用在此描述的排序的写机制进行连接,从而,例如,本地存储设备703可使用排序的写机制连接到远程存储设备706。如本文别处所述,排序的写机制允许在本地存储设备和/或主机停止工作和/或丢失数据的情况下通过使用远程存储设备而进行数据恢复。
在一些情况下,主机702可运行单个应用程序,其同时使用一个以上的本地存储设备703-705。在这种情况下,应用程序可被配置以确保:如果主机702要在任意时间中止工作和/或如果本地存储设备703-705之一发生故障,则应用数据是一致的(可恢复的)。然而,由于本地存储设备703-705和远程存储设备706-708之间的每一排序的写连接与其它连接不同步,则不能确保用于应用程序的数据将在远程存储设备706-708是一致的(因而可恢复)。即,例如,即使本地存储设备703和远程存储设备706(第一本地/远程对)之间的数据连接是一致的,且本地存储设备704和远程存储设备707(第二本地/远程对)之间的数据连接是一致的,如果在第一和第二本地/远程对之间没有同步,则远程存储设备706、707上的数据不必定总是一致的。
对于主机702上同时使用多个本地存储设备703-705的应用程序,可能希望使数据在远程存储设备706-708是一致且可恢复的。这可由主机702控制每一本地存储设备703-705处的周期转换(cycleswitch)实现,从而来自主机702上运行的应用程序的数据在远程存储设备706-708是一致且可恢复的。该功能由在主机702上运行的特别应用程序提供,其将多个本地存储设备703-705转换为多盒模式,如下所详述的。
参考图15,表730具有多个项732-734。每一项732-734对应于存储设备的单一本地/远程对,例如,项732可对应于本地存储设备703和远程存储设备706的对,项733可对应于本地存储设备704和远程存储设备707的对,而项734可对应于本地存储设备705和远程存储设备708的对。项732-734中的每一项具有多个字段,其中第一字段736a-736c代表相应的本地存储设备的序号,第二字段738a-738c代表多盒组(multi-box group)使用的会话数量,第三字段742a-742c代表本地/远程对的相应远程存储设备的序号,第四字段744a-744c代表多盒组的会话数量。连同在多盒模式下工作,表730由主机702构建和保持。此外,表730被传达给本地存储设备和远程存储设备中的每一个,这些设备是多盒组的一部分。表730可用于帮助恢复,如下详述的那样。
不同的本地/远程对可以任何顺序在任何时间单独进入和退出多盒模式。主机702管理本地存储设备/远程存储设备对进入和退出多盒模式。这将在下面详述。
参考图16,流程图750示出了主机702执行的与本地/远程对进入或退出多盒模式有关的步骤。处理开始于第一步骤752,多盒模式操作被临时暂停。在步骤752临时暂停多盒操作可用于促进连同远程/本地对进入或退出多盒模式做出的变化。在步骤752之后是步骤754,象图15的表730的表被修改以添加或删除项,合理地进行。在步骤754之后是步骤756,修改后的表被传送给多盒组的本地存储设备和远程存储设备。在步骤756传送表有利于恢复,如本文别处所详细描述的。
在步骤756之后是步骤758,消息被发送给受影响的本地存储设备以提供该变化。本地存储设备可配置其自身以在或不在多盒模式下运行,如本文别处所详细描述的。如下面详细描述的,处理排序的写的本地存储设备根据其是否作为多盒组的一部分运行而不同地运行。如果本地存储设备正被添加到多盒组,则在步骤758发送的消息向本地存储设备指明其正被添加到多盒组,从而本地存储设备应配置其自身以在多盒模式下运行。或者,如果本地存储设备正被从多盒组中移除,在步骤758发送的消息向本地存储设备指明其正被从多盒组中移除,从而本地存储设备应配置其自身以不在多盒模式下运行。
在步骤758之后是测定步骤762,其确定本地/远程对是否正被添加到多盒组中(与被移除相反)。如果是,则控制从测定步骤762转到步骤764,标记值被发送给正被添加的本地存储设备。标记值被提供给从本地存储设备传输给远程存储设备的数据,其方式类似于给数据提供序号。标记值由主机控制和设定,从而所有本地/远程对在同一周期期间发送具有同一标记值的数据。标记值的使用将在下面详细讨论。在步骤764之后或步骤762之后(如果新的本地/远程对未被添加)是步骤766,重新开始多盒操作。在步骤766之后,处理结束。
参考图17,流程图780示出了所执行的与主机管理多个本地/远程对的周期切换有关的步骤,多个本地/远程对作为多盒模式下的组运行。如本文别处所论述的,多盒模式包括使主机同步一个以上远程/本地对的周期转换以在远程存储设备之间保持数据一致性。周期转换由主机调整而不是由本地存储设备内部产生。这将在下面详述。
流程图780的处理开始于测定步骤782,其确定M秒是否已逝去。正如非多盒操作那样,周期转换每M秒就发生一次,其中M是选择来优化多个性能参数的数字。当M增加时,与转换相关的内务操作量则减少。然而,增加M也使得与故障有关的潜在数据损失也增加。在在此的实施例中,M被选择为30秒,尽管也可使用其它M值。
如果在测定步骤782确定M秒尚未逝去,则控制转回到步骤782以继续等待直到M秒已逝去为止。一旦在测定步骤782确定M秒已逝去,控制从步骤782转到步骤784,主机询问多盒组中的所有本地存储设备以确定是否所有本地/远程对均已准备好转换。准备好转换的本地/远程对将在下文中详述。
在步骤784之后是测定步骤786,其确定是否所有本地/远程对均已准备好转换。如果否,控制转回到步骤784以重新开始询问。在在此的实施例中,只需要询问先前未准备好转换的本地/远程对,因为,一旦本地/远程对准备好转换,该对保持这种状态直到转换发生为止。
一旦在测定步骤786确定多盒组中的所有本地/远程对均准备转换,控制从步骤786转到步骤788,下标变量N被设定为等于1。下标变量N用于重复通过所有本地/远程对(即图15的表730的所有项732-734)。在步骤788之后是测定步骤792,其确定下标变量N是否大于多盒组中的本地/远程对的数量。如果否,则控制从步骤792转到步骤794,对第N对的第N本地存储设备进行开窗口,其通过主机发送指令(如适当的系统指令)给第N本地存储设备进行。在步骤794对第N本地存储设备开窗口将导致第N本地存储设备暂停写,从而由主机进行的、不是在步骤794开窗口之前开始的任何写将不被完成,直到窗口关闭为止(如下述)。未完成写操作将阻止第二依赖的写在完成周期转换之前出现。任何进行中的、在开窗口之前开始的写可在窗口关闭之前完成。
在步骤794之后是步骤796,第N本地存储设备的周期转换被执行。在步骤796执行周期转换包括从主机702发送指令给第N本地存储设备。第N本地存储设备处理来自主机的指令将在下面详细描述。在步骤796执行的处理的一部分可包括使主机向分配给数据的标签提供新值。标签在本文别处详细描述。在另一实施例中,在步骤794、796执行的操作可被执行为单一合成步骤797,其被图示为在步骤794、796周围画的框。
在步骤796之后是步骤798,递增下标变量N。在步骤798之后,控制转回到测定步骤792以确定下标变量N是否大于本地/远程对的数量。
如果在测定步骤792确定下标变量N大于本地/远程对的数量,则控制从测定步骤792转到步骤802,下标变量N被设定为等于1。在步骤802之后是测定步骤804,其确定下标变量N是否大于本地/远程对。如果否,则控制从步骤804转到步骤806,第N本地存储设备的窗口被关闭。在步骤806关闭窗口由主机发送指令给第N本地存储设备以使第N本地存储设备重新开始写操作进行。因而,在执行步骤806之后,任何由在步骤794开窗口暂停的、进行中的写现在可被完成。在步骤806之后,控制转到步骤808,递增下标变量N。在步骤808之后,控制转回到测定步骤804以确定下标变量N是否大于本地/远程对的数量。如果是,则控制从测定步骤804转回到步骤782以开始下一周期转换的处理。
参考图18,流程图830示出了本地存储设备执行的与周期转换有关的步骤。在本地存储设备既支持多盒发生又支持非多盒模式的情况下,图18的流程图830代替图10的流程图350。即,流程图830示出了所执行的与图10的流程图350类似的步骤以支持非多盒模式,此外还包括支持多盒模式的步骤。
处理开始于第一测定步骤832,其确定本地存储设备是否正在多盒模式下工作。应注意,图16的流程图750示出了步骤758,其中主机发送消息给本地存储设备。在步骤758发送的消息向本地存储设备指明本地存储设备是否在多盒模式下工作。在接收主机在步骤758发送的消息的基础上,本地存储设备设置内部变量以指明本地存储设备是否在多盒模式下工作。可在测定步骤832检查该内部变量。
如果在测定步骤832确定本地存储设备不是多盒模式,则控制从测定步骤832转到步骤834以等待M秒进行周期转换。如果本地存储设备不是在多盒模式下工作,则本地存储设备控制其自己的周期转换并因而执行步骤834以在开始下一周期转换之前等待M秒。
在步骤834之后,或在步骤832之后(如果本地存储设备是在多盒模式)是测定步骤836,其确定是否本地存储设备的所有HA均已设置位,其表明HA已完成在前序号的所有I/O。当序号改变时,每一HA注意到该变化并设置位以表明在前序号的所有I/O已被完成。例如,如果序号从N-1改变为N,当HA已完成序号N-1的所有I/O时HA将设置位。注意,在一些情况下,HA的单一I/O可能需要很长时间并可能在序号已改变之后仍然在进行中。还应注意,对于某些系统,不同的机制可用于确定是否所有HA已完成它们的N-1 I/O。不同的机制可包括检查设备表。一旦在测定步骤836确定所有HA已设置适当的位,控制从测定步骤836转到步骤888,其确定本地存储设备的非活动态数据块是否为空。一旦在测定步骤888确定非活动态数据块为空,控制从步骤888转到步骤899,暂停将数据从本地存储设备复制到远程存储设备。暂停复制数据直到序号转换结束为止是有用的。
在步骤899之后是测定步骤892,其确定本地存储设备是否在多盒模式。如果在测定步骤892确定本地存储设备在多盒模式,则控制从测定步骤892转到测定步骤894以确定相应的远程存储设备的活动态数据块是否为空。如下面将详细讨论的,一旦远程存储设备已倒空其活动态数据块,其发送消息给本地存储设备。响应于该消息,本地存储设备设置在测定步骤894检查的内部变量。
一旦在测定步骤894确定远程存储设备的活动态数据块为空,控制从测定步骤894转到步骤896,内部变量被设置在本地存储设备上以表明本地存储设备准备转换周期。如结合图17的流程图780所述,主机询问每一本地存储设备以确定每一本地存储设备均已准备转换。响应于由主机提供的询问,本地存储设备检查在步骤896设置的内部变量并将结果返回给主机。
在步骤896之后是测定步骤898,本地存储设备等待以从主机接收执行周期转换的指令。如结合图17的流程图780所述,当本地存储设备在多盒模式下工作时,主机提供指令给本地存储设备以转换周期。因而,本地存储设备在步骤898等待指令,只有在本地存储设备在多盒模式下工作时才能到达该步骤。
一旦本地存储设备已从主机接收到转换指令,控制从步骤898转到步骤902以发送提交信息给远程存储设备。注意,如果在测定步骤892确定本地存储设备不是多盒模式,则步骤902也可从测定步骤892到达。在步骤902,本地存储设备发送提交信息给远程存储设备。响应于接收特定序号的提交信息,远程存储设备将开始恢复对应于该序号的数据,如上所述。
在步骤902之后是步骤906,递增序号并保存标签的新值(来自主机)。序号如上所述。标签是在步骤764和步骤796提供给本地存储设备的标签,如上所述。标签用于帮助数据恢复,如本文别处所述。
在步骤906之后是步骤907,周期转换的完成被从本地存储设备到主机进行确认,其通过从本地存储设备发送消息给主机进行。在一些实施例中,执行步骤907的条件在于本地存储设备是否在多盒模式,因为,如果本地存储设备不在多盒模式,则主机不必关注周期转换在何时出现。
在步骤907之后是步骤908,使用在测定步骤836中的HA的位均被清零,从而这些位可连同递增序号而被再次设置。在步骤908之后是测定步骤912,其确定远程存储设备是否已确认提交信息。注意,如果本地/远程对在多盒模式下工作且在步骤894已确定远程存储设备活动态数据块为空,则远程存储设备应几乎立即确认提交信息,因为远程存储设备将立即准备用于周期转换,因其活动态数据块为空。
一旦在测定步骤912确定提交信息已被远程存储设备确认,控制从步骤912转到步骤914,已在步骤899提供的暂停复制的设定被清除,从而,从本地存储设备到远程存储设备的复制可重新开始。在步骤914之后,处理结束。
参考图19,流程图940示出了所执行的与RA扫描非活动态缓冲器以将RDF数据从本地存储设备传输到远程存储设备有关的步骤。图19的流程图940类似于图6的流程图200,且类似的步骤被给予了相同的附图标记。然而,流程图940包括两个另外的步骤942、944,其未在图6的流程图200中发现。另外的步骤942、944用于帮助多盒处理。在数据已在步骤212发送之后,控制从步骤212转到测定步骤942,其确定发送的数据是否是本地存储设备的非活动态数据块中的最后数据。如果否,则控制从步骤942转到步骤214,且处理继续,如结合图6的流程图200所述的那样。否则,如果在测定步骤942确定发送的数据是数据块的最后数据,则控制从步骤942转到步骤944以从本地存储设备发送特殊的消息给远程存储设备,其指明最后的数据已被发送。在步骤944之后,控制转到步骤214,且处理继续,如结合图6的流程图200所述的那样。在一些实施例中,步骤942、944可由不同于传输数据的过程(和/或硬件设备)的单独的过程(和/或单独的硬件设备)执行。
参考图20,流程图950示出了所执行的与RA扫描非活动态缓冲器以将RDF数据从本地存储设备传输到远程存储设备有关的步骤。图20的流程图950类似于图13的流程图500,且类似的步骤被给予了相同的附图标记。然而,流程图950包括两个另外的步骤952,其未在图13的流程图500中发现。另外的步骤952用于帮助多盒处理且类似于图19的流程图940的附加步骤944。在测定步骤524确定没有剩下更多的槽将从本地存储设备发送到远程存储设备之后,控制从步骤524转到步骤952以从本地存储设备发送特殊消息给远程存储设备,其表明数据块的最后数据已被发送。在步骤952之后,处理结束。
参考图21,流程图960示出了在远程存储设备执行的、与提供指示有关的步骤,所述指示是远程存储设备的活动态数据块为空。流程图960类似于图9的流程图300,除了流程图960示出了新步骤962之外,新步骤962是在远程存储设备的活动态数据块已被恢复之后执行。在步骤962,远程存储设备发送消息给本地存储设备,其指明远程存储设备的活动态数据块为空。在接收在步骤962发送的消息的基础上,本地存储设备设置内部变量以表明远程存储设备的非活动态缓冲器为空。本地变量在图18的流程图830的测定步骤894进行检查,如上所述。
参考图22,图表980示出了主机702、本地存储设备703-705和远程存储设备706-708,其如图14的图表700所示。图表980还包括第一备选主机982,其连接到主机702和本地存储设备703-705。图表980还包括第二备选主机984,其连接到远程存储设备706-708。备选主机982、984可用于数据恢复,如下面将详述的那样。
当在远程站点的数据恢复必要时,假如本地存储设备703-705和远程存储设备706-708之间的链路仍然工作的话,恢复可由主机702或由主机982执行。如果链路不工作,则数据恢复可由连接到远程存储设备706-708的第二备选主机984执行。第二备选主机984可被提供在与一个或多个远程存储设备706-708一样的位置。或者,第二备选主机984可远离所有远程存储设备706-708。通过系统传送的表730连同数据恢复被访问以确定多盒组的成员。
参考图23,流程图1000示出了每一远程存储设备706-708执行的与数据恢复操作有关的步骤。流程图1000的步骤可由每一远程存储设备706-708在接收信号或消息的基础上执行,所述信号或消息指明数据恢复是必要的。在一些实施例中,对于远程存储设备,其可自动感知数据恢复是否是必要的,其使用传统的规则如自最后的写之后的时间长度进行。
处理开始于第一步骤1002,远程存储设备以本文别处描述的方式完成活动态数据块的恢复。在步骤1002之后是测定步骤1004,其确定远程存储设备的非活动态数据块是否完整(即所有数据已被写到那里)。应注意,远程存储设备可使用本地存储设备在步骤944、952发送的消息确定非活动态数据块是否完整,如上所述。即,如果本地存储设备已在步骤944或步骤952发送消息,则远程存储设备可使用该消息的接收来确认非活动态数据块是完整的。
如果在测定步骤1004确定远程存储设备的非活动态数据块不完整,则控制从测定步骤1004转到步骤1006,非活动态数据块的数据被放弃。没有数据恢复会使用不完整的非活动态数据块来进行,因为其中的数据可能与相应的活动态数据块不一致。因此,数据恢复使用活动态数据块进行,在某些情况下,也使用完整的非活动态数据块进行。在步骤1006之后,处理结束。
如果在测定步骤1004确定非活动态数据块是完整的,则控制从步骤1004转到步骤1008,远程存储设备等待主机的干涉。如果是非活动态数据块,主机702、982、984之一需要检查多盒组中的所有远程存储设备的状态以确定怎样执行恢复。这将在下面详细讨论。
在步骤1008之后是测定步骤1012,其确定主机是否已提供指令给所有存储设备以放弃非活动态数据块。如果是,则控制从步骤1012转到步骤1006以放弃非活动态数据块。在步骤1006之后,处理结束。
如果在测定步骤1002确定主机已提供指令以恢复完整的非活动态数据块,则控制从步骤1012转到步骤1014,非活动态数据块被恢复到远程存储设备。将非活动态数据块恢复在远程存储设备中包括使非活动态数据块变为活动态数据块并继而将活动态数据块写到本文别处描述的磁盘中。在步骤1014之后,处理结束。
参考图24,流程图1030示出了所执行的与主机702、982、984之一确定是放弃还是恢复每一远程存储设备的每一非活动态数据块有关的步骤。执行恢复的主机702、982、984之一与远程存储设备706-708通信以向其提供指令并从其接收信息,其通过使用由主机分配的标签进行,如本文别处所述。
处理开始于第一步骤1032,其确定远程存储设备中的任意一个是否具有完整的非活动态数据块。如果否,则没有进一步的处理要被执行。如上所述,远程存储设备将自己放弃不完整的数据块,而无需主机干涉。否则,控制从测定步骤1032转到测定步骤1034,主机确定是否所有远程存储设备均具有完整的非活动态数据块。如果是,则控制从测定步骤1034转到测定步骤1036,其确定是否所有远程存储设备的所有完整的非活动态数据块均具有相同的标签号。如本文别处所述,标签由主机分配并由系统使用以以类似于序号的方式识别数据,除了标签由主机控制以对同一周期具有相同值以外。
如果在测定步骤1036确定所有远程存储设备对非活动态数据块均具有相同的标签,则控制从步骤1036转到步骤1038,所有非活动态数据块均被恢复。执行步骤1038确保所有远程存储设备具有来自同一周期的数据。在步骤1038之后,处理结束。
如果在测定步骤1034确定所有非活动态数据块不是完整的,或如果在步骤1036确定所有完整的非活动态数据块不具有相同的标签,则控制转到步骤1042,主机提供指令给远程存储设备以恢复具有较低标签号的完整非活动态数据块。用于解释的目的,假定标签号被递增,从而较低的标签号代表较旧的数据。作为例子,如果第一远程存储设备具有标记值为3的完整非活动态数据块,而第二远程存储设备具有标记值为4的完整非活动态数据块,则步骤1042使第一远程存储设备(而不是第二)恢复其非活动态数据块。在步骤1042之后是步骤1044,主机提供指令给远程存储设备以放弃具有较高标签号的完整非活动态缓冲器(如在前例子中的第二远程存储设备)。在步骤1044之后,处理结束。
在执行步骤1044之后,每一远程存储设备包含与同一标记值相关联的数据,该标记值与其它远程存储设备的数据的标记值一样。因此,恢复在远程存储设备706-708上面的数据应该是一致的。
当本发明已结合多个实施例进行公开的同时,在其基础上的修改对本领域技术人员而言将是很明显的。因此,本发明的实质和范围在下面的权利要求中提出。
Claims (10)
1、排序数据写的方法,包括:
一组主存储设备中的至少部分接收第一多个数据写;
使得该组主存储设备的周期切换,其中第一多个数据写与该组中每一主存储设备上的特定周期相关联;及
该组主存储设备的至少部分在开始周期切换之后接收第二多个写,其中所有第二多个写与每一主存储设备上不同于前述特定周期的周期相关联。
2、根据权利要求1的方法,其中在开始周期切换之后开始的向该组的写直到周期切换已结束之后仍未完成。
3、根据权利要求1的方法,还包括:
在周期切换结束之后,该组的每一主存储设备开始将第一多个写传输给相应的辅助存储设备。
4、根据权利要求1的方法,其中主机使周期切换发生。
5、根据权利要求1的方法,其中导致周期切换包括:
等待预定的时间;
确定存储设备的该组主存储设备是否均已准备好切换;及
对该组的每一主存储设备,向其发送第一指令以引起周期切换。
6、将数据块中提供的数据恢复到多个辅助存储设备的方法,包括:
对每一辅助存储设备,放弃其所有数据尚未被接收的数据相应数据块;及
对每一辅助存储设备,恢复到其的数据块,其中恢复到多个辅助存储设备的所有数据块对应于提供数据给多个辅助存储设备的主存储设备的特定传输周期。
7、根据权利要求6的方法,还包括:
在放弃之后、恢复之前,对具有两个不同数据块的多个辅助存储设备中的每一个,等待外部干预以指示是否恢复特定数据块。
8、根据权利要求7的方法,还包括:
响应于有两个不同的数据块与多个辅助存储设备中的所有设备相关联,为多个辅助存储设备中的所有设备恢复最新近的数据块,其中两个数据块中的第一个对应于第一传输周期,及两个数据块中的第二个对应于不同的传输周期。
9、根据权利要求7的方法,还包括:
对每一辅助存储设备,恢复对应于特定传输周期的数据块,其中所有辅助存储设备包含对应于特定传输周期的数据块。
10、根据权利要求1的方法,其中每一传输周期被赋予特殊的标记值,其被提供给每一数据块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/724,669 US7054883B2 (en) | 2003-12-01 | 2003-12-01 | Virtual ordered writes for multiple storage devices |
US10/724,669 | 2003-12-01 | ||
US10/724,670 | 2003-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1886743A true CN1886743A (zh) | 2006-12-27 |
Family
ID=34620116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800355554A Pending CN1886743A (zh) | 2003-12-01 | 2004-10-19 | 对多存储设备的虚拟排序的写 |
Country Status (2)
Country | Link |
---|---|
US (4) | US7054883B2 (zh) |
CN (1) | CN1886743A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114527897A (zh) * | 2020-10-30 | 2022-05-24 | 国际商业机器公司 | 在应用之间跟踪和恢复指针位置 |
Families Citing this family (142)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340489B2 (en) * | 2002-04-10 | 2008-03-04 | Emc Corporation | Virtual storage devices |
US7113945B1 (en) * | 2002-04-10 | 2006-09-26 | Emc Corporation | Virtual storage device that uses volatile memory |
US7103727B2 (en) | 2002-07-30 | 2006-09-05 | Hitachi, Ltd. | Storage system for multi-site remote copy |
JP4021823B2 (ja) | 2003-09-01 | 2007-12-12 | 株式会社日立製作所 | リモートコピーシステム及びリモートコピーの方法 |
US7054883B2 (en) * | 2003-12-01 | 2006-05-30 | Emc Corporation | Virtual ordered writes for multiple storage devices |
US7228456B2 (en) * | 2003-12-01 | 2007-06-05 | Emc Corporation | Data recovery for virtual ordered writes for multiple storage devices |
US8032726B2 (en) * | 2003-12-03 | 2011-10-04 | Hitachi, Ltd | Remote copy system |
US7085788B2 (en) * | 2003-12-03 | 2006-08-01 | Hitachi, Ltd. | Remote copy system configured to receive both a write request including a write time and a write request not including a write time. |
US7437389B2 (en) * | 2004-03-10 | 2008-10-14 | Hitachi, Ltd. | Remote copy system |
US7724599B2 (en) * | 2003-12-03 | 2010-05-25 | Hitachi, Ltd. | Remote copy system |
US7421549B2 (en) * | 2004-03-02 | 2008-09-02 | Hitachi, Ltd. | Method and apparatus of remote copy for multiple storage subsystems |
JP4549709B2 (ja) * | 2004-03-23 | 2010-09-22 | 株式会社日立製作所 | ストレージ装置 |
JP4477950B2 (ja) | 2004-07-07 | 2010-06-09 | 株式会社日立製作所 | リモートコピーシステム及び記憶装置システム |
JP4915775B2 (ja) * | 2006-03-28 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのリモートコピー制御方法 |
US7647525B2 (en) * | 2006-03-31 | 2010-01-12 | Emc Corporation | Resumption of operations following failover in connection with triangular asynchronous replication |
US7430646B2 (en) * | 2006-03-31 | 2008-09-30 | Emc Corporation | Planned switchover in connection with triangular asynchronous replication |
US20070234105A1 (en) * | 2006-03-31 | 2007-10-04 | Quinn Brett A | Failover to asynchronous backup site in connection with triangular asynchronous replication |
US8843783B2 (en) * | 2006-03-31 | 2014-09-23 | Emc Corporation | Failover to backup site in connection with triangular asynchronous replication |
US7624229B1 (en) | 2006-09-29 | 2009-11-24 | Emc Corporation | Spillover slot |
US8145865B1 (en) | 2006-09-29 | 2012-03-27 | Emc Corporation | Virtual ordered writes spillover mechanism |
US7734884B1 (en) | 2006-12-29 | 2010-06-08 | Emc Corporation | Simultaneous concurrent and cascaded triangular asynchronous replication |
US7680997B1 (en) | 2006-12-29 | 2010-03-16 | Emc Corporation | Data recovery simulation |
US7752404B2 (en) * | 2006-12-29 | 2010-07-06 | Emc Corporation | Toggling between concurrent and cascaded triangular asynchronous replication |
US7779291B2 (en) * | 2006-12-29 | 2010-08-17 | Emc Corporation | Four site triangular asynchronous replication |
US8589645B1 (en) | 2008-03-27 | 2013-11-19 | Emc Corporation | Remote read for storage devices |
US8135929B1 (en) | 2008-03-27 | 2012-03-13 | Emc Corporation | Cascaded remote data facility system having diskless intermediate RDF site providing logical storage device functionality |
US8122209B1 (en) | 2008-03-27 | 2012-02-21 | Emc Corporation | Diskless storage device |
US8335899B1 (en) | 2008-03-31 | 2012-12-18 | Emc Corporation | Active/active remote synchronous mirroring |
US9665502B1 (en) | 2008-06-30 | 2017-05-30 | EMC IP Holding Company LLC | Virtual I/O hardware |
US8190948B1 (en) | 2008-07-31 | 2012-05-29 | Emc Corporation | Handling out of order I/O using temporal relationships of transmitted data |
US8566549B1 (en) | 2008-12-31 | 2013-10-22 | Emc Corporation | Synchronizing performance requirements across multiple storage platforms |
US8707003B1 (en) | 2010-09-29 | 2014-04-22 | Emc Corporation | Rate control for asynchronous data replication |
US8600943B1 (en) | 2010-12-31 | 2013-12-03 | Emc Corporation | Porting replication relationships |
US8843714B1 (en) | 2011-03-30 | 2014-09-23 | Emc Corporation | Write pacing simulation tool |
US8667490B1 (en) | 2011-07-29 | 2014-03-04 | Emc Corporation | Active/active storage and virtual machine mobility over asynchronous distances |
US8726067B1 (en) | 2011-07-29 | 2014-05-13 | Emc Corporation | Utilizing both application and storage networks for distributed storage over asynchronous distances |
US8726083B1 (en) | 2011-07-29 | 2014-05-13 | Emc Corporation | Synchronized taking of snapshot memory images of virtual machines and storage snapshots |
US8689054B1 (en) | 2011-07-29 | 2014-04-01 | Emc Corporation | Increased distance of virtual machine mobility over asynchronous distances |
US8966211B1 (en) | 2011-12-19 | 2015-02-24 | Emc Corporation | Techniques for dynamic binding of device identifiers to data storage devices |
US8898444B1 (en) | 2011-12-22 | 2014-11-25 | Emc Corporation | Techniques for providing a first computer system access to storage devices indirectly through a second computer system |
US9811272B1 (en) | 2011-12-28 | 2017-11-07 | EMC IP Holding Company LLC | Four site data replication using host based active/active model |
US9128901B1 (en) | 2011-12-30 | 2015-09-08 | Emc Corporation | Continuous protection of data and storage management configuration |
US9524220B1 (en) | 2011-12-30 | 2016-12-20 | EMC IP Holding Company, LLC | Memory optimization for configuration elasticity in cloud environments |
US9026492B1 (en) | 2012-03-26 | 2015-05-05 | Emc Corporation | Multisite replication with uncoordinated cycle switching |
US8732124B1 (en) | 2012-03-26 | 2014-05-20 | Emc Corporation | Multisite replication with coordinated cycle switching |
US8682852B1 (en) | 2012-03-29 | 2014-03-25 | Emc Corporation | Asymmetric asynchronous mirroring for high availability |
US10318171B1 (en) | 2012-06-29 | 2019-06-11 | EMC IP Holding Company LLC | Accessing fast memory in a data storage array |
US9483355B1 (en) | 2012-06-29 | 2016-11-01 | EMC IP Holding Company LLC | Tracking copy sessions |
US10216652B1 (en) | 2012-06-29 | 2019-02-26 | EMC IP Holding Company LLC | Split target data transfer |
US8856257B1 (en) | 2012-06-29 | 2014-10-07 | Emc Corporation | Sending alerts from cloud computing systems |
US8832498B1 (en) | 2012-07-30 | 2014-09-09 | Emc Corporation | Scalable codebook correlation for cloud scale topology |
US9141505B1 (en) | 2012-09-27 | 2015-09-22 | Emc Corporation | Adaptive failure survivability in a storage system using save time and data transfer after power loss |
US9348627B1 (en) | 2012-12-20 | 2016-05-24 | Emc Corporation | Distributed dynamic federation between multi-connected virtual platform clusters |
US8862541B1 (en) * | 2012-12-26 | 2014-10-14 | Emc Corporation | N-site asynchronous replication |
US9015121B1 (en) | 2013-01-15 | 2015-04-21 | Emc Corporation | Unified virtual machine and data storage snapshots |
US9330048B1 (en) | 2013-01-28 | 2016-05-03 | Emc Corporation | Balancing response times for synchronous I/O requests having different priorities |
US9973215B1 (en) | 2013-01-28 | 2018-05-15 | EMC IP Holding Company LLC | Controlled multipath data packet delivery with forward error correction |
US9805049B1 (en) | 2013-02-15 | 2017-10-31 | EMC IP Holding Company LLC | Migrating applications over asynchronous distances using semi-synchronous acceleration |
US8856400B1 (en) | 2013-03-15 | 2014-10-07 | Emc Corporation | I/O performance quotas |
US10552342B1 (en) | 2013-03-15 | 2020-02-04 | EMC IP Holding Company LLC | Application level coordination for automated multi-tiering system in a federated environment |
US9323682B1 (en) | 2013-04-05 | 2016-04-26 | Emc Corporation | Non-intrusive automated storage tiering using information of front end storage activities |
US9736046B1 (en) | 2013-05-30 | 2017-08-15 | EMC IP Holding Company LLC | Path analytics using codebook correlation |
US9602341B1 (en) | 2013-06-19 | 2017-03-21 | EMC IP Holding Company LLC | Secure multi-tenant virtual control server operation in a cloud environment using API provider |
CA2868247C (en) * | 2013-07-26 | 2017-04-04 | Ji Ouyang | Data sending method, data receiving method, and storage device |
US9665307B1 (en) * | 2013-12-19 | 2017-05-30 | EMC IP Holding Company LLC | Incremental continuous data protection |
US9436564B1 (en) | 2014-03-31 | 2016-09-06 | Emc Corporation | Creating distributed storage during partitions |
US9606870B1 (en) | 2014-03-31 | 2017-03-28 | EMC IP Holding Company LLC | Data reduction techniques in a flash-based key/value cluster storage |
US9703951B2 (en) | 2014-09-30 | 2017-07-11 | Amazon Technologies, Inc. | Allocation of shared system resources |
US9754103B1 (en) | 2014-10-08 | 2017-09-05 | Amazon Technologies, Inc. | Micro-architecturally delayed timer |
US9378363B1 (en) | 2014-10-08 | 2016-06-28 | Amazon Technologies, Inc. | Noise injected virtual timer |
US9491112B1 (en) | 2014-12-10 | 2016-11-08 | Amazon Technologies, Inc. | Allocating processor resources based on a task identifier |
US9864636B1 (en) * | 2014-12-10 | 2018-01-09 | Amazon Technologies, Inc. | Allocating processor resources based on a service-level agreement |
US9823973B1 (en) | 2014-12-22 | 2017-11-21 | EMC IP Holding Company LLC | Creating consistent snapshots in a virtualized environment |
US10747635B1 (en) | 2014-12-30 | 2020-08-18 | EMC IP Holding Company LLC | Establishing quorums on an object-by-object basis within a management system |
US9880758B1 (en) | 2015-03-30 | 2018-01-30 | EMC IP Holding Company LLC | Data transfer techniques with data replication |
US9626116B1 (en) | 2015-06-22 | 2017-04-18 | EMC IP Holding Company LLC | Distributed service level objective management in active-active environments |
US9880946B1 (en) | 2015-06-30 | 2018-01-30 | EMC IP Holdings Company LLC | Data transfer techniques with data replication |
US9678869B1 (en) | 2015-09-29 | 2017-06-13 | EMC IP Holding Company LLC | Optimized read processing |
US9933947B1 (en) * | 2015-12-30 | 2018-04-03 | EMC IP Holding Company LLC | Maintaining write consistency on distributed multiple page writes |
US10409838B1 (en) | 2016-03-18 | 2019-09-10 | EMC IP Holding Company LLC | Managing registration and reservation information in an active-active configuration |
US10324635B1 (en) | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
US9927980B1 (en) | 2016-03-31 | 2018-03-27 | EMC IP Holding Company LLC | Accessing point in time versions of a logical device in connection with I/O operations |
US9971529B1 (en) | 2016-06-30 | 2018-05-15 | EMC IP Holding Company LLC | Selective data replication |
US10976937B1 (en) | 2016-09-28 | 2021-04-13 | EMC IP Holding Company LLC | Disparate local and remote replication technologies configured for the same device |
US10133505B1 (en) | 2016-09-29 | 2018-11-20 | EMC IP Holding Company LLC | Cooperative host and data storage system services for compression and encryption |
US10552060B1 (en) | 2017-04-26 | 2020-02-04 | EMC IP Holding Company LLC | Using replication facility to provide secure host network connectivity wherein a first logical device is used exclusively for sending messages from host to second host |
US10409520B1 (en) | 2017-04-27 | 2019-09-10 | EMC IP Holding Company LLC | Replication of content-based storage using address space slices |
US10503609B1 (en) | 2017-04-27 | 2019-12-10 | EMC IP Holding Company LLC | Replication link smoothing using historical data |
US10613766B1 (en) | 2017-07-27 | 2020-04-07 | EMC IP Holding Company LLC | Data replication techniques |
US10645158B1 (en) * | 2017-10-10 | 2020-05-05 | EMC IP Holding Company LLC | Host data replication using deduplication and binary search trees |
US11231867B1 (en) | 2018-01-25 | 2022-01-25 | EMC IP Holding Company LLC | Data replication using deduplication and synchronized hash tables |
US10303365B1 (en) | 2018-01-31 | 2019-05-28 | EMC IP Holding Company LLC | Data fingerprint distribution on a data storage system |
US10572172B2 (en) | 2018-04-20 | 2020-02-25 | EMC IP Holding Company LLC | Multi-granular data reduction for remote data replication |
US10853221B2 (en) | 2018-05-04 | 2020-12-01 | EMC IP Holding Company LLC | Performance evaluation and comparison of storage systems |
US10705753B2 (en) | 2018-05-04 | 2020-07-07 | EMC IP Holding Company LLC | Fan-out asynchronous replication logical level caching |
US10860239B2 (en) | 2018-05-04 | 2020-12-08 | EMC IP Holding Company LLC | Fan-out asynchronous replication caching |
US11360688B2 (en) | 2018-05-04 | 2022-06-14 | EMC IP Holding Company LLC | Cascading snapshot creation in a native replication 3-site configuration |
US11048722B2 (en) | 2018-07-31 | 2021-06-29 | EMC IP Holding Company LLC | Performance optimization for data persistency in asynchronous replication setups |
US10860555B2 (en) | 2018-08-27 | 2020-12-08 | Dell Products, L.P. | Method and apparatus for two tier data deduplication using weighted graphs |
US11210245B2 (en) | 2018-10-09 | 2021-12-28 | EMC IP Holding Company LLC | Data transmission techniques between systems having different communication speeds |
US10613793B1 (en) | 2018-11-01 | 2020-04-07 | EMC IP Holding Company LLC | Method to support hash based xcopy synchronous replication |
US10776029B2 (en) | 2018-12-21 | 2020-09-15 | Dell Products, L.P. | System and method for dynamic optimal block size deduplication |
CN109688013B (zh) * | 2019-01-02 | 2021-08-20 | 郑州云海信息技术有限公司 | 一种检测多级级联box主机名与sn匹配的方法及系统 |
US11481137B2 (en) | 2019-01-29 | 2022-10-25 | EMC IP Holding Company LLC | Data replication techniques |
US10719249B1 (en) | 2019-01-31 | 2020-07-21 | EMC IP Holding Company LLC | Extent lock resolution in active/active replication |
US10853200B2 (en) | 2019-02-01 | 2020-12-01 | EMC IP Holding Company LLC | Consistent input/output (IO) recovery for active/active cluster replication |
US11194666B2 (en) | 2019-04-26 | 2021-12-07 | EMC IP Holding Company LLC | Time addressable storage in a content addressable storage system |
US10719257B1 (en) | 2019-04-29 | 2020-07-21 | EMC IP Holding Company LLC | Time-to-live (TTL) license management in an active/active replication session |
US11157184B2 (en) | 2019-04-30 | 2021-10-26 | EMC IP Holding Company LLC | Host access to storage system metadata |
US11216388B2 (en) | 2019-04-30 | 2022-01-04 | EMC IP Holding Company LLC | Tiering between storage media in a content aware storage system |
US10659076B1 (en) | 2019-04-30 | 2020-05-19 | EMC IP Holding Company LLC | Reducing the amount of data stored in a sequence of data blocks by combining deduplication and compression |
US11301138B2 (en) | 2019-07-19 | 2022-04-12 | EMC IP Holding Company LLC | Dynamic balancing of input/output (IO) operations for a storage system |
US10908828B1 (en) | 2019-07-25 | 2021-02-02 | EMC IP Holding Company LLC | Enhanced quality of service (QoS) for multiple simultaneous replication sessions in a replication setup |
US11238063B2 (en) | 2019-07-25 | 2022-02-01 | EMC IP Holding Company LLC | Provenance-based replication in a storage system |
US11416354B2 (en) | 2019-09-05 | 2022-08-16 | EMC IP Holding Company LLC | Techniques for providing intersite high availability of data nodes in a virtual cluster |
US11379289B2 (en) | 2019-10-08 | 2022-07-05 | EMC IP Holding Company LLC | Encryption detection |
US11265374B2 (en) | 2019-10-15 | 2022-03-01 | EMC IP Holding Company LLC | Cloud disaster recovery |
US11163477B2 (en) | 2019-10-29 | 2021-11-02 | EMC IP Holding Company LLC | Concurrent copy emulation |
US11237921B2 (en) | 2019-11-22 | 2022-02-01 | EMC IP Holding Company LLC | Protecting storage backup configuration |
US11429493B2 (en) | 2020-01-20 | 2022-08-30 | EMC IP Holding Company LLC | Remote rollback of snapshots for asynchronous replication |
US11461303B2 (en) | 2020-02-06 | 2022-10-04 | EMC IP Holding Company LLC | IO metadata management for directly connected host |
US11288131B2 (en) | 2020-02-27 | 2022-03-29 | EMC IP Holding Company LLC | Extending snapshot retention |
US11307933B2 (en) | 2020-02-28 | 2022-04-19 | EMC IP Holding Company LLC | Automated targetless snapshots |
US11644951B2 (en) | 2020-04-28 | 2023-05-09 | EMC IP Holding Company LLC | Dynamic dashboard of user interface displaying primary object and related objects |
US11226836B2 (en) | 2020-05-19 | 2022-01-18 | EMC IP Holding Company LLC | Dynamic restructuring of user interface based on usage data |
US11360693B2 (en) | 2020-05-27 | 2022-06-14 | EMC IP Holding Company LLC | Identifying point-in-time asynchronous application data |
US11204713B1 (en) | 2020-05-28 | 2021-12-21 | EMC IP Holding Company LLC | Techniques for selection of a data reduction technique when performing data replication |
US11455320B2 (en) | 2020-08-31 | 2022-09-27 | EMC IP Holding Company LLC | Automated expansion and reduction of replicated data sets |
US11468091B2 (en) | 2020-09-17 | 2022-10-11 | EMC IP Holding Company LLC | Maintaining consistency of asynchronous replication |
US11593396B2 (en) | 2020-09-23 | 2023-02-28 | EMC IP Holding Company LLC | Smart data offload sync replication |
US11281407B1 (en) | 2020-09-23 | 2022-03-22 | EMC IP Holding Company LLC | Verified write command in active-active replication |
US11461018B2 (en) | 2020-09-29 | 2022-10-04 | EMC IP Holding Company LLC | Direct snapshot to external storage |
US11379328B2 (en) | 2020-09-29 | 2022-07-05 | EMC IP Holding Company LLC | Transitioning from a donor four site data replication system to a target four site data replication system |
US11379144B2 (en) | 2020-09-29 | 2022-07-05 | EMC IP Holding Company LLC | Compliance of replicated data sets |
US11481138B2 (en) | 2020-09-30 | 2022-10-25 | EMC IP Holding Company LLC | Creating indentical snapshots |
US11422704B2 (en) | 2020-10-27 | 2022-08-23 | EMC IP Holding Company LLC | Adapting service level policies for external latencies |
US11392311B2 (en) * | 2020-10-30 | 2022-07-19 | EMC IP Holding Company LLC | Overlapping replication cycles for asynchronous replication |
US11567876B2 (en) | 2020-10-30 | 2023-01-31 | EMC IP Holding Company LLC | Resolving cache slot locking conflicts for remote replication |
US11893260B2 (en) | 2021-04-22 | 2024-02-06 | EMC IP Holding Company LLC | Snapshot-based remote replication |
US11513900B2 (en) | 2021-04-22 | 2022-11-29 | EMC IP Holding Company LLC | Remote replication of snapshots taken while replication was inactive |
US11755230B2 (en) | 2021-04-22 | 2023-09-12 | EMC IP Holding Company LLC | Asynchronous remote replication of snapshots |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3835312A (en) * | 1973-03-15 | 1974-09-10 | Gte Automatic Electric Lab Inc | Recovery control circuit for central processor of digital communication system |
US5369767A (en) | 1989-05-17 | 1994-11-29 | International Business Machines Corp. | Servicing interrupt requests in a data processing system without using the services of an operating system |
US5233618A (en) | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
US5206939A (en) | 1990-09-24 | 1993-04-27 | Emc Corporation | System and method for disk mapping and data retrieval |
US5544347A (en) | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US5381539A (en) | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
US5615329A (en) | 1994-02-22 | 1997-03-25 | International Business Machines Corporation | Remote data duplexing |
US5845147A (en) | 1996-03-19 | 1998-12-01 | Emc Corporation | Single lock command for an I/O storage system that performs both locking and I/O data operation |
US5901327A (en) | 1996-05-28 | 1999-05-04 | Emc Corporation | Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring |
US5857208A (en) | 1996-05-31 | 1999-01-05 | Emc Corporation | Method and apparatus for performing point in time backup operation in a computer system |
US5778394A (en) | 1996-12-23 | 1998-07-07 | Emc Corporation | Space reclamation system and method for use in connection with tape logging system |
US6222840B1 (en) * | 1996-12-30 | 2001-04-24 | Compaq Computer Corporation | Method and system for performing concurrent read and write cycles in network switch |
US6061770A (en) * | 1997-11-04 | 2000-05-09 | Adaptec, Inc. | System and method for real-time data backup using snapshot copying with selective compaction of backup data |
US6157991A (en) | 1998-04-01 | 2000-12-05 | Emc Corporation | Method and apparatus for asynchronously updating a mirror of a source device |
US6721824B1 (en) * | 1998-06-19 | 2004-04-13 | Cisco Technology, Inc. | Method and apparatus for assisting communication of information between two processes |
US6301643B1 (en) * | 1998-09-03 | 2001-10-09 | International Business Machines Corporation | Multi-environment data consistency |
US6209002B1 (en) | 1999-02-17 | 2001-03-27 | Emc Corporation | Method and apparatus for cascading data through redundant data storage units |
US6345346B1 (en) * | 1999-02-26 | 2002-02-05 | Voom Technologies | Substantially instantaneous storage restoration for non-computer forensics applications |
JP2003534680A (ja) * | 2000-04-04 | 2003-11-18 | コムテック テレコミュニケーションズ コーポレイション | 強化型ターボプロダクト符号復号器システム |
US6532527B2 (en) * | 2000-06-19 | 2003-03-11 | Storage Technology Corporation | Using current recovery mechanisms to implement dynamic mapping operations |
US6889232B2 (en) * | 2001-02-15 | 2005-05-03 | Microsoft Corporation | System and method for data migration |
US6625704B2 (en) * | 2001-08-08 | 2003-09-23 | Sangate Systems, Inc. | Data backup method and system using snapshot and virtual tape |
AU2002326116A1 (en) | 2001-08-14 | 2003-03-03 | Storeage Networking Technologies | Asynchronous mirroring in a storage area network |
US7249193B1 (en) | 2001-08-28 | 2007-07-24 | Emc Corporation | SRDF assist |
JP3983516B2 (ja) | 2001-10-25 | 2007-09-26 | 株式会社日立製作所 | 記憶装置システム |
US6898685B2 (en) | 2003-03-25 | 2005-05-24 | Emc Corporation | Ordering data writes from a local storage device to a remote storage device |
US20050210304A1 (en) * | 2003-06-26 | 2005-09-22 | Copan Systems | Method and apparatus for power-efficient high-capacity scalable storage system |
US8799225B2 (en) * | 2003-11-05 | 2014-08-05 | Lumigent Technologies, Inc. | Process and system for auditing database activity |
US7054883B2 (en) * | 2003-12-01 | 2006-05-30 | Emc Corporation | Virtual ordered writes for multiple storage devices |
-
2003
- 2003-12-01 US US10/724,669 patent/US7054883B2/en active Active
-
2004
- 2004-10-19 CN CNA2004800355554A patent/CN1886743A/zh active Pending
-
2006
- 2006-01-30 US US11/343,152 patent/US8914596B2/en active Active
-
2011
- 2011-08-31 US US13/222,321 patent/US8924665B2/en active Active
-
2014
- 2014-11-11 US US14/538,089 patent/US9606739B1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114527897A (zh) * | 2020-10-30 | 2022-05-24 | 国际商业机器公司 | 在应用之间跟踪和恢复指针位置 |
Also Published As
Publication number | Publication date |
---|---|
US20110314237A1 (en) | 2011-12-22 |
US7054883B2 (en) | 2006-05-30 |
US9606739B1 (en) | 2017-03-28 |
US20050120056A1 (en) | 2005-06-02 |
US8924665B2 (en) | 2014-12-30 |
US20060195656A1 (en) | 2006-08-31 |
US8914596B2 (en) | 2014-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1886743A (zh) | 对多存储设备的虚拟排序的写 | |
CN1764904A (zh) | 虚拟排序的写 | |
CN101031891A (zh) | 虚拟排序的写 | |
CN1308851C (zh) | 数据处理系统中执行远程复制的方法和存储数据的方法 | |
CN1149480C (zh) | 文件存储装置 | |
CN1137439C (zh) | 容错计算机系统 | |
CN1214323C (zh) | 恢复数据库时并行主从备份读取的系统和方法 | |
CN1291320C (zh) | 保存大容量存储系统的所选数据的快照 | |
CN1311365C (zh) | 分布式共享磁盘系统中的磁盘写操作 | |
CN1114859C (zh) | 数据共享方法和计算机体系结构 | |
CN100428190C (zh) | 三者间的异步复制 | |
CN1245689C (zh) | 以非破坏性方式升级驱动器固件的方法和系统 | |
CN1242333C (zh) | 数据管理方法、数据异步镜像方法和数据存储系统 | |
CN100338582C (zh) | 存储装置系统 | |
CN1729455A (zh) | 数据处理系统内从失败的恢复 | |
CN1524222A (zh) | 信息备份系统和方法 | |
CN1809828A (zh) | 用于恢复数据库中单元的系统和方法 | |
CN1178937A (zh) | 控制输出的方法和装置 | |
CN1690973A (zh) | 远程复制方法及远程复制系统 | |
CN1908907A (zh) | 改善资料写入效率的方法以及实施此方法的子系统与系统 | |
CN1820243A (zh) | 虚拟存储装置 | |
JP2005242403A (ja) | 計算機システム | |
CN1783024A (zh) | 用于存储系统内的错误策略的方法和系统 | |
CN1959717A (zh) | 订单驱动的海量遥感数据集群化预处理系统及其方法 | |
CN1848069A (zh) | 数据存储设备、重构控制设备、重构控制方法及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |