CN100380304C - 虚拟存储装置 - Google Patents

虚拟存储装置 Download PDF

Info

Publication number
CN100380304C
CN100380304C CNB038003783A CN03800378A CN100380304C CN 100380304 C CN100380304 C CN 100380304C CN B038003783 A CNB038003783 A CN B038003783A CN 03800378 A CN03800378 A CN 03800378A CN 100380304 C CN100380304 C CN 100380304C
Authority
CN
China
Prior art keywords
virtual
data
magnetic track
logical devices
virtual bench
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.)
Expired - Lifetime
Application number
CNB038003783A
Other languages
English (en)
Other versions
CN1820243A (zh
Inventor
纳坦·维什利茨科
哈伊姆·科佩洛维茨
哈纳·莫雷塞特
布鲁斯·A.·波科克
道格拉斯·E.·勒克罗恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of CN1820243A publication Critical patent/CN1820243A/zh
Application granted granted Critical
Publication of CN100380304C publication Critical patent/CN100380304C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Abstract

主机通过发送第一指令给存储装置以注册逻辑存储区从而在存储装置的逻辑存储区和虚拟存储区之间建立耦合。在第一指令之后,主机发送第二指令给存储装置以使逻辑存储区和虚拟存储区之间建立联系。在第二指令之后,主机发送第三指令给存储装置以激活逻辑存储区和虚拟存储区之间的耦合,其中,在激活耦合后,虚拟存储区的指针指向逻辑存储区的段,且其中一对逻辑存储区的写使得数据被从逻辑存储区拷贝到存储装置的另一区域。

Description

虚拟存储装置
技术背景
1.技术领域
本申请涉及计算机存储装置,特别是涉及提供存储在计算机存储装置上的数据的一部分的备份的领域。
2.相关现有技术
主处理机系统使用存储装置可存储和检索数据,存储装置包含:多个主机接口单元(主机适配器)、磁盘驱动器、以及磁盘接口单元(磁盘适配器)。这样的存储装置由,例如,麻萨诸塞州霍普金顿的EMC有限公司提供,并在授权给Yanai等人的美国专利5,206,939、授权给Galtzur等人的美国专利5,778,394、授权给Vishlitzky等人的美国专利5,845,147以及授权给Ofek的美国专利5,857,208中公开。主机系统通过随存储装置提供的多个通道访问存储装置。主机系统通过存储装置的通道提供数据和访问控制信息,存储装置也通过这些通道提供数据给主机系统。主机系统不直接寻址存储装置的磁盘驱动器,而是更愿访问呈现给主机系统的多个逻辑卷。逻辑卷可以、也可不对应于实际的磁盘驱动器。
在一些实例中,想要提供一逻辑卷的备份,该备份接着被其他的进程访问。例如,在实际所存储的数据上测试新软件,可能会做一包含数据的逻辑卷的备份,与原始数据相对,该备份用于测试新软件。一旦测试完成,备份可被消除。从而新软件在不影响实际数据的情形下而在实际数据上得以测试。这就减少了因测试新软件和/或新功能而破坏实际数据的可能性。
进行这样的备份的一个困难在于:该备份要求与从其获得数据的逻辑卷一样多的存储空间,因为备份处理简单地创立了一包含原始卷的所有数据的新卷。此外,在一些实例中,原始卷与备份卷之间的差是最小的。因而,逻辑卷的这样的备份所需要的额外的存储空间使用得有点没有效率,因为其仅复制已经存在的数据。因此,需要提供一有效使用存储空间的拷贝数据的设备。
发明概述
根据本发明,访问所存储的数据包括:提供一具有指针表的虚拟存储区,所述指针指向至少两个其他存储区的段,其中虚拟存储区不包含数据段,响应于访问虚拟存储区的数据的请求,确定其他存储区的哪一特定区包含数据,并访问使用指针表的其他存储区的特定区上的数据。访问所存储的数据还可包括:将其他存储区的第一区与虚拟存储区关联,虚拟存储区代表其他存储区的第一区的数据的备份。访问所存储的数据还可包括:当虚拟存储区与其他存储区的第一区初始关联时,使得表的所有指针初始指向其他存储区的第一区的段。访问所存储的数据还可包括:响应于对其他存储区的第一区上的第一段的写,拷贝第一段的数据到其他存储区的第二区上的第二段并使得表指针的对应指针指向第二段。在从第一段拷贝数据到第二段之前,第二段应保持为不包含数据的空段。访问所存储的数据还可包括:保持一其他存储区的第二区的所有空段的双链表。访问所存储的数据还可包括:将数据指示器与其他存储区的第一区的段关联,用于特定段的数据指示器指示在其他存储区的第一区已经与虚拟存储区关联后,对特定段是否已执行写操作。访问所存储的数据还可包括:响应于对其他存储区的第一区上的第一段的写,以及数据指示器指示在其他存储区的第一区已经与虚拟存储区关联后还没有对第一段执行写操作,拷贝第一段的数据到其他存储区的第二区上的第二段,并使得表指针的对应指针指向第二段。访问所存储的数据还可包括:发送状态信息到一装置,该信息使得在从第一段拷贝数据到第二段后执行写操作。每一数据段可以是一数据磁道。每一存储区可以是存储装置。
进一步地根据本发明,访问所存储的数据包括:提供具有第一指针表的第一虚拟存储区,所述指针指向至少两个其他存储区的段,第一虚拟存储区不包含数据段,其他存储区的第一区与第一虚拟存储区关联,在这里第一虚拟存储区代表在时间的第一点上其他存储区的第一区的数据的备份;提供具有第二指针表的第二虚拟存储区,所述指针指向至少两个其他存储区的段,第二虚拟存储区不包含数据段,其他存储区的第一区与第二虚拟存储区关联,这里第一虚拟存储区代表在时间的第二点上其他存储区的第一区的数据的备份,响应于访问虚拟存储区之一的数据的请求,确定其他存储区的哪一特定区包含数据,使用指针表之一访问其他存储区的特定区上的数据。访问所存储的数据还可包括:在第一虚拟存储区初始与其他存储区的第一区关联时,使得第一表的所有指针初始指向其他存储区的第一区的段,且在第二虚拟存储区初始与其他存储区的第一区关联时,使得第二表的所有指针初始指向其他存储区的第一区的段。访问所存储的数据还可进一步包括:将第一数据指示器与其他存储区的第一区的段关联,在这里,用于第一其他存储区的特定段的第一数据指示器指示在其他存储区的第一区已经与第一虚拟存储区关联后,是否已向特定段执行写操作;将第二数据指示器与其他存储区的第一区的段关联,在这里,用于第一其他存储区的特定段的第二数据指示器指示:在其他存储区的第二区已经与第二虚拟存储区关联后,是否已向特定段执行写操作。访问所存储的数据也可包括:响应于向其他存储区的第一区上的第一段进行写,以及数据指示器指示在其他存储区的第一区已与第一虚拟存储区关联后还没有对第一段执行写操作,拷贝第一段的数据到其他存储区的第二区上的第二段,并使第一表的指针中的对应指针指向第二段。访问所存储的数据也可包括:响应于向其他存储区的第一区上的第一段进行写,以及数据指示器指示在其他存储区的第一区已与第一及第二虚拟存储区关联后还没有对第一段执行写操作,拷贝第一段的数据到其他存储区的第二区上的第二段,并使第一表的指针中的对应指针及第二表的指针中的对应指针指向第二段。访问所存储的数据也可包括:响应于对应第二段的第一虚拟存储区的写,从第二段拷贝数据到第三段。访问所存储的数据也可包括:使得第一表的指针中的对应指针指向第三段。访问所存储的数据也可包括:使得第二表的指针中的对应指针指向第三段。第一时间可与第二时间相同。第一时间也可不同于第二时间。每一数据段可以是一数据磁道。每一存储区可以是存储装置。
进一步根据本发明,一计算机程序产品包括:可执行编码提供具有指针表的虚拟存储区,所述指针指向至少两个其他存储区的段,虚拟存储区不包含数据段,可执行编码响应于访问虚拟存储区的数据的请求而确定其他存储区的哪一特定区包含数据,且可执行编码使用指针表访问其他存储区的特定区上的数据。计算机程序产品还可包括:可执行编码还将虚拟存储区与其他存储区的第一区关联,在这里,虚拟存储区代表其他存储区的第一区的数据的拷贝。计算机程序产品也可包括:当虚拟存储区初始与其他存储区的第一区关联时,可执行编码使得指针表的所有指针初始指向其他存储区的第一区的段。计算机程序产品还可进一步包括:响应于向其他存储区的第一区的第一段进行写,可执行编码拷贝第一段的数据到其他存储区的第二区上的第二段,并使表指针的对应指针指向第二段。计算机程序产品还可包括:可执行编码将数据指示器与其他存储区的第一区的段关联,在这里,用于特定段的数据指示器指示在其他存储区的第一区已经与虚拟存储区关联后,是否已向特定段执行写操作。计算机程序产品也可包括:响应于向其他存储区的第一区上的第一段进行写,以及数据指示器指示在其他存储区的第一区已与虚拟存储区关联后还没有对第一段执行写操作,可执行编码拷贝第一段的数据到其他存储区的第二区上的第二段,并使表指针的对应指针指向第二段。计算机程序产品也可包括:可执行编码发送状态信息给在从第一段拷贝数据到第二段之后使得写操作被执行的装置。每一数据段可以是一数据磁道。每一存储区可以是存储装置。
进一步地根据本发明,虚拟存储装置包括至少一用于将虚拟存储装置与标准存储装置关联的表,用于虚拟存储装置的数据段的存储器,在此,用于段的存储器的第一部分是标准存储装置的数据段,以及由至少一表提供的第一多个指针,在此至少部分指针指向对应于第一部分的标准存储装置的段。虚拟存储装置也可包括:用于段的存储器的第二部分,所述段包含不同于标准存储装置的映射于第二段的对应段上的数据的数据;以及由至少一表提供的第二多个指针,在此第二多个指针指向不同于标准存储装置的装置的段。每一第二部分的段可能包含标准存储装置的对应段上的数据的早先版本。每一数据段可以是一数据磁道。
根据本发明,主机在存储装置的逻辑存储区与虚拟存储区之间建立耦合,其通过发送第一指令给存储装置以注册逻辑存储区,在第一指令之后,主机发送第二指令给存储装置以使逻辑存储区与虚拟存储区关联,在第二指令之后,主机发送第三指令给存储装置以启动逻辑存储区与虚拟存储区之间的耦合,在此,在启动耦合之后,虚拟存储区的指针指向逻辑存储区的段,且向逻辑存储区的写使得数据从逻辑存储区被拷贝到存储装置的另一区并使得虚拟存储区的对应指针指向该另一区。第一指令可导致虚拟存储区的产生。第二指令可导致虚拟存储区的产生。第二指令可包括附加的、选自包含下面参数的组的参数:虚拟存储区的新名称,以及一确定虚拟存储区对主机是否可用的指示器。存储区可以是装置。
进一步地根据本发明,主机在存储装置的多个逻辑存储区的至少一个区与多个虚拟存储区的对应区的至少一个区之间建立耦合,其通过发送指令给存储装置以使逻辑存储区的至少一个区与虚拟存储区的对应区关联;在发送指令之后,使得多个逻辑存储区的至少一个区与多个虚拟存储区的对应区之间的耦合启动,在此,在启动之后,对应于耦合的虚拟存储区的至少一个区的指针指向逻辑存储区的对应区的段,且向逻辑存储区的对应区的写使得数据从逻辑存储区的对应区被拷贝到存储装置的另一区并使得虚拟存储区的至少一个区的对应指针指向该另一区。主机发送指令可导致虚拟存储区的至少一个区的产生。使得启动可能包括主机发送附加指令。附加指令可包括选自包含下面参数的组的参数:虚拟存储区的至少一个区的新名称,以及一确定虚拟存储区的至少一个区对主机是否可用的指示器。主机在存储装置的多个逻辑存储区的至少一个区与多个虚拟存储区的对应区的至少一个区之间建立耦合,可能还包括:主机保存一逻辑存储区及虚拟存储区的列表。耦合的启动可能包括:将列表从主机传递给存储装置。列表可以是链表。传递列表可能包括:传递一指针给一数据结构,该数据结构包含列表或指向列表的指针。逻辑存储区整个可以是单连续组的一部分。使得耦合启动可包括:主机为每一逻辑存储区/虚拟存储区对提供一启动指令给存储装置。使得耦合启动可包括:提供单一启动指令给存储装置以启动所有逻辑存储区/虚拟存储区对。存储区可以是装置。
进一步根据本发明,在存储装置的逻辑存储区与虚拟存储区之间建立耦合的计算机软件包括:发送第一指令给存储装置以注册逻辑存储区的可执行编码,发送第二指令给存储装置以在发送第一指令之后使逻辑存储区与虚拟存储区相关联的可执行编码,发送第三指令给存储装置以在第二指令之后启动逻辑存储区与虚拟存储区之间的耦合的可执行编码,在此,在启动耦合之后,虚拟存储区的指针指向逻辑存储区的段,且向逻辑存储区的写使得数据被从逻辑存储区拷贝到存储装置的另一区并使得虚拟存储区的对应指针指向该另一区。第二指令可包括附加的、选自包含下面参数的组的参数:虚拟存储区的新名称,以及一确定虚拟存储区对主机是否可用的指示器。
进一步根据本发明,在存储装置的多个逻辑存储区的至少一个区与多个虚拟存储区的对应区的至少一个区之间建立耦合的计算机软件包括:发送指令给存储装置以使逻辑存储区的至少一个区与虚拟存储区的对应区相关联的可执行编码,以及在指令发送之后使得多个逻辑存储区的至少一个区与多个虚拟存储区的对应区之间的耦合启动的可执行编码,在此,在启动之后,对应于耦合的虚拟存储区的至少一个区的指针指向逻辑存储区的对应区的段,且向逻辑存储区的对应区的写使得数据被从逻辑存储区的对应区拷贝到存储装置的另一区并使得虚拟存储区的至少一个区的对应指针指向该另一区。使得启动的可执行编码可发送附加指令。附加指令可包括选自包含下面参数的组的参数:虚拟存储区的至少一个区的新名称,以及一确定虚拟存储区的至少一个区对主机是否可用的指示器。计算机软件还可包括:保存逻辑存储区及虚拟存储区的列表的可执行编码。
进一步地根据本发明,处理数据包括:提供一包含数据段的第一类型的第一存储区,提供一包含数据段的第一类型的第二存储区,提供一第二类型的第三存储区,在这里,第二类型对其中的每一段均具有一指向下列之一的指针:对应的第一存储区的数据段以及对应的第二存储区的数据段,使得第三存储区不能被访问,在使得第三存储区不能被访问之后,从对应于第三存储区的指向第二存储区的段的指针的第二存储区提供数据。处理数据还可包括:在提供存储区之后且在使得第三存储区不可使用之前,对由第三存储区的对应指针指向的第一存储区的特定段操作一写,其从第一存储区的特定段拷贝数据到第二存储区的对应段并调整第三存储区的对应指针指向第二存储区的对应段。处理数据还可包括:在使第三存储区不可使用之后,通过往那里写数据而对第一存储区的特定段操作一写。使得第三存储区不可使用可包括:在用于第一存储区的首部中提供一值,该值在数据被写向第一存储区的对应段时,可指示没有与所遇到的置保护位有关的操作被执行。处理数据还可包括:在提供值给首部前阻止访问第一存储区,及在提供值给首部后允许访问第一存储区。存储区可以是装置。
进一步根据本发明,从虚拟存储区检索所请求的数据包括:确定虚拟存储区是否已被无效,如果虚拟存储区被无效,确定所请求的数据是否对应于在无效之前由虚拟存储区处理的数据,如果所请求的数据对应于在无效之前由虚拟存储区处理的数据,提供所请求的数据。确定所请求的数据是否对应于在无效之前由虚拟存储区处理的数据可包括:检测对应的标准逻辑存储区的保护位。提供所请求的数据可包括读虚拟存储区。存储区可以是装置。
进一步根据本发明,恢复数据到先前版本,包括:获取数据的当前版本,获取先前已存档的数据段,迭代地应用先前已存档的数据段到当前版本,并导致中间版本直到数据对应于数据的先前版本。先前已存档的段可对应于在存档以前已存在的段的版本。存档可包括:提供一包含指针的虚拟存储区给逻辑存储区的数据段,且响应于向逻辑存储区的段的写,从逻辑存储区拷贝数据到另一区并使虚拟存储区指向该另一区,其中另一区包含已存档的数据。
进一步根据本发明,计算机软件处理数据,所述数据为包含数据段的第一类型的第一存储区、包含数据段的第一类型的第二存储区、以及第二类型的第三存储区所使用的数据,其中,第二类型对其中的每一段均具有一指向下列之一的指针:第一存储区的对应数据段以及第二存储区的对应数据段,以及软件包括使得第三存储区不能被访问的可执行编码,以及在使得第三存储区不能被访问之后,从对应于第三存储区的指向第二存储区的段的指针的第二存储区提供数据的可执行编码。使得第三存储区不可被访问的可执行编码可包括:在首部中为第一存储区提供一值,该值在数据被写向第一存储区的对应段时,可指示没有与所遇到的置保护位有关的操作被执行。
进一步根据本发明,从虚拟存储区检索所请求的数据的计算机软件包括:确定虚拟存储区是否被无效的可执行编码,如果虚拟存储区被无效,确定所请求的数据是否对应于在无效前由虚拟存储区所处理的数据的可执行编码,以及如果所请求的数据对应于在无效前由虚拟存储区所处理的数据,提供所请求的数据的可执行编码。软件还可包括检查对应标准逻辑存储区的保护位的可执行编码。软件还可包括读虚拟存储区的可执行编码。
进一步根据本发明,恢复数据到先前版本的计算机软件包括:获取数据当前版本的可执行编码、获取先前已存档的数据段的可执行编码、迭代地应用先前已存档的数据段到当前版本并导致中间版本直到数据对应于数据的先前版本的可执行编码。先前已存档的段可对应于在存档以前已存在的段的版本。
进一步根据本发明,访问数据包括:一在包含数据的第一类型的第一存储区与包含指向在第一类型的存储区中提供的数据的指针的第二类型的第二存储区之间建立关联的主机,其中存储区在耦合于主机的存储装置中提供,响应于主机在建立关联后向第一存储区的特定段写数据,特定段在写操作被执行前被从第一存储区拷贝到第一类型的第三存储区,且第二存储区的对应指针被调整到指向第三存储区。访问数据还可包括:从第二存储区恢复数据到第一存储区。访问数据还可包括:从第二存储区恢复数据到第一类型的第四存储区。第四存储区可以是第一存储区的拆分镜像。第一及第二存储区可以是存储装置。建立关联可包括为第二存储装置提供一可选择的新名称的主机。建立关联可包括为第二存储装置提供一可选择的在线/离线参数的主机。访问数据还可包括通过使第二存储区不可为主机所用而使第二存储区无效。访问数据还可包括使从第一存储区拷贝到第三存储区的段可为主机利用。存储区可是装置。
进一步根据本发明,提供不包含数据段的虚拟存储区,包括:提供第一及第二存储区,每个存储区包含数据段,及提供多个指针,其中每一指针指向下述之一:第一存储区的一段或第二存储区的一段。虚拟存储区可表现第一存储区在一时间点的备份。在向由虚拟存储区的特定指针指向的、第一存储区的特定段写数据之前,特定段可被拷贝到第二存储区且特定指针也转而指向那里。指针、虚拟存储区、第一存储区、第二存储区均可在存储装置上提供。对应于虚拟存储区的数据可被耦合于存储装置的多个主机处理器访问。存储区可以是存储装置。
进一步根据本发明,访问结合不包含数据段的虚拟存储区所存储的数据包括:获得对应于数据的虚拟存储区的指针,响应于指向第一存储区的指针,访问第一存储区,并响应于指向第二存储区的指针,访问第二存储区。指针、虚拟存储区、第一存储区及第二存储区均可在存储装置上提供。对应于虚拟存储区的数据可被耦合于存储装置的多个主机处理器访问。存储区可以是装置。
进一步根据本发明,提供不包含数据段的虚拟存储区的计算机软件,包括提供第一及第二存储区的可执行编码,每一存储区包含数据段,并包括提供多个指针的可执行编码,其中每个指针指向下述之一:第一存储区的一段或第二存储区的一段。虚拟存储区可代表第一存储区在一时间点的备份。计算机软件还可包括可执行编码,在向由虚拟存储区的特定指针指向的、第一存储区的特定段写数据之前,该编码拷贝特定段到第二存储区且调整特定指针指向那里。
进一步根据本发明,访问结合不包含数据段的虚拟存储区所存储的数据的计算机软件包括:获得对应于数据的虚拟存储区的指针的可执行编码,以及响应于指向第一存储区的指针访问第一存储区的可执行编码,再及响应于指向第二存储区的指针访问第二存储区的可执行编码。
进一步根据本发明,建立多个存储区包括:将包含数据段的、第一类型的第一多个存储区中的每个与具有指向第一类型的数据存储区的备选段的指针的第二类型的第二多个存储区的对应区进行关联,其中,最初第二多个存储区没有任何区可用于访问对应于那里的数据;在关联所有第一及第二多个存储区后,启动第二多个存储区以使第二多个存储区可用于访问数据。建立多个存储区还可包括:在启动第二多个存储区之前,设定第二多个存储区的指针指向第一多个存储区的对应区的段。建立多个存储区还可包括:在启动第二多个存储区之后,响应于向第一多个存储区之一的写,拷贝其中的一部分数据到数据存储区的备选段,并调整第二多个存储区的对应区的指针指向数据存储区的备选段。建立多个存储区还可包括:在启动第二多个存储区之前使能对第一多个存储区进行独占访问,及在启动第二多个存储区之后使对第一多个存储区的独占访问终止。建立多个存储区还可包括:在启动第二多个存储区的对应区之前使能对第一多个存储区之一进行独占访问,及在启动第二多个存储区的对应区之后使对第一多个存储区之一的独占访问终止。启动第二多个存储区可包括:在装置首部为第二多个存储区的每个提供一值。建立多个存储区还可包括:为逻辑存储区及虚拟存储区建立一连续组(consistency group)。将第一多个存储区的每个与第二多个存储区的对应区进行关联可包括:制做一关联后的存储区的列表,以在与启动存储区有关时使用。列表可以是链接表。启动第二多个存储区可包括:为第一多个存储区的每个区的每一段置位特定保护位,并在每一首部中为每一第一多个存储区设定一值,其中该值指出:响应于对具有保护位置位的第一多个存储区的段的写,特殊的处理将被执行。存储区可以是装置。
根据本发明,建立多个存储区的计算机软件包括:使包含数据段的、第一类型的第一多个存储区中的每个与具有指向第一类型的数据存储区的备选段的指针的第二类型的第二多个存储区的对应区关联的可执行编码,其中,最初第二多个存储区没有任何区可用于访问对应于那里的数据;在关联所有第一及第二多个存储区后,启动第二多个存储区以使第二多个存储区可用于访问数据的可执行编码。计算机软件还可包括:在启动第二多个存储区之前,设定第二多个存储区的指针指向第一多个存储区的对应区的段的可执行编码。计算机软件还可包括:在启动第二多个存储区之后,响应于向第一多个存储区之一的写,拷贝其中的一部分数据到数据存储区的备选段、并调整第二多个存储区的对应区的指针指向数据存储区的备选段的可执行编码。计算机软件还可包括:在启动第二多个存储区之前使能对第一多个存储区进行独占访问的可执行编码,及在启动第二多个存储区之后使对第一多个存储区的独占访问终止的可执行编码。计算机软件还可包括:在启动第二多个存储区的对应区之前使能对第一多个存储区之一进行独占访问的可执行编码,及在启动第二多个存储区的对应区之后使对第一多个存储区之一的独占访问终止的可执行编码。启动第二多个存储区的可执行编码可包括:在装置首部为第二多个存储区的每个提供一值的可执行编码。计算机软件还可包括:为逻辑存储区及虚拟存储区建立一连续组的可执行编码。将第一多个存储区的每个与第二多个存储区的对应区进行关联的可执行编码可包括:制做一关联后的存储区的列表,以在与启动存储区有关时使用。列表可以是链接表。启动第二多个存储区的可执行编码可包括:为第一多个存储区的每个区的每一段置位特定保护位,并还可在每一首部中为每一第一多个存储区设定一值,其中该值指出:响应于对具有保护位置位的第一多个存储区的段的写,特殊的处理将被执行。
进一步根据本发明,恢复数据包括:在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,对于具有指向第三存储区的指针的第二存储区的每一特定数据段,以指向第三存储区的指针替换第一存储区的对应段。恢复数据还可包括:在替换第一存储区的所有特定段之后,解除第二存储区的分配。恢复数据还可包括:在替换第一存储区的所有特定段之后,使得数据从第三存储区拷贝到第一存储区。存储区可以是装置。
进一步根据本发明,恢复数据包括:在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,对于具有指向第三存储区的指针的第二存储区的每一特定数据段,以指向第三存储区的指针替换第一类型的第四存储区的对应段。对于具有指向第一存储区的指针的第二存储区的每一特定数据段,以指向第一存储区的指针替换第四存储区的对应段。恢复数据还可包括:在替换第四存储区的所有特定段之后,解除第二存储区的分配。恢复数据还可包括:在替换第四存储区的所有特定段之后,使得数据从第一及第三存储区拷贝到第四存储区。存储区可以是装置。
进一步根据本发明,恢复数据包括:在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,对于具有指向第三存储区的指针的第二存储区的每一特定数据段,以指向第三存储区的指针替换第一类型的第四存储区的对应段,其中第四存储区至少是第一存储区的部分镜像备份。恢复数据还可包括:在替换第四存储区的所有特定段之后,解除第二存储区的分配。恢复数据还可包括:在替换第四存储区的所有特定段之后,使得数据从第三存储区拷贝到第四存储区。存储区可以是装置。
进一步根据本发明,恢复数据包括:在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,从第二存储区拷贝数据到第二类型的第三存储区。恢复数据还可包括:在拷贝数据之后,解除第二存储区的分配。
进一步根据本发明,计算机软件结合一系统恢复数据,该系统在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,对于具有指向第三存储区的指针的第二存储区的每一特定数据段,软件包括以指向第三存储区的指针替换第一存储区的对应段的可执行编码。软件还可包括:在替换第一存储区的所有特定段之后,使得数据从第三存储区拷贝到第一存储区的可执行编码。
进一步根据本发明,计算机软件结合一系统恢复数据,该系统在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,对于具有指向第三存储区的指针的第二存储区的每一特定数据段,软件包括以指向第三存储区的指针替换第一类型的第四存储区的对应段的可执行编码;及对于具有指向第一存储区的指针的第二存储区的每一特定数据段,软件包括以指向第一存储区的指针替换第四存储区的对应段的可执行编码。计算机软件还可包括:在替换第四存储区的所有特定段之后,使得数据从第一及第三存储区拷贝到第四存储区的可执行编码。
进一步根据本发明,计算机软件结合一系统恢复数据,该系统在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,对于具有指向第三存储区的指针的第二存储区的每一特定数据段,软件包括以指向第三存储区的指针替换第一类型的第四存储区的对应段的可执行编码,其中第四存储区至少是第一存储区的部分镜像备份。计算机软件可包括:在替换第四存储区的所有特定段之后,使得数据从第三存储区拷贝到第四存储区的可执行编码。
进一步根据本发明,计算机软件结合一系统恢复数据,该系统在包含数据段的第一类型的第一存储区中提供数据,在第二类型的第二存储区中提供数据,其中对其中的每一数据段,第二类型至少具有下述之一:指向第一存储区的对应数据段的指针或指向第一类型的第三存储区的对应数据段的指针,以及,软件包括从第二存储区拷贝数据到第二类型的第三存储区的可执行编码。
附图简要说明
图1为与在此描述的系统连同使用的存储装置的简图。
图2为一存储器的简图,其示出了与在此描述的系统连同使用的不同逻辑卷。
图3为根据于此描述的系统,表示虚拟装置的使用的简图。
图4为根据于此描述的系统,表示多个虚拟装置的使用的简图。
图5示出了与于此描述的系统连同使用的装置表的简图。
图6为根据于此描述的系统,读与虚拟装置连同使用的表的流程图。
图7为根据于此描述的系统,向与虚拟装置连同使用的表写的流程图。
图8为根据于此描述的系统,更改虚拟装置表及建立虚拟装置的流程图。
图9为根据于此描述的系统,更改用于处理日志装置的磁道的数据结构的流程图。
图10为根据于此描述的系统,所执行的与读虚拟装置有关的步骤的流程图。
图11为根据于此描述的系统,由磁盘适配器执行的与向标准逻辑装置写有关的步骤的流程图,其中对该标准逻辑装置已建立一虚拟装置。
图12为根据于此描述的系统,由主机适配器执行的与向标准逻辑装置写有关的步骤的流程图,其中对该标准逻辑装置已建立一虚拟装置。
图13为根据于此描述的系统,所执行的与向虚拟装置写有关的步骤的流程图。
图14为所执行的与除去虚拟装置有关的步骤的流程图。
图15A、15B、15C为根据于此描述的系统的一实施例,更改存储装置的磁道的保护位的流程图。
图16A及16B为根据图15A、15B、15C的流程图,当保护位均被置位时,分别为用于图11、图12的流程图的备选处理的部分流程图。
图17为根据于此描述的系统,注册标准逻辑装置/虚拟装置对的流程图。
图18为根据于此描述的系统,将标准逻辑装置与虚拟装置关联的流程图。
图19A为根据于此描述的系统,所执行的与启动一个或更多标准逻辑装置/虚拟装置对有关的步骤的流程图。
图19B为根据于此描述的系统的另一实施例,所执行的与启动一个或更多标准逻辑装置/虚拟装置对有关的步骤的流程图。
图20A、20B、20C、20D、20E为根据于此描述的系统,将一虚拟装置恢复为一标准逻辑装置或另一虚拟装置的不同方法。
图21为根据于此描述的系统的第一实施例,所执行的将虚拟逻辑装置恢复为标准逻辑装置的步骤的流程图。
图22为根据于此描述的系统的第二实施例,所执行的将虚拟逻辑装置恢复为标准逻辑装置的步骤的流程图。
图23为根据于此描述的系统的第三实施例,所执行的将虚拟逻辑装置恢复为拆分镜像标准逻辑装置的步骤的流程图。
图24为根据于此描述的系统,主机与存储装置之间互连的流程图。
图25为根据于此描述的系统,建立标准逻辑装置/虚拟装置对的主机应用软件调用的流程图。
图26为根据于此描述的系统,恢复虚拟装置为标准逻辑装置的主机应用软件调用的流程图。
图27为根据于此描述的系统,使虚拟装置无效的流程图。
图28为根据于此描述的系统,从无效的虚拟装置的磁道获得对于被无效装置的数据的流程图。
图29为根据于此描述的系统,所执行的与提供滚动备份有关的步骤的流程图。
图30为根据于此描述的系统,从滚动备份恢复数据的流程图。
具体实施例
参见图1,存储装置30包括多个主机适配器(HA)32-34、多个磁盘适配器(DA)36-38、及多个磁盘驱动器42-44。磁盘驱动器42-44的每一个均连接到磁盘适配器36-38的对应适配器。存储装置30还包括一可被主机适配器32-34与磁盘适配器36-38访问的全局存储器46。存储装置30还包括一可访问全局存储器46的RDF适配器(RA)48。RA48可经由一数据链路52与一个或多个另外的远程存储装置(未示出)和/或一个或多个其他远程装置(未示出)进行通信。主机适配器32-34、磁盘适配器36-38、全局存储器46及RDF适配器48均连接到总线54,总线54提供来帮助其间的通信。
每一主机适配器32-34可连接到一个或多个访问存储装置30的主机(未示出)。主机读存储在磁盘驱动器42-44上的数据并写数据到磁盘驱动器42-44。全局存储器46包含一保存来自磁盘驱动器42-44的数据磁道的高速缓存,以及用于可被主机适配器32-34、磁盘驱动器36-38及RDF适配器48访问的表的存储器。注意,对于在此的讨论,数据块均被描述为一磁道或多磁道数据。然而,本领域的普通技术人员将感激,于此描述的系统可与任何适当增加的数据量或数据段一起工作,包括可能的不定增加的数据量和/或固定增加的数据量。
参看图2,所示出的存储装置30包括多个标准逻辑装置61-68。每一标准逻辑装置61-68可对应于可被一个或多个连接到存储装置30的主机访问的卷。每一标准逻辑装置61-68可以、也可不对应于一磁盘驱动器42-44。因而,例如,标准逻辑装置61可对应于磁盘驱动器42、可对应于磁盘驱动器42的一部分、或可对应于磁盘驱动器42的一部分及磁盘驱动器43的一部分。对主机,每一标准逻辑装置61-68表现为磁盘存储器的一邻近块(contiguous block),即使每一标准逻辑装置61-68可、或不对应于磁盘驱动器42-44的实际邻近的物理存储器。
存储装置30也可包括多个虚拟装置71-74。对连接到存储装置30的主机,虚拟装置71-74表现为包含数据存储器的一邻近块的卷。虚拟装置71-74的每个可表示在一时间点上标准逻辑装置61-68之一的整体的备份、标准逻辑装置61-68之一的一部分、及标准逻辑装置61-68之一的整体及标准逻辑装置61-68之一的一部分的结合。然而,如在别处的更详细的描述那样,虚拟装置71-74不包含来自标准逻辑装置61-68的跟踪数据。作为替代,虚拟装置71-74的每个连接到一存贮部分或所有跟踪数据的日志装置76或日志装置78,如在别处的更详细的描述那样。虚拟装置71-74包含指向或标准逻辑装置61-68或日志装置76、78上的数据磁道的表。
虚拟装置71可表示一时间点上标准逻辑装置61的备份。如在别处的更详细的描述,虚拟装置71连接到日志装置76,日志装置76包含跟踪数据以使虚拟装置71对主机容易表现为一时间点上标准逻辑装置61的备份。对于一个以上的虚拟装置使用单个日志装置是可能的。因而,虚拟装置72-74被示出并连接到日志装置78。类似地,对于一个以上的虚拟装置代表时间点上的单个标准逻辑装置的多个备份也是可能的。因而,虚拟装置72、73被示出并作为时间点上标准逻辑装置64的备份。虚拟装置72、73可代表同一时间点标准逻辑装置64的备份,或者,做为选择,也可代表发生在不同时间的时间点上的标准逻辑装置64的备份。注意,仅部分标准逻辑装置61-68被示出并与虚拟装置71-74的对应装置关联,同时其他的标准逻辑装置61-68未被示出。
在一些实施例中,使用存储区代替存储装置实现在此描述的系统是可能的。因而,例如,虚拟装置71-74可以是虚拟存储区,标准逻辑装置61-68可以是标准逻辑区,及日志装置76、78可以是日志区。在一些例子中,这样的实现可允许混合逻辑/虚拟装置,其中,一单一逻辑装置的部分表现为标准逻辑装置,部分表现为虚拟装置,和/或部分表现为日志装置。因此,应该理解的是,在适当的例子中,对装置于此论述的基准也可应用于存储区,其可以、也可不与存储装置直接一致。
参考图3,该简图示出了标准逻辑装置82、虚拟装置84及日志装置86。如上所述,虚拟装置84可代表一时间点上所有或部分标准逻辑装置82的备份。连接到存储装置的访问虚拟装置84的主机可能已主机访问标准逻辑装置82同样的方式访问虚拟装置84。然而,虚拟装置84不包含任何来自标准逻辑装置82的跟踪数据。代替地,虚拟装置84包括多个指向或标准逻辑装置82或日志装置86上的磁道的表项目。
当虚拟装置被确立84(例如,当一时间点备份源自标准逻辑装置82时),虚拟装置84被创建并被提供以适当的表项目,这些表项目在确立时指向标准逻辑装置82的磁道。访问虚拟装置84以读取磁道的主机基于指向标准逻辑装置82的磁道的虚拟装置84的表项目,从标准逻辑装置82读取适当的磁道。
在虚拟装置84被建立后,主机写数据到标准逻辑装置82是可能的。在那种情况下,存储在标准逻辑装置82上的在前的数据被拷贝到日志装置86,且先前指向标准逻辑装置82的磁道的虚拟装置84的表项目改为指向日志装置86的新磁道。因而,访问虚拟装置84的主机或读取自虚拟装置84建立后还未变化的标准逻辑装置82的磁道,做为选择,也可读取在虚拟装置84建立后包含从标准逻辑装置82拷贝的数据的日志装置86的对应磁道。调整与读和写标准逻辑装置82及虚拟装置84有关的数据及指针将在此文的别处进行详细讨论。
在于此描述的实施例中,主机不直接访问日志装置86。即,日志装置86专门连同虚拟装置84(和在此文别处详细描述的其他虚拟装置)一起使用。此外,对于在此描述的实施例,标准逻辑装置82、虚拟装置84及日志装置86可在单个存储装置30上提供。当然,在分开的存储装置上提供不同的逻辑装置及日志装置也是可能的,分开的存储装置使用,例如,RDF协议或其他远程通信协议互连。此外,使一个或多个标准逻辑装置82、虚拟装置84和/或日志装置86的部分在适当互连的分开的存储装置上提供也是可能的。
参考图4,虚拟装置的使用的另一例子示出了一标准逻辑装置92、多个虚拟装置94-97及一日志装置98。在图4的例子中,虚拟装置94代表发生在上午10点这一时间点的标准逻辑装置92的备份。类似地,虚拟装置95代表中午12点标准逻辑装置92的备份,虚拟装置96代表下午2点标准逻辑装置92的备份,及虚拟装置97代表下午4点标准逻辑装置92的备份。注意,所有虚拟装置94-97可共享日志装置98。此外,对于虚拟装置94-97的一个以上的表项目或虚拟装置94-97的表项目的一子集,指向日志装置98的同样的磁道是可能的。例如,虚拟装置95和虚拟装置96被示出具有指向日志装置98的同一磁道的表项目。
在于此讨论的一实施例中,日志装置98及于此讨论的其他日志装置由一组由存储装置30管理的日志装置提供。在这种情况下,由于虚拟装置要求额外的日志装置磁道,虚拟装置使用日志装置合用机制可使得更多的日志装置存储区被创建。这种方式的合用存储装置资源在现有技术中是公知的。不使用合用技术的其他技术也可用于提供日志装置存储区。
参考图5,简图100图解了用于保持对装置信息的跟踪的表。第一表102对应于存储装置或存储装置的一元件所使用的所有装置,如HA和/或DA。表102包括多个对应于由存储装置(或存储装置的部分)使用的所有逻辑装置的逻辑装置项目106-108。表102中的项目包括对标准逻辑装置、虚拟装置、日志装置及其他类型的逻辑装置的描述。
表102的项目106-108中的每个对应于包含用于每一逻辑装置的信息的另一表。例如,项目107可对应于表112。表112包括一首部,首部包含附加信息。表112还包括用于逻辑装置的每一柱面的项目116-118。在于此公开的实施例中,逻辑装置可包含任何数量的柱面,取决于逻辑装置被怎样初始化。当然,在其他实施例中,逻辑装置可包含固定数量的柱面。
表112被示作包括一用于额外的磁道字节119的段。额外的磁道字节119以本文别处讨论的方式连同日志装置使用。在于此公开的实施例中,对日志装置的每一磁道有八个额外的磁道字节。对不是日志装置的装置,可以不用额外的磁道字节119。
每一柱面项目116-118对应于一磁道表。例如,项目117可对应于包括一首部124的磁道表122,首部124具有附加信息。磁道表122还包括用于每一磁道的项目126-128。在于此公开的实施例中,对于每一柱面有15个磁道。然而,对其他的实施例,对每一磁道,有不同数量的磁道甚至是变化数量的磁道也是可能的。对标准逻辑装置及日志装置,项目126-128的每一项目的信息包括一指向(或直接的、或间接的)存储装置30(或远程存储装置,如果系统是那样的结构)的磁盘驱动器42-44之一上的物理地址的指针。因而,磁道表122可用于将对应于表102、112、122的逻辑装置的逻辑地址定位至存储装置30的磁盘驱动器42-44上的物理地址。对虚拟装置,表122的项目126-128中的每一项目指向对应标准逻辑装置或对应日志装置的一磁道。然而,对其他的实施例,使用不同的机制是可能的,其中,表102、112、122仅用于包含跟踪数据的标准逻辑装置,而另一类型的表,如简单的磁道阵列,被虚拟装置使用以定位虚拟装置的磁道至对应的标准逻辑装置或日志装置的磁道。
日志装置的每一磁道或者是空闲的,意味着其未被虚拟装置使用或被分配,意味着磁道被一个或多个虚拟装置中的表项目指向。在于此公开的一实施例中,日志装置的磁道通过第一创建一日志装置的所有空闲磁道的双链表而被管理。用于双链表的指针由表112的额外磁道字节119提供,从而用于日志装置的额外磁道字节119包含8个用于日志装置的每一磁道的字节。对日志装置的空闲的每一磁道,额外的8个字节包括一指向日志装置的下一空闲磁道的向前的指针及一指向日志装置的前一空闲磁道的向后的指针。以这种方式使用双链表使访问日志装置的空闲磁道变得容易。
此外,如果日志装置的一磁道被分配(即,由一个或多个虚拟装置使用),用于磁道的对应的额外磁道字节119可被用于指回标准逻辑装置的对应磁道。因而,在虚拟装置被建立后,当向标准逻辑装置执行一写时,来自标准逻辑装置的数据被拷贝到日志装置的新磁道且对应于日志装置的新磁道的额外磁道字节转而指回从其拷贝数据的标准逻辑装置的磁道。使日志装置的每一磁道指回标准逻辑装置的对应磁道是有用的,例如,在数据恢复情况时。
此外,对于此公开的一实施例,用于对被分配的磁道每磁道额外8字节的指针与数据存储在一起。即,当日志装置的特定磁道被分配时,指回标准逻辑装置的指针与额外的磁道字节119存储在一起,此外,在日志装置的磁道上,指针与磁道数据本身一起存储。对CKD格式的磁道,额外的8字节可被存储在块零位(block zero)中。对于FBA格式的磁道,额外的8字节可被存储在追加在磁道末端上的附加的块中。在于此公开的实施例中,一块是512字节,一FBA磁道包含40块,当附加的块被追加时其增长为41块。不同的磁道格式被公开,例如,授权给Yanai等人的美国专利号5,206,939,在此其被组合于此用于参考。
图5的表102、112、122可存储在存储装置30的全局存储器46中。此外,对应于由特定主机访问的装置的表可存储在HA32-36的对应适配器的局部存储器中。此外,RA48和/或DA36-38也可使用和局部地存储表102、112、122的部分。
参考图6,流程图140图解,当主机从对应于可通过虚拟装置访问的磁道的装置表读取数据时所执行的步骤。即,流程图140图解获得关于磁道的信息,一用于虚拟装置的表项目指向该磁道。
处理在测试步骤142开始,如果感兴趣的磁道(即,对应于被读的表项目的磁道)在标准逻辑装置或日志装置上,则其被确定。其被确定是通过访问用于虚拟装置的装置表项目并确定用于感兴趣的磁道的表项目是否指向或标准逻辑装置或日志装置。如果在测试步骤142确定用于虚拟装置的表中的指针指向标准逻辑装置,接着,控制从步骤142转到步骤148,在步骤148感兴趣的表项目被读取。在步骤148之后,处理完成。
如果在测试步骤142确定对于感兴趣的磁道的用于虚拟装置的装置表中的指针指向日志装置,接着,控制从步骤142转移到步骤158,在步骤1 58感兴趣的日志表项目被读取。在步骤158之后,处理完成。
注意,在某些情况中,对数据的访问可被一标记或一锁控制以阻止有权同时使用数据的多进程。这在装置表正被读取或修改的情况特别有用。于此公开的系统期望用于控制多进程访问数据的多种机制中的任何一种,包括常规的软件和/或硬件锁的组合,也就是公知的“标记”或“信息量”。在一些情况下,访问数据的进程可能需要等待直到另一进程释放该数据。在一实施例中,硬件锁控制到软件锁(标记)的访问,因而进程首先获得硬件锁的控制、测试软件锁,接着,如果软件锁被清除,进程置位软件锁并接着释放硬件锁。如果该进程获得硬件锁并确定软件锁未被清除,该进程接下来释放硬件锁以使已经置位软件锁的进程在迟一点的时间可清除软件锁。进一步应注意,在某些情况下,首先读取对应于特定磁道的表项目、将磁道读进高速缓存插槽(如果磁道尚未在高速缓存中)、锁上高速缓存插槽、并接着重读对应的表项目是有用的。
参考图7,流程图170图解了连同写信息到装置表所执行的步骤,其中装置表用于一对应于标准逻辑装置或日志装置的虚拟装置。处理在第一步骤172开始,该步确定对应于被写的装置表项目的特定磁道是否在标准逻辑装置或日志装置上。如果确定感兴趣的特定磁道在标准逻辑装置上,控制从步骤172转到步骤178,在步骤178对应于被写的装置表项目的磁道被锁定。当当前进程正在修改对应于磁道的装置表项目时,在步骤178锁定磁道阻止了其他进程访问该磁道,并阻止修改对应的表项目。在步骤178之后是步骤182,写操作在该步被执行。在步骤182之后是步骤184,在该步磁道被解锁。在步骤184之后,处理完成。
如果在测试步骤172确定对应于用于虚拟装置的表项目的磁道被修改指向日志装置,控制从测试步骤172转到步骤194,在步骤194对应于被写的装置表的项目的日志装置的磁道被锁定。在步骤194之后是步骤196,写操作在该步被执行。在步骤196之后是步骤198,在该步磁道被解锁。在步骤198之后,处理完成。
参考图8,流程图210图解了所执行的与修改对应于虚拟装置的装置表有关的步骤。这可与图7的流程图170对比,图7图解了修改用于标准逻辑装置或日志装置的装置表,所述装置被用于虚拟装置的装置表的磁道的项目所指向。在流程图210中,用于虚拟装置的装置表被修改,与用于标准逻辑装置的装置表或用于日志装置的装置表成对比。
处理在第一步骤212开始,在该步确定对表的修改是否与建立虚拟装置相关联。正如此文别处讨论的那样,建立虚拟装置包括,在虚拟装置被创建后,使得虚拟装置可用于主机的访问。建立虚拟装置使得虚拟装置与标准逻辑装置相关联(从而,代表在建立时的时间点上标准逻辑装置的备份)。在与标准逻辑装置关联之前,虚拟装置没有被建立并不可由主机访问。在被建立后,虚拟装置可被主机访问。
在步骤212确定对表的修改与建立虚拟装置关联,接着控制从步骤212转到步骤214,在该步设置用于虚拟装置的装置锁以阻止其他进程访问该表。装置锁与此文别处讨论的高速缓存插槽锁相似。
在步骤214之后是步骤216,在该步虚拟装置表的指针被调整指向标准逻辑装置的磁道,且置位对应于被建立的虚拟装置的标准逻辑装置的每一磁道的保护位。在于此公开的实施例中,标准逻辑装置的每一磁道有16位可被置为保护位,一个用于每一虚拟装置被确立到标准逻辑装置。在一些实施例中,保护位可具有不与虚拟装置关联的用途。当用于标准逻辑装置的每一磁道的位可被置位时,建立的一个新虚拟装置在16位字段中可被分配一新数位位置。正如在此文别处详细讨论的那样,保护位被置位且其随后的向标准逻辑装置的写表明需要特殊的处理以提供确立到标准逻辑装置的虚拟装置。在此文别处对特殊处理进行了详细描述。还是在步骤216,对于虚拟装置的装置表的磁道项目被全部修改为指向标准逻辑装置的对应磁道。因而,当虚拟装置被首先确立时,虚拟装置的装置表的所有指针指向标准逻辑装置的磁道。
在步骤216之后是步骤217,在该步虚拟装置被设置为就绪状态,从而使得虚拟装置可被主机访问。在步骤217之后是步骤218,在该步虚拟装置被解锁,从而允许其他进程访问。在步骤218之后,处理完成。
如果测试步骤212确定虚拟装置尚未被确立(即,一些其他的操作正被执行),控制从测试步骤212转到步骤222以锁定对应于正被修改的虚拟装置的装置表的项目的磁道。注意,在步骤222锁定的磁道也可能是标准逻辑装置(如果虚拟装置的装置表中的所感兴趣的项目指向标准逻辑装置)上的磁道或日志装置(如果感兴趣的项目指向日志装置)的一磁道。在步骤222之后是步骤224,在该步对虚拟装置的装置表的修改被执行。在步骤224之后是步骤226,在该步磁道被解锁。在步骤226之后,处理完成。
参考图9,流程图230图解了所执行的与操作日志装置的磁道有关的步骤。如上所述,日志装置的磁道通过创建一空闲的日志装置的磁道(即,磁道可用于接受新数据)的双链表而得以维持。因而,如果需要一个或多个磁道连同对应的虚拟装置一起使用,则从双链表获得空闲的磁道,其被以常规方式修改以表明由虚拟装置所提供来使用的磁道不再空闲。相反地,如果一个或多个由一个或多个虚拟装置使用的磁道不再被需要,磁道被以常规方式送回到双链表,以表明磁道是空闲的。图9的流程图230图解了所执行的与控制操作磁道的多进程访问磁道(和磁道指针)有关的步骤。
处理开始于测试步骤232,在该步确定被执行的操作是否正修改空闲列表上的最适合的磁道。注意,仅修改空闲列表上的磁道,其通过,例如,将一空闲磁道从列表的一部分转移到另一部分或从一空闲列表转移到另一空闲列表(在多空闲列表的情况下)而实现修改,其不包括对对应于任何数据的磁道的修改。如果在测试步骤232确定被执行的修改不涉及空闲列表上的任何磁道,控制从步骤232转到步骤234,在该步磁道被锁定以阻止其他进程访问。
在步骤234之后或步骤232之后(如果未到达步骤234)是测试步骤236,在该步确定操作是否涉及单独分配的磁道。对于任何涉及单独分配的磁道的操作,则不必锁住空闲磁道的日志装置表。如果在步骤236确定被执行的操作没有操作单独分配的磁道,则控制从步骤236转到步骤238,在该步空闲磁道的日志装置表被锁住以阻止其他进程访问。在步骤238之后或步骤236之后(如果步骤238未被执行)是步骤242,在该步执行修改。
在步骤242之后是测试步骤244,其确定操作是否涉及单独分配的磁道。如果在测试步骤244确定被执行的修改不涉及单独分配的磁道,则控制从步骤244转到步骤246,在该步日志装置空闲表被解锁。在步骤246之后或步骤244之后(如果未到达步骤246)是测试步骤248,其确定被执行的操作是否正修改空闲表上的单独磁道。如果在步骤248确定被执行的操作正修改空闲表上的单独磁道,则控制从步骤248转到步骤252,在该步,在步骤234被锁住的磁道被解锁。在步骤252之后或步骤248之后(如果步骤252未被执行),处理结束。
参考图10,流程图280图解了所执行的与从虚拟装置读取数据有关的步骤。处理开始于测试步骤282,其确定对于虚拟装置的所感兴趣的磁道的装置表项目是否指向标准逻辑装置或执行日志装置。如果在步骤282确定表指向标准逻辑装置,则控制从步骤282转到步骤284,在该步磁道被从标准逻辑装置读取。在步骤284之后,处理结束。二选一地,如果在测试步骤282确定虚拟装置的装置表指向日志装置,则控制从步骤282转到步骤286,在该步感兴趣的磁道被从日志装置读取。在步骤286之后,处理结束。
注意,在一些情况下,在测试步骤282之前,可能先确定被读取的感兴趣的磁道已经在高速缓存存储器(全局存储器)中。在这种情况下,磁道可从高速缓存存储器获得,而无须执行步骤282、284、286中的任何步骤。
参考图11,流程图300图解了由DA执行的、与向标准逻辑装置的一磁道写有关的步骤,其中虚拟装置已在先前被确立到该标准逻辑装置。处理开始于第一步骤302,其确定用于被写在标准逻辑装置上的磁道的任何保护位是否已经被置位。如果在测试步骤302确定保护位未被置位,则控制从步骤302转到步骤304,在该步执行正常的写操作。即,在步骤304,数据被以常规方式写到标准逻辑装置,不用关心已在先前被确立到标准逻辑装置的虚拟装置的存在。在步骤304之后,处理结束。
如果在测试步骤302确定一个或多个保护位已经被置位在正被写的标准逻辑装置的磁道上,控制从步骤302转到步骤306,在该步获得日志装置的空闲磁道。日志装置的空闲磁道是需要的,以从标准逻辑装置的磁道拷贝数据。同样,如此文别处的更详细的描述,日志装置的空闲磁道可通过使用空闲磁道的双链表而被管理。因而,在步骤306,其可能通过来回移动日志装置的空闲磁道的列表并适当地修改指针以移动空闲磁道之一而获得空闲磁道。
在步骤306之后是步骤308,在该步,对对应于已在测试步骤302确定被置位的保护位的每一虚拟装置,虚拟装置的指针,其最初指向标准逻辑装置上的被写的磁道,在步骤308被修改指向在步骤306获得的日志装置的空闲磁道。如上所述,可能有一个以上虚拟装置被确立到标准逻辑装置。对已被确立到特定标准逻辑装置的每一虚拟装置,对标准逻辑装置的每一磁道,特殊的保护位将被置位。因此,在步骤308,用于对应于在步骤302检测到的置位保护位的所有虚拟装置的磁道指针均被改变。虚拟装置的装置表中的磁道指针被修改指向在步骤306获得的新磁道。
在步骤308之后是步骤312,在该步数据被从标准逻辑装置拷贝到在步骤306获得的日志装置上的新磁道上。在于此公开的一实施例中,拷贝数据可通过,从磁盘存储器移动数据到存储装置的全局存储器(例如,进入一高速缓存插槽)、接着置位一写未决指示器以使数据被拷贝到在步骤306获得的日志装置的磁道上。步骤312表示从正被写的标准逻辑装置的磁道拷贝数据到在步骤306获得的日志装置的新磁道。由于所有指针在步骤308均被修改,在磁道被写之前任何已确立到标准逻辑装置的虚拟装置现在均指向旧数据(即,当虚拟装置被确立时存在于标准逻辑装置的磁道上的数据)。同样要注意的,与拷贝磁道有关,标准逻辑装置磁道的保护位被拷贝到用于日志装置上的磁道的虚拟装置映射位,这在本文别处有详细阐述。
在步骤312之后是步骤314,在该步,在步骤306获得的日志装置的磁道被修改,从而表中的额外字节(另处讨论)被调整指回正被写的标准逻辑装置的磁道。使日志装置的磁道指向对应的提供数据的标准逻辑装置的磁道在许多情况下都是有用的。例如,其在与数据恢复有关时有用。在步骤314之后是步骤316,在该步,正被写的标准逻辑装置的磁道的保护位被清除。在步骤316之后是步骤318,在该步状态被发送到HA。在步骤318之后,处理结束。
注意,一旦HA接收状态,HA可执行一正常的写操作,且在这种情况下,在测试步骤302,保护位将不被置位,因为保护位在步骤316被清除。执行写操作的HA看见在步骤302被置位的保护位并发送保护请求给适当的DA。HA接着可从DA断开并等待来自DA的、表明正常的写被执行的状态到达。当HA被断开并等待来自DA的状态时,DA可执行在流程图300中公开的步骤。这将在下面详细描述。
参考图12,流程图320图解了由HA执行的、与向标准逻辑装置写有关的步骤,其中一个或多个虚拟装置已被确立到该标准逻辑装置。处理开始于第一测试步骤322,其确定用于正被写的标准逻辑装置的磁道的保护位是否被置位。如果在测试步骤322确定没有保护位被置位,则控制从步骤322转到步骤324,在该步执行正常的写。在步骤324之后,处理结束。
如果在测试步骤322确定用于正被写的标准逻辑装置的磁道的一个或多个保护位被置位,控制从步骤322转到步骤326,在该步,HA发送一请求给DA表明用于磁道的保护位被置位。当DA接收在步骤326发送的请求时,DA执行在上面讨论的、在图11的流程图300中提出的操作。在步骤326之后是步骤328,在该步,HA从DA断开,以允许其他的进程和/或其他HA与DA一起执行操作。
在步骤328之后是步骤332,在该步,HA等待DA执行图11的流程图300中提出的操作并发送状态给HA以表明适当的步骤已被执行以处理已置位的保护位。在步骤332之后,处理转回步骤322,用于标准逻辑装置的磁道的保护位再次被测试。注意,在第二次反复上,期望正被写的标准逻辑装置的磁道的保护位已在步骤322被清除,因为DA应在执行流程图300的步骤时清除了保护位。当然,在DA清除保护位与步骤322被再次执行之间,新虚拟装置被确立到标准逻辑装置总是可能的。然而,通常所期望的是对标准逻辑装置的特定磁道的步骤322的第二次反复将确定所有保护位均被清除,且控制将从步骤322转到步骤324以执行一正常的写。
参考图13,流程图340图解了所执行的与向虚拟装置写有关的步骤。流程图340表示由HA及DA执行的步骤,因而可被提供为两个流程图,类似于图11的流程图300及图1 2的流程图320。然而,可由那些本领域普通技术人员理解的是,流程图340可表示类似于那些在流程图300、320中提出的、并在说明书的对应部分中描述的步骤的步骤的一部分。
处理开始于第一步骤342,其确定虚拟装置是否指向标准逻辑装置。如果“是”,则控制从测试步骤342转到步骤344,在该步获得日志装置的空闲磁道。在步骤344之后是步骤346,来自对应于被写的磁道的标准逻辑装置的数据被从标准逻辑装置拷贝到在步骤344获得的日志装置的磁道上。在步骤346之后是步骤348,在该步,用于磁道的虚拟装置指针被调整指向在步骤344获得的磁道。在步骤348之后是步骤352,对应于虚拟装置的保护位在标准逻辑装置的磁道数据中被清除,因而表明,当向标准逻辑装置的磁道写时,不需要任何代表虚拟装置的特殊处理。在步骤352之后是步骤354,在该步写被执行。在步骤354,被写的数据可以是被写到在步骤344获得的磁道的一磁道或一磁道的一部分。在步骤354之后,处理结束。如果数据对应于整个磁道,则可能排除步骤346(该步从标准逻辑装置的磁道拷贝数据到日志装置的新磁道),因为在步骤354写所有磁道的数据会盖写在步骤346拷贝的所有数据。
如果在测试步骤342确定用于被写的虚拟装置的磁道的指针没有指向标准逻辑装置,则控制从步骤342转到测试步骤356,其确定是否一个以上的虚拟装置已被确立到标准逻辑装置。如果没有,则控制从步骤356转到步骤358,在该步向日志装置的磁道执行一正常的写操作。如果在测试步骤356确定有一个以上的虚拟装置被确立到标准逻辑装置,则控制从步骤356转到步骤362,在该步从日志装置获得空闲磁道。
在步骤362之后是步骤364,对应于被写的虚拟装置的磁道的数据被拷贝到在步骤362获得的磁道。在步骤364之后是步骤366,虚拟装置指针被调整指向新磁道。在一实施例中,用于正被写的虚拟装置的指针被使得指向新磁道。供选择地,也可能不改变用于正被写的虚拟装置的指针,而是调整所有其他虚拟装置的所有指针指向在步骤366的磁道。
在步骤366之后是步骤368,在该步,对于日志装置的磁道的虚拟装置映射位被修改。对日志装置磁道,虚拟装置映射位可被用于表明哪些虚拟装置指向每一磁道,在一实施例中,有16个虚拟装置映射位且每位对应于一特定的虚拟装置。因而,在步骤356的测试可检查对于磁道的虚拟装置映射位。
在步骤368之后是步骤369,在该步执行写。注意,是否向在步骤362获得的磁道执行写或向由被写的虚拟装置最初指向的磁道执行写取决于在步骤366指针是怎样被调整的。然而,在所有情况下,数据被写到由正被写数据的虚拟装置所指向的磁道。在步骤369之后,处理结束。
参考图14,流程图370图解了所执行的与消除(即,除去)一虚拟装置有关的步骤。一旦虚拟装置已被确立并已用于其特定的目的,就可能想要消除虚拟装置。处理开始于第一步骤372,指针被设定指向虚拟装置的第一磁道。虚拟装置通过检查对应于虚拟装置的每一磁道而被消除。
在步骤372之后是步骤374,其确定正被检查的虚拟装置的磁道是否指向标准逻辑装置。如果是,则控制从步骤374转到步骤376以清除对应于被消除的虚拟装置的标准逻辑装置的磁道上的保护位。在步骤376之后是步骤378,为了通过检查下一磁道而连续处理,指针指向虚拟装置的下一磁道。在步骤378之后是步骤382,其确定处理是否结束(即,虚拟装置的所有磁道已经被处理)。如果没有,则控制从步骤382转回到上述的测试步骤374。
如果在测试步骤374确定被检查的虚拟装置的磁道没有指向标准逻辑装置,则控制从步骤374转到步骤384,在该步,对应于被消除的虚拟装置的日志装置的磁道上的虚拟装置映射位被清除。日志装置的每一磁道可有一组表明哪些虚拟装置使用日志装置的磁道的虚拟装置映射位。因而,在步骤384,对应于被消除的虚拟装置的虚拟装置映射位被清除。
在步骤384之后是测试步骤386,其确定在步骤384被清除的位是否是为磁道设定的虚拟装置映射位的最后一位。换言之,测试步骤386确定是否有其他的虚拟装置正使用日志装置上的磁道。如果在测试步骤386确定最后的虚拟装置映射位在步骤384已被清除(从而,没有其他虚拟装置使用该磁道),则控制从步骤386转到步骤388,在该步,日志装置的磁道被送回日志装置磁道的空闲列表,如此文别处所讨论的那样。在步骤388之后或在步骤386之后(如果确定在步骤384被清除的位不是日志装置的磁道的最后一位虚拟装置映射位)是步骤378,如上所述,虚拟装置的下一磁道被指向以用于随后的检查。一旦对应于虚拟装置的所有磁道已经被处理,与虚拟装置关联的表及其他数据结构也可被消除,尽管在一些实施例中,自虚拟装置的表及其他数据结构可被保持,只要在虚拟装置被解除确立后,虚拟装置还没有调整为可为主机使用。
在一些实施例中,在执行由流程图370图解的步骤之前,虚拟装置可被设成对主机不是就绪的。作为选择,在虚拟装置对主机为就绪状态的同时执行流程图370图解的步骤是可能的,其还简单地发出一错误信息给那些企图在流程图370的步骤正被执行时访问虚拟装置的主机和/或那些企图访问已经被消灭(即,被送回空闲磁道的列表)的虚拟装置的磁道的主机。
多种技术的任何一种均可用于在图8的步骤216置位标准逻辑装置的磁道上的保护位。例如,对于标准逻辑装置的磁道的保护位可通过在所有保护位正被置位时锁住整个标准逻辑装置(从而阻止任何其他对标准逻辑装置的访问)而被置位。然而,当所有保护位正被置位时锁住整个标准逻辑装置在某些情况中是不可接受的。因此,下述的其他技术可用于置位保护位,其在置位用于所有磁道的所有保护位时,不必要使标准逻辑装置不可接近。
参考图15A、15B及15C,流程图400、410、420图解了所执行的与用于置位标准逻辑装置的保护位的技术有关的步骤。流程图400、410、420分别被示出以图解可被分别执行的进程的不同部分。
在图15A的第一流程图中,处理开始于第一步骤404,在该步获得一会话号(session number)以保留一特定的会话。在一些实施例中,保留会话号被提及为“绑定会话(attaching a session)”。在于此公开的实施例中,每一特定会话号对应于一保护位掩码的特定位位置(即,对应于特定的保护位)。在步骤404之后,处理结束。在多个进程企图同时获得一个会话号的实施例中,必须提供额外的功能以使两个进程不会获得同样的会话号。例如,该功能可通过在获得会话号之前锁住会话资源(使用软件锁、硬件锁、或同时使用二者)并接着在获得会话号后解锁而得以提供。当然,也存在其他技术并可被用于提供步骤404返回一唯一的会话号给任何请求会话号的进程,即使多个进程正同时请求一会话号。
参考图15B,流程图410图解了用于确立一会话为不活动状态并置位保护位的步骤。处理开始于第一步骤412,该调用进程被提供以对标准逻辑装置的独占访问(至少对与接下来的操作关联的部分标准逻辑装置的独占访问)。在一些情况下,提供调用进程以对被操作的资源的独占访问是有用的,因为多进程的同时(或近似同时)访问可导致不适当的操作。因而,在步骤412及贯穿本申请的其他情况中,独占访问被给予一调用进程。此外,用于提供独占访问的机制可包括多种技术的任何一种技术,如硬件锁、软件锁(例如,系统电平数据的软件锁)、时间分片等。当然,在仅有一个可能的调用进程的实施例中(例如,非多任务处理系统),则不必执行象步骤412中图解的任何处理来使能够对调用进程进行独占访问。
在步骤412之后是步骤414,会话(上述的先前在步骤404所保留的)被确立到一不活动状态。在此一实施例中,确立会话到不活动状态包括:移动第一值到标准逻辑装置的装置表的首部中的位置。如上所述,图5示出了装置表112中的首部字段114。首部字段114可包含不同的数据位置,每一数据位置对应于一保护位(即,每一位位置对应于特定的会话号)。放在每一位置的值表明当向具有保护位组中的对应保护位的磁道写时将要执行的操作。例如,在首部字段114中有16字节长度的数据位置,其中每一数据位置对应于16个可能的保护位之一(例如,字节0对应于保护位0,字节1对应于保护位1,等)。在步骤414,第一值被提供给首部字段114的位置之一以设定对应的会话为不活动状态。
在步骤414设定对话为不活动状态使得在对应的保护位被置位时不执行操作。因而,在保护位被置位时向磁道写时,处理保护位的管理的编码将从装置首部取回对应的数据,在这种情况下,其表明对应的会话为不活动状态。响应于此,处理保护位的管理的编码将留下该保护位并不执行其他操作。其效用将在此文别处讨论。
在步骤414之后是步骤416,在步骤412提供的独占访问被取消。在步骤416取消独占访问允许多进程同时访问在步骤412提供给独占访问的资源。在一些实施例中,在步骤416取消独占访问简单地撤消在步骤412所做的一切(例如,解锁被锁住的资源)。
在步骤416之后是步骤418,对应的保护位被置位以用于对应于首部字段114的位置的每一磁道,其中首部字段114是对于在步骤404获得的会话号的字段。注意,在步骤418被执行的同时,提供多进程的访问给标准逻辑装置。然而,因为对应的会话是不活动的,任何向磁道的写将导致没有操作被执行且保护位保持置位,其中所述磁道具有一在步骤418正被执行时在步骤418出现的位置位的磁道。在步骤418之后,处理结束。注意,在会话被设定为不活动之后(且在会话被设定为活动之前),置位保护位的步骤418可在任何时间执行。因而,步骤418不必在所执行的使会话不活动的步骤之后立即执行。
在一些实施例中,不必激活/取消对标准逻辑装置的资源的独占访问。例如,如果在步骤414确立会话为不活动状态可在一单一的步骤中被执行(例如,一不可打断的写操作),则不必执行步骤412、416。这可由流程图410中的备选路径419a、419b图解。
参考图15C,流程图420图解了所执行的激活会话的步骤。处理开始于第一步骤422,在该步,对标准逻辑装置的独占访问被激活(如上述的步骤412中的那样),从而阻止另一进程对其的访问。在步骤422之后是步骤424,在该步,会话通过写第二值到用于标准逻辑装置的表的首部字段114而被设定为活动的。第二值被提供在与第一值同样的位置并盖写第一值。第二值表明与被置位的对应保护位有关的特殊处理将被执行。这样的特殊处理被示出,例如,在图11及12所图解的对于虚拟装置的特殊处理。
在步骤424之后是步骤426,在该步,对标准逻辑装置的独占访问被取消。在步骤426之后,任何随后的向具有一已置位的保护位的磁道的写将导致执行特殊操作,如提供给对于标准逻辑装置的装置表的首部字段114的第二值所表明的那样。例如,如果在步骤424提供的第二值表明对应的磁道应被拷贝到日志装置,则与向具有一已置位的保护位的磁道写有关的操作将被执行。当然,在步骤424提供的第二值可表明与被置位磁道的保护位有关的大量特殊处理中的任何一个将被执行,例如,与突然操作(snap operation)有关的处理将被执行。在步骤426之后,处理结束。
正如上面在流程图410所讨论的,在一些实施例中,不必激活/取消对连同步骤424使用的标准逻辑装置的资源的独占访问。例如,如果在步骤424确立会话为活动状态可在一单一步骤中被执行(例如,一写操作),则不必执行步骤422、426。这为流程图420所示的备选路径428a、428b所阐明。
参考图16A,流程图300’的一部分表示出了对应于图11的流程图的步骤的步骤。流程图300’的步骤被修改以说明图15A、15B、15C所图解的及上面所描述的保护位配置的使用。一对步骤302’、302″替换图11的流程图300的步骤302。步骤302’是象步骤302那样的测试步骤,其确定对于被写的磁道的保护位是否被置位。如果没有,则控制从步骤302’转到步骤304,如上面结合图11所论述的,在这里执行一正常的写。在步骤304之后,处理结束。
如果在测试步骤302’确定被写的磁道的保护位已被置位,控制从步骤302’转到测试步骤302″,在该步,确定对应的会话是否是不活动的。如上面结合图15A、15B、15C所讨论的,会话可能是不活动的,从而没有响应于被置位的保护位的操作被执行。如果在步骤302″确定会话是不活动的,则控制从步骤302″转到步骤304,如上所述。否则,控制从步骤302″转至继续在步骤306处理,如结合图11所论述的那样。
参考图16B,流程图320’的一部分表示了对应于图12的流程图320的步骤的步骤,这些步骤被修改以说明图15A、15B、15C所图解的及上面所描述的保护位配置的使用。一对步骤322’、322″替换图12的流程图320的步骤322。步骤322’是象步骤322那样的测试步骤,其确定对于被写的磁道的保护位是否被置位。如果没有,则控制从步骤322’转到步骤324,如上面结合图12所论述的,在这里执行一正常的写。在步骤324之后,处理结束。
如果在测试步骤322’确定被写的磁道的保护位已被置位,控制从步骤322’转到测试步骤322″,在该步,确定对应的会话是否是不活动的。如果在测试步骤322″确定对应的会话是不活动的,则控制从步骤322″转到步骤324,如上所述。否则,控制从步骤322″转至继续在步骤326处理,如结合图12所论述的那样。
确立一虚拟装置到标准逻辑装置可使用三个分开的系统调用而被执行。首先,注册,保留一会话号及标准逻辑装置的保护位中的对应的位位置,及对于某些实施例,创建或获得一对应的虚拟装置。其次,关联,通过修改虚拟装置的指针而使虚拟装置与标准逻辑装置关联,如上所述,且还置位标准逻辑装置的保护位。第三,激活,使虚拟装置在激活被调用时表示一时间点的备份,及,在某些情况下,使虚拟装置对于主机是就绪的。在使用三个系统调用的情况中,如上所述,图8的步骤214、216、217、218可不被执行或被不同地执行,如下面论述中提出的那样。
此外,如下面更详细描述的那样,可为多对虚拟装置及标准逻辑装置执行注册及关联步骤,然后执行一单一的使所有虚拟装置被确立到它们对应的标准逻辑装置的步骤。还应注意,对于于此讨论的目的,标准逻辑装置可涉及任何通常具有其自身的存储磁道的逻辑存储装置(即使部分磁道有时是间接的),同时,通过定义,虚拟存储装置可涉及使用其他装置的存储磁道的存储装置。
参考图17,流程图430图解了所执行的与注册标准逻辑装置有关的步骤。可使用一系统调用来执行注册,该系统调用被传递给一标准逻辑装置及对应虚拟装置(在某些实施例中)的标识符。在一些实施例中,注册系统调用仅被传送给一标准逻辑装置并返回一由注册系统调用创建的虚拟装置标识符。在其他实施例中,注册系统调用不处理任何虚拟装置并被简单地传递给一标准逻辑装置。
处理开始于第一步骤432,会话号以类似于上面的结合图15A的步骤404的描述的方式被保留。在步骤432之后是步骤433,对适当的资源(例如,标准逻辑装置的资源)的独占访问以类似于上面结合图15B及15C的讨论的方式被激活。在步骤433之后是步骤434,对应的会话以类似于上面结合图15B的步骤414的讨论的方式而被确立为不活动状态。在步骤434之后是步骤436,对适当的资源的独占访问以类似于上述的方式而被取消。注意,确立会话为不活动状态不改变对标准逻辑装置的写处理。还应注意,正如图15B及15C,对某些实施例,则不必激活和取消对结合步骤434所使用的资源的独占访问。这由备选路径437a、437b所图解。
在步骤436之后是测试步骤438,其确定在先前的步骤432-434、436所执行的操作是否均成功执行。操作可能因为多种原因而尚未成功,包括:例如,因为所有用于标准逻辑装置的保护位已经被用于其他目的的事实。在于此图解的一实施例中,有16个保护位。因而,如果在执行步骤432之前,用于标准逻辑装置的所有16个保护位正被使用,则在测试步骤438的结果将表明先前的操作未成功。如果在测试步骤438确定先前的操作没有成功,控制从步骤438转到步骤442,在该步返回一错误。在步骤442之后,处理结束。
如果在测试步骤438确定先前的操作是成功的,则控制从步骤438转到步骤444,在该步,虚拟装置被创建。在一些实施例中,虚拟装置在步骤444被创建并传递回注册例程的调用者。在另一实施例中,虚拟装置在调用注册例程之前就存在,在这种情况下,则不需要在步骤444创建一新虚拟装置。还是在其他实施例中(如下述),注册例程不处理(即创建或使得以传递)任何虚拟装置。更合适地,虚拟装置可在或注册例程前或其后的分开的步骤中被创建或获得,如连同一关联例程(如下述),或作为一般系统配置的一部分。
在步骤444之后是步骤446,在该步,关于标准逻辑装置(及或许一虚拟装置,如果其被创建和/或连同注册例程一起使用)的信息被放置在用于标准逻辑装置的装置表的首部中。一旦标准逻辑装置及对应的虚拟装置被激活(如下述),在标准逻辑装置的装置表的首部中提供信息则使后面的处理更容易。在一些实施例中,在放置信息在首部中之前激活对标准逻辑装置的适当的资源的独占访问是有用的。在步骤446之后,处理结束。
注意,流程图430中图解的处理不导致任何虚拟装置为标准逻辑装置的一时间点上的备份,且不使任何虚拟装置可用于访问。由流程图430图解的注册例程对应于使后面的标准逻辑装置/虚拟装置对的激活容易的初步的操作。还应注意,从步骤438到步骤446的备选路径448阐明了注册例程不使任何虚拟装置被创建的实施例。因而,如果注册例程不处理虚拟装置,则控制从测试步骤438经路径448直接转到步骤446,如果注册操作成功的话。
参考图18,流程图450图解了所执行的与将一虚拟装置与一标准逻辑装置关联有关的步骤。正好同注册例程,关联例程是在标准逻辑装置/虚拟装置对的激活与使用之前所执行的初步处理的一部分。关联可通过进行一系统调用而被执行,在系统调用中的参数是标准逻辑装置及,对某些实施例,一对应的虚拟装置(例如,已被主机传递的)。在其他实施例中,关联例程可使一虚拟装置被创建(例如,通过调用一单独的创建例程)或简单地获得一先前已存在的、未使用过的虚拟装置,该虚拟装置连同系统配置一起提供或通过其他手段提供。在那些实施例中,关联例程可能传递一指针给存储器,该存储器为关联例程用以放置用于最近创建/获得的虚拟装置的标识符。
处理开始于第一测试步骤452,其确定被关联的标准逻辑装置是否已在先前注册过。注意,除非标准逻辑装置已在先前被注册,否则对于标准逻辑装置,关联例程可能不被调用。如果标准逻辑装置还未被注册,则控制从步骤452转到步骤454,在该步返回一错误。在步骤454之后,处理结束。注意,步骤454(或其他的在此描述的错误步骤)可实际地涉及分开的错误处理,该处理做一些不同于报告错误的事情。例如,在步骤454所执行的处理可包括用来纠正错误的措施并继续处理。
如果在测试步骤452确定标准逻辑装置已被注册,则控制从步骤452转到步骤455,在该步获取与标准逻辑装置配对的虚拟装置。在一些实施例中,虚拟装置连同注册例程一起(或至少在关联例程被调用之前)被创建或获得,在这种情况下,步骤455可表示被传递给先前创建(例如,由主机)或获得的虚拟装置的关联例程,且用于虚拟装置的标识符被传送回调用例程。在其他实施例中,虚拟装置通过在步骤455的关联例程被创建或获得。在步骤455之后是步骤456,在该步,对适当资源(例如,标准逻辑装置的资源)的独占访问被以类似于结合图15B、15C所讨论的方式激活。在步骤456之后是步骤458,在该步,虚拟装置的装置表中的所有指针均被使得指向标准逻辑装置的对应磁道。在步骤458所执行的处理类似于在图8的流程图210的步骤216提供的指针修改,如上所述。在步骤458之后是步骤461,在该步,关于标准逻辑装置/虚拟装置对的信息被放置在标准逻辑装置及虚拟装置的首部中。该信息连同随后的对装置的访问一起使用,如此文别处所描述的那样。在步骤461之后是步骤462,对适当资源的独占访问以类似于上述的方式被取消。在一些实施例中,独占访问可在放置信息到首部中之前被激活,并在信息被放置在其中之后取消。注意,正如同图15B及15C,对一些实施例,则不必激活和取消对连同步骤458和/或步骤461一起使用的资源的独占访问。这由备选路径463a、463b图解说明。
在步骤462之后是步骤464,在该步,对于标准逻辑装置的保护位被置位,因而表明当写被提供给标准逻辑装置的磁道时,特殊的处理将被执行。然而,注意,当保护位在步骤464被置位时,基于向标准逻辑装置的磁道的写,不会发生特殊的处理,因为正如上面所述的,会话在最初是不活动的。因而,即使对于磁道的保护位在步骤464已被置位,向标准逻辑装置的写不会导致特殊的处理被执行,因为会话是不活动的。这为上面的结合图16A及16B的步骤302″及322″所图解说明。
在步骤464之后是步骤466,在该步,标准逻辑装置/虚拟装置对被添加到列表。正如下面所详细描述的,可能用一个调用激活多个标准逻辑装置/虚拟装置对。在步骤466使用的列表包含一列表关联后的对,这些对尚未被激活。正如下面所详细描述的,列表被激活例程使用。作为选择,关联例程可能将标准逻辑装置/虚拟装置对(或仅是虚拟装置,或仅是标准逻辑装置)返回保持列表的调用例程(例如,一主机应用软件)。还是作为选择,关联例程可被传递给一列表标识符,其被关联例程使用以确定一特定的列表,而标准逻辑装置/虚拟装置对被添加到该列表。在这种情况下,具有一独立例程以创建列表标识符和/或列表结构/存储器从而使其保持列表是有用的。在列表和/或列表id是被传递的参数的情况下,对于调用例程,保持多个列表是可能的。关联例程可在被传递给多个标准逻辑装置及对应的多个虚拟装置(可选地)以后创建列表。在这种情况下,关联例程可传回所创建的列表。
参考图19A,流程图480图解了所执行的与激活一个或多个标准逻辑装置/虚拟装置对的激活例程有关的步骤。在激活之前,一未使用过的虚拟装置对任何主机均不是就绪的。然而,在激活期间,虚拟装置被使得对一个或多个主机均是就绪的。
处理开始于第一步骤482,指针被设定为指向列表上的第一条,该列表为象上面连同流程图450的步骤466所述的列表那样的列表。指针被使用来指向列表上的不同单元。列表可作为一参数而被传递给激活例程。作为选择,在列表id被激活例程使用以区别激活例程有权使用的列表的情况下,列表id可被传递。还是作为选择,关联和激活例程可使用一单一的全局列表,从而任何对激活例程的调用均使所有先前关联的标准逻辑装置/虚拟装置对被激活。当然,代替一正式的列表结构,将每一标准逻辑装置/虚拟装置对作为参数传递给激活例程是可能的。
在步骤482之后是测试步骤484,其确定处理是否结束(即,是否已到达列表的末端)。其可通过检查用于重复通过列表的指针而被确定。如果列表的处理未结束,则控制从步骤484转到步骤485,其确定关联操作是否先前已在指针指示的标准逻辑装置/虚拟装置对上执行。如果关联操作在先前未被执行(及因而可能没有激活),则控制从步骤485转到步骤486,在该步返回一错误。在步骤486之后,处理结束。
如果在步骤485确定关联例程已在被激活的标准逻辑装置/虚拟装置对上执行,则控制从步骤485转到步骤487,在该步,对适当资源(例如,标准逻辑装置)的独占访问以类似于上面结合图15B及15C所讨论的方式被激活。在步骤487之后是步骤488,指针被使得指向列表上的下一标准逻辑装置/虚拟装置对。在步骤488之后,控制转回测试步骤484以确定列表的处理是否结束。
如果在测试步骤484确定列表的处理结束(及因而对应于被激活的虚拟装置的所有标准逻辑装置已被确定在先前已被关联),控制从步骤484转到步骤492,跟踪列表上的单元的指针被使得指向标准逻辑装置/虚拟装置对的列表中的第一条。在步骤492之后是测试步骤494,其确定是否整个列表已被处理。如果没有,则控制从步骤494转到步骤496,以激活对应于标准逻辑装置/虚拟装置对的已被置位的保护位的会话。在步骤496激活会话类似于在图15C的流程图420中的步骤424所执行的处理。当向具有一置位保护位的标准逻辑装置的磁道写时,在步骤496激活会话使得特殊的虚拟装置处理被执行,如此文别处所述。此外,激活会话使得虚拟装置对主机是就绪的。在步骤496之后是步骤498,跟踪列表上已处理条目的指针被使得指向下一条目。在步骤498之后,控制转回测试步骤494。
如果在测试步骤494确定标准逻辑装置/虚拟装置对的整个列表已被处理(从而对应于被激活的虚拟装置的所有标准逻辑装置均有对应的被使活动的会话),控制从步骤494转到步骤502,指针被使得指向列表中的第一标准逻辑装置/虚拟装置对。在步骤502之后是步骤504,其确定是否整个列表已被处理。如果确定整个列表已被处理,控制从步骤504转到步骤506,在该步,对适当资源(在步骤487获得的)  的独占访问被以类似于上述的方式取消。在步骤506之后是步骤508,指针被使得指向列表上的下一条。在步骤508之后,控制转回测试步骤504以确定是否已到达列表的末端。
如果在测试步骤504确定已经到达列表的末端,控制从步骤504转到步骤512,在该步,列表被清除,从而随后的对激活例程的调用将不会企图重新激活已经激活的标准逻辑装置/虚拟装置对。在步骤512之后,处理结束。注意,正如同图15B及15C,对一些实施例,可不必激活和取消对连同步骤487使用的资源的独占访问。这由备选路径513a、513b图解。
注意,在一些情况下,在列表上的装置之一在步骤485导致一错误之前,对列表的某些标准逻辑装置的独占访问已在步骤487被激活。在这种情况下,在执行步骤486之前,对其的独占访问已经被激活的标准逻辑装置使对其的独占访问以类似于上面结合步骤502、504、506、508所述的方式被取消。
在一些实施例中,在图18的步骤466可能不使用列表来跟踪标准逻辑装置/虚拟装置对。作为替代,激活例程可通过传递不同的标准逻辑装置/虚拟装置对直接到那里而被调用。在这种情况下,在图19A的流程图480所图解的处理中使用的列表可以是传递给激活例程的参数列表。
在其他实施例中,可能提供一些附加的调用,如开始群组(BeginGroup)及处理群组(Process Group),开始群组调用在多个关联调用(或注册及关联调用)之前被提供。接着,,当是应当激活在开始群组调用之后被注册及关联的不同标准逻辑装置/虚拟装置对时,调用处理群组。处理群组调用有效激活在开始群组调用之后被注册及关联的所有标准逻辑装置/虚拟装置对。如上结合图18及19A的论述,这些实施例可使用列表,其中开始群组调用导致一新的、空的列表的创建,而处理群组使得图19A的流程图480中所示的处理被执行。在这样的系统中,未被开始群组/处理群组对留出的关联调用(即,在开始群组调用后关联未被调用)使激活在关联被成功完成后立即被执行。即,任何不是在开始群组调用之后的、对标准逻辑装置/虚拟装置对的注册调用及关联调用可导致标准逻辑装置/虚拟装置对的自动激活。在其他实施例中,激活调用不是自动的。还应注意,在一些实施例中,可能使用多个列表分别激活不同的标准逻辑装置/虚拟装置对组。在这种情况下,特殊的列表可以是传递给处理群组调用的参数,在某些方式中,其可接着被传递给激活例程。
在一些实施例中,注册、关联和/或激活调用中的任何一个可包括用于修改虚拟装置的装置名称(或其他装置标识符)的可选参数。这在不允许两个装置具有完全同样名称和/或装置标识符的操作系统中是有用的。如果虚拟装置是标准逻辑装置的备份,则改变虚拟装置的名称是必要的。此外,在一些实施例中,可能还具有基于激活指示虚拟装置是否将在线或离线的可选参数。在一些操作系统中,在线装置是可由主机访问的(对主机是就绪的),而离线装置(对主机不是就绪的)不可由主机访问。因而,对希望创建一虚拟装置但不希望允许对其访问的主机应用软件,则可能传递一参数给注册、关联和/或激活调用中的任何一个以基于激活而指示虚拟装置将在线或离线。
参考图19B,流程图480’图解了所执行的与激活一个或多个标准逻辑装置/虚拟装置对的激活例程的另一实施例有关的步骤。处理开始于第一步骤482’,指针被设定为指向列表上的第一条,该列表为象上面连同流程图450的步骤466所述的列表那样的列表。指针被使用来指向列表上的不同单元。列表可作为一参数而被传递给激活例程。作为选择,在列表id被激活例程使用以区别激活例程有权使用的列表的情况下,列表id可被传递。还是作为选择,关联和激活例程可使用一单一的全局列表,从而任何对激活例程的调用均使所有先前关联的标准逻辑装置/虚拟装置对被激活。当然,代替一正式的列表结构,将每一标准逻辑装置/虚拟装置对(或仅一对)作为参数传递给激活例程是可能的。
在步骤482’之后是测试步骤484’,其确定处理是否结束(即,是否已到达列表的末端)。其可通过检查用于重复通过列表的指针而被确定。如果列表的处理未结束,则控制从步骤484’转到步骤485’,其确定关联操作是否先前已在指针指示的标准逻辑装置/虚拟装置对上执行。如果关联操作在先前未被执行(及因而可能没有激活),则控制从步骤485’转到步骤486’,在该步返回一错误。在步骤486之后,处理结束。
如果在步骤485’确定关联例程已在被激活的标准逻辑装置/虚拟装置对上执行,则控制从步骤485’转到步骤488’,指针被使得指向列表上的下一标准逻辑装置/虚拟装置对。在步骤488’之后,控制转回测试步骤484’以确定列表的处理是否结束。
如果在测试步骤484’确定列表的处理结束(及因而对应于被激活的虚拟装置的所有标准逻辑装置已被检查),控制从步骤484’转到步骤492’,跟踪列表上的单元的指针被使得指向标准逻辑装置/虚拟装置对的列表中的第一条。在步骤492’之后是测试步骤494’,其确定是否整个列表已被处理。如果没有,则控制从步骤494’转到步骤495’,在该步,对适当资源(例如,标准逻辑装置)的独占访问以类似于上面结合图15B及15C所论述的方式被激活。在步骤495’之后是步骤496’,其激活对应于标准逻辑装置/虚拟装置对的已被置位的保护位的会话。在步骤496’激活会话类似于在图15C的流程图420中的步骤424所执行的处理。当向具有一置位保护位的标准逻辑装置的磁道写时,在步骤496’激活会话使得特殊的虚拟装置处理被执行,如此文别处所述。在步骤496’之后是步骤497’,对适当资源的独占访问以类似于上述的方式被取消。在步骤497’之后是步骤498’,跟踪列表上已处理条目的指针被使得指向下一条。在步骤498’之后,控制转回测试步骤494’。
如果在测试步骤494’确定标准逻辑装置/虚拟装置对的整个列表已被处理(从而对应于被激活的虚拟装置的所有标准逻辑装置均有对应的被使活动的会话),控制从步骤494’转到步骤512’,在该步,列表被清除,从而随后的对激活例程的调用将不会企图重新激活已经激活的标准逻辑装置/虚拟装置对。在步骤512’之后,处理结束。注意,正如同图15B及15C,对一些实施例,可不必激活和取消对连同步骤496’使用的资源的独占访问。这由备选路径513a’、513b’图解。
图19B的流程图480’所图解的另一实施例可用于所有标准逻辑装置/虚拟装置对不是必需被同时激活的情况,和/或在必要时主机应用软件执行处理以同步激活的情况。主机应用软件处理的不同选项可于此文别处讨论的图19B(或19A)一起使用。
在一些情况下,非常希望将虚拟装置恢复回对应的标准逻辑装置或另一标准逻辑装置。即,将虚拟装置转换到带有其自己的数据存储的实际的逻辑装置或转移一虚拟装置到另一虚拟装置是有用的。
参考图20A,标准逻辑装置532被示作对应于一虚拟装置534及一日志装置536,在这里,其希望恢复虚拟装置534到具有其自己的存储器的逻辑装置。注意,在图20A的例子中,由虚拟装置534所指向的标准逻辑装置532的一些磁道自虚拟装置534被确立后还没有改变过。由虚拟装置534所指向的日志装置536的其他磁道对应于标准逻辑装置532的自虚拟装置534被确立后已改变过的磁道。
参考图20B,图20A(旧标准装置)的恢复虚拟装置534到标准逻辑装置532的结果被示出。虚拟装置534已被消除。此外,对由虚拟装置534指向的标准逻辑装置532的任何磁道,没有特殊处理已被执行。然而,对由虚拟装置534指向的日志装置536的磁道,标准逻辑装置532的对应磁道被修改为指向日志装置536的对应磁道。因而,主机访问标准逻辑装置532,在效果上,将访问日志装置536的磁道上的数据。这种间接机制提供了一种恢复标准逻辑装置532的方式,其不用立即从日志装置536将所有数据移到标准逻辑装置532。在于此的一实施例中,标准逻辑装置532的适当磁道被使得指向日志装置536的对应磁道,及此外,后台备份进程将由标准逻辑装置532指向的任何磁道拷贝到标准逻辑装置532。在于此的实施例中,后台备份进程被设计成一点也不干涉标准逻辑装置532的正常访问。此外,在访问指向日志装置536的一磁道的标准逻辑装置532的一磁道的情况下,当磁道被访问而不是等待后台任务以拷贝磁道时,备份也被执行。注意,当虚拟装置被恢复到虚拟装置被确立到其的标准逻辑装置时,没有其他虚拟装置被确立到标准逻辑装置。然而,对于其他类型的恢复,如下所述,在恢复虚拟装置到另一标准逻辑装置或另一虚拟装置之前,可能有一个以上的虚拟装置被确立到标准逻辑装置。
参考图20C,其所图解的是另一类型的恢复,由图20A的虚拟装置534表示的数据被拷贝到一新标准逻辑装置538。在这种情况下,新标准逻辑装置538整个由间接磁道构成,间接磁道或指向虚拟装置534先前指向标准逻辑装置532的情况中的标准逻辑装置532,或指向虚拟装置534先前指向日志装置536的情况中的日志装置536。如图20B所图解的实施例中那样,后台备份任务可被用于从标准逻辑装置532和日志装置536拷贝数据到标准逻辑装置538的磁道,从而,标准逻辑装置538最后将不包含任何自恢复操作的间接磁道。还有,如图20B的实施例,访问标准逻辑装置538的特定磁道可导致磁道连同访问一起被拷贝,而不是等待后台备份以移动磁道。
参考图20D,镜像逻辑装置532’是表示标准逻辑装置532的一时间点备份的逻辑卷。象标准逻辑装置532一样,镜像逻辑装置532’包含其自己的用于数据磁道的存储器。在于此的实施例中,镜像逻辑装置532’首先被确立到标准逻辑装置532,其最初使得数据被从标准逻辑装置532拷贝到镜像逻辑装置532’。一旦最初的备份完成,逻辑装置532、532’是“同步的”。对标准逻辑装置532所执行的写操作也被执行到镜像逻辑装置532’的对应磁道。任何对不在高速缓存中的磁道的读操作被执行到装置532、532’中的任一个。
在镜像逻辑装置532’已被确立到标准逻辑装置532之后,可能“拆分”装置532、532’,从而在装置532、532’之一上执行的操作(例如,写)不自动在装置532、532’的另一个上执行。然而,即使在拆分装置532、532’之后,可能有一跟踪拆分后所出现的变化的机制,从而,例如,在拆分后可能重新同步装置532、532’,而不需从标准逻辑装置532拷贝所有数据到镜像逻辑装置532’。
在图20D所图解的实施例中,在虚拟装置534被确立到标准逻辑装置532之后,镜像逻辑装置532’被从标准逻辑装置532拆分。在这种情况下,恢复虚拟装置534到镜像逻辑装置532’就象图20B所示的恢复虚拟装置到标准逻辑装置532,其中,在虚拟装置534被确立后已改变的镜像逻辑装置532’的磁道被使得成为指向日志装置536的磁道的间接指针,而在虚拟装置534被确立后未改变的磁道可在镜像逻辑装置532’上被直接访问。这在下面将详细阐述。注意,图20D的实施例展示了图20B的实施例(较少间接及较少后台备份)的优点及图20C的实施例(标准逻辑装置532未被修改以执行操作)的优点。
参考图20E,虚拟装置534被恢复到一新虚拟装置534’。在这种情况下,新虚拟装置534’实质上是原来虚拟装置534的备份,并具有指向标准逻辑装置532及日志装置536的指针。
在一些实施例中,可能提供一用于恢复的可选参数,其允许改变虚拟装置所恢复到的装置的名称。类似地,可选参数可被使用,从而虚拟装置所恢复到的装置可被使得在线或离线。此外,使用类似于上面结合确立虚拟装置的论述的开始群组及处理群组命令可同时恢复多个装置。
参考图21,流程图550图解了所执行的与图20B所图解的及上述的类似的恢复有关的步骤,其中,虚拟装置被恢复到其先前所确立到的标准逻辑装置。处理开始于第一步骤552,在该步,指向虚拟装置的第一磁道。指针被用来反复通过和处理虚拟装置的每一磁道。在步骤552之后是测试步骤554,其确定是否有更多的磁道需要被处理。如果没有,则控制从步骤554转到步骤555,一表明对于标准逻辑装置恢复已经被执行的值被写到对应于已经被用于虚拟装置的段的装置表的首部字段的一部分。在步骤555之后是步骤557,虚拟装置以类似于上面结合图14描述的方式被解除分配,当然,日志磁道未被返回到空闲列表除外。
在步骤557之后是步骤558,会话类型被改变。在于此的一实施例中,会话类型在步骤558被改变以表明标准逻辑装置具有间接指向日志装置的磁道的磁道在其上面(在下面将详述)。对于该会话类型,磁道被逐步从日志装置移动到标准逻辑装置。该移动可通过解决在步骤558设定的对于会话类型的间接磁道的系统范围内的任务而被执行。作为选择,也可能明确地启动一后台备份任务(象在snapoperation中可被使用的后台备份一样)。后台备份任务通过从日志装置的磁道拷贝数据到标准逻辑装置而转变间接指针。注意,因为磁道被从标准逻辑装置移动到日志装置,未被其他虚拟装置指向的日志装置的磁道被以类似于上面结合图14的步骤386、388所论述的方式返回到空闲列表。还应注意,如果写出现在指向日志装置的磁道的标准逻辑装置的间接磁道上,在写被执行之前,包含数据的磁道首先被从日志装置拷贝到标准逻辑装置(并可能被返回到日志装置磁道的空闲列表)。在其他实施例中,向间接磁道的写(数据在日志装置上)可导致将执行的写直接向日志装置磁道写。在步骤558之后,处理结束。
如果在测试步骤554确定有更多的磁道需被处理,则控制从步骤554转到测试步骤562,其确定被处理的虚拟装置磁道是否指向标准逻辑装置。如果没有(意味着虚拟装置的磁道指向日志装置),则控制从步骤562转到步骤564,标准逻辑装置的磁道被使得指向日志装置的对应磁道。在那种情况下,随后的对标准逻辑装置的磁道的访问将取回存储在日志装置磁道上的数据。然而,如上所述,磁道将被从日志装置移动到标准逻辑装置,从而,标准逻辑装置最终将包含最初提供在日志装置上的数据。注意,如此所述的访问和修改存储装置的磁道可要求阻止其他进程的访问,例如,可通过在确定其中的状态之前和/或在修改磁道之前锁住磁道来实现。用于阻止其他进程的访问的步骤在此未明确示出,当应该理解为,当需要时,那样的步骤将被执行。
在步骤564之后是步骤567,其确定用于磁道的保护位是否被置位。由于虚拟装置的磁道指向日志装置,与于此讨论的其他处理一致,预期保护位应在该步骤被清除。因而,如果在步骤567确定对于磁道的保护位被置位,控制从步骤567转到步骤568,在该步执行一错误处理。错误处理可包括简单地记住该错误、暂停处理并返回一错误指示器、采取步骤以纠正错误等。
如果在步骤567确定对于磁道的保护位未被置位,或在步骤568之后,控制转到步骤572,在该步,为了执行在此描述的处理,指向虚拟装置的下一磁道。在步骤572之后,控制转回到测试步骤554,如上所述。
如果在测试步骤562确定被处理的虚拟装置磁道指向标准逻辑装置,控制从步骤562转到步骤574,其确定对于磁道的保护位是否被置位。依照于此描述的其他处理,如果虚拟装置磁道(表)指向标准逻辑装置,预计保护位应被置位。因而,如果在步骤574确定保护位未被置位,控制从步骤574转到步骤568,如上所述。
如果在步骤574确定保护位已被置位(如预期的),控制从步骤574转到步骤578,保护位被清除,从而没有特殊的处理将被执行,代表先前的与向标准逻辑装置的磁道的写有关的标准逻辑装置/虚拟装置会话。然而,应注意,如下所述,其他类型的恢复操作可要求与向标准逻辑装置的磁道写有关的特殊处理。在步骤578之后,控制转到步骤572以处理下一磁道。
参考图22,流程图580图解了所执行的与图20C图解的及上述的恢复虚拟装置到一新标准逻辑装置有关的步骤。处理在第一步骤582开始,在该步指向虚拟装置的第一磁道。在步骤582之后是测试步骤583,其确定是否有更多的虚拟装置磁道需被处理。如果没有,则控制从步骤583转到步骤584,一表明对于虚拟装置恢复已被执行的值被写到对应于会话的标准逻辑装置的装置表的首部字段的一部分,所述会话已被以类似于结合步骤555所述的方式用于虚拟装置。然而,注意,在流程图580的情况中,没有清除所有保护位的对应步骤。这是因为,如下所详述的,在该实施例中,保护位是在恢复之后才被使用。
在步骤584之后是步骤585,虚拟装置被以类似于上面结合图21所述的方式解除分配。在步骤585之后是步骤586,会话类型被改变,以使以类似于上面结合步骤558所述的方式移动磁道更为容易。然而,注意在这种情况下,新标准逻辑装置的所有磁道是间接的,从而磁道将从先前已与正被恢复的虚拟装置关联的日志装置及标准逻辑装置移走。然而,正如同图21的实施例,日志装置的空闲磁道将被返回到空闲列表,且向间接磁道的写可导致磁道被拷贝以解决间接。在其他实施例中,向日志装置上的间接磁道的写可导致写被直接执行到日志装置磁道。在步骤586之后,处理结束。
如果在测试步骤583确定有更多的磁道需处理,则控制从步骤583转到测试步骤588,其确定虚拟装置的磁道(表)是否指向标准逻辑装置。如果是,则控制转到测试步骤589,其确定对于磁道的保护位是否已被置位。依照于此讨论的其他处理,预计保护位应被置位成虚拟装置指向标准逻辑装置。因此,如果在步骤589确定保护位未被置位,则控制从步骤589转到步骤591,以类似于上面结合步骤568所述的方式提供一错误处理。在一些实施例中,在步骤591的处理包括置位保护位以纠正值。如果在步骤589确定对于标准逻辑装置的保护位已被置位,或在步骤591之后,控制转到步骤592,新标准逻辑装置的磁道被设定成指向旧标准逻辑装置(即,先前确立到被恢复的虚拟装置的标准逻辑装置)的磁道的间接指针。
如果在测试步骤588确定虚拟装置的磁道(表)没有指向标准逻辑装置,则控制转到测试步骤593,其确定对于磁道的保护位是否已被置位。依照于此讨论的其他处理,如果虚拟装置没有指向标准逻辑装置(即,指向日志装置),则预计保护位没有被置位。因此,如果在步骤593确定保护位被置位,则控制从步骤593转到步骤591,如上所述。如果在步骤593确定对于标准逻辑装置的保护位没被置位,或在步骤591之后,控制转到步骤595,新标准逻辑装置的磁道被设定成指向日志装置的对应磁道的间接指针。
在步骤592或步骤595之后是步骤598,在该步处理虚拟装置的下一磁道。在步骤598之后,控制转回到步骤583,如上所述。
如上面所提及的,在图22图解的实施例中,对应于被恢复的虚拟装置会话的保护位没有被清除。这被参考图20A及20C进行阐述。首先,注意,在虚拟装置534被确立后,标准逻辑装置532的某些磁道从来没有被写过,因此,那些磁道保持他们在标准逻辑装置532上的原始状态。如图20C所示,当虚拟装置534被首先恢复到新标准逻辑装置538时,标准逻辑装置532的那些磁道被标准逻辑装置538的对应磁道间接指向。在磁道被拷贝到标准逻辑装置538之前,如果出现对标准逻辑装置532上的那些磁道的随后的写,则标准逻辑装置538,间接参考至标准逻辑装置532上最近被写的磁道,不再对应于虚拟装置534的被恢复的版本。然而,磁道的置位的保护位防止这种情况发生。在例如图20C所图解的恢复被执行后,向具有置位保护位的标准逻辑装置532的磁道的写使得磁道在写出现之前首先被拷贝到标准逻辑装置538。注意,每一磁道的保护位在每一磁道被从标准逻辑装置532拷贝到标准逻辑装置538之后可被清除,不管拷贝是否连同特殊进程出现,所述特殊进程由置位保护位引起或由在步骤588启动的磁道移动引起。因而,一旦所有数据被从标准逻辑装置532移动到标准逻辑装置538,所有与会话关联的保护位预计将被清除。
参考图23,局部流程图600图解了所执行的恢复虚拟装置到镜像逻辑装置的步骤,如上面结合图20D所图解的。流程图600图解了所执行的不同于图21的流程图550的那些步骤的步骤。流程图600的接入并流进流程图550的部分(即,在这里同样的操作被执行)在图23中被示出并在此讨论。
处理开始于第一步骤602,由于所出现的拆分操作未被完成,所有改变(例如,写)均在镜像逻辑装置上执行,使得镜像逻辑装置正好在拆分前的时间点上与标准逻辑装置实质上相同。对于于此描述的实施例,拆分可在虚拟装置被确立到标准逻辑装置之后出现,但应在虚拟装置被恢复之前。自拆分后撤消还原改变的能力可由镜像设备提供,该设备使用跟踪日志的特征并跟踪自拆分后所出现的变化。
在步骤602之后是步骤604,其类似于虚拟装置的步骤552。在步骤604之后是测试步骤606,其象图21的测试步骤554,其确定是否有更多磁道需要被处理。如果没有,则控制转到图21的步骤555,如上所述。否则,控制转到测试步骤608,其象图21的步骤562,其确定虚拟装置的指针是否指向标准逻辑装置。如果是,则控制转到图21的步骤574,如上所述。
如果在步骤608确定被处理的虚拟装置的磁道没有指向标准逻辑装置(表明在虚拟装置被确立后至少一写被执行),则控制从步骤608转到步骤612,其确定所有对被处理的磁道的写操作是否出现在镜像逻辑装置被从标准逻辑装置拆分之后。注意,如果这是一范例,在步骤602的还原操作将恢复镜像逻辑装置的磁道到与虚拟装置被确立之前标准逻辑装置的对应磁道的状态同样的状态。
如果确定所有对磁道的写不是出现在拆分之后,则控制从步骤608转到图21的步骤564,如上所述,以使得镜像逻辑装置的对应磁道以类似于上面结合图21所述的方式间接指向日志装置的适当磁道。如果在测试步骤612确定所有写出现在拆分之后,则控制从步骤612转到测试步骤614,其确定虚拟装置是否是指向日志装置的对应磁道的最后的虚拟装置(即,唯一的虚拟装置)。如果是,则控制从步骤614转到步骤616,日志装置的磁道被返回到日志装置磁道的空闲列表。步骤614、616类似于图14的步骤386、388,如上所述。在步骤616之后,或在步骤614之后(如果日志装置的磁道正被一个以上的虚拟装置使用),是图21的步骤567,其测试保护位是否在适当的状态并接着清除保护位。在这种情况下,然而,在标准逻辑装置532及镜像逻辑装置532’上的保护位均被清除。注意,转到步骤567导致镜像逻辑装置的磁道成为用于访问数据的直接磁道。
对于主机应用软件,访问存储装置能够使用于此讨论的一些功能性是有用的。例如,一主机应用软件可能想创建一虚拟装置以表示标准逻辑装置一时间点上的备份并接着从虚拟装置运行一备份,在其后,虚拟装置可被解除分配。在其他情况下,当使用标准逻辑装置的软件被测试时,虚拟装置可被用于保持来自标准逻辑装置的数据在一时间点的备份。在测试阶段过后,由虚拟装置表示的时间点的备份可被恢复回标准逻辑装置。
参考图24,简图620图解了访问存储装置626的多个主机622-624。主机622-624中的每一个均可以通过使系统调用存储装置626而创建、确立、解除分配、及恢复于此所述的标准逻辑装置/虚拟装置对。在于此公开的一实施例中,在主机622-624上运行的应用软件不直接进行系统调用。而是,软件的在下面的层将较高级的调用从主机622-624转换为提供给存储装置626的适当的系统调用。例如,主机622可具有一确立标准逻辑装置/虚拟装置对的应用软件,其调用将最终使得适当系统调用(例如,注册、关联、及激活)被调用的确立例程,例如,其使用链接到在主机622上运行的应用软件的库、一在主机622上运行的操作系统例程、或一些其他适当的机制。
传递给确立例程的参数可包括一个或多个标准逻辑装置/虚拟装置对、一个或多个可选的名称变化参数(如上所述)、及一个或多个确定最近确立的虚拟装置是否将在线或离线的在线/离线指示器。在一些实施例中,从应用软件调用的确立例程将仅接受一对标准逻辑装置/虚拟装置对。在其他实施例中,确立例程将接受多个标准逻辑装置/虚拟装置对(例如,如上述的一列表或列表id)。在接受多个标准逻辑装置/虚拟装置对的实施例中,在下面的系统调用可以、也可不使得虚拟装置被以此文别处讨论的方式同步确立。在某些情况中,对于主机,其可能同步处理确立多个标准逻辑装置/虚拟装置对,例如,其通过使用在2002年4月29日申请的美国专利申请号10/134,420(其组合在此用于参考)中所公开的机制建立适当的导致激活操作同步的连续组。此外,作为对的部分的任何装置上执行操作之前,由主机简单地等待所有对被确立而同步确立多个对是可能的。在一些实施例中,确立例程可被传递给一个或多个标准逻辑装置及对应的由确立例程创建和/或获得的虚拟装置。
参考图25。流程图630图解了由确立例程执行的将用于确立一个或多个标准逻辑装置/虚拟装置对的较高级的应用软件调用转换为存储装置626可进行的适当的系统调用的步骤。转换可由主机装置622-624之一上的操作系统、或使用任何其他适当的转换高级主机应用软件调用为系统调用的机制在链接到应用软件本身的库码中被执行。
处理开始于第一步骤632,其确定是否一个以上的标准逻辑装置/虚拟装置对正被确立。如上所述,在一些实施例中在一单一调用中确立一个以上标准逻辑装置/虚拟装置对是可能的,及在一些实施例中,以使所有虚拟装置被同步激活的方式也是可能的。如果在测试步骤632确定一个以上的标准逻辑装置/虚拟装置对正被确立,则控制从步骤632转到步骤634,开始群组调用被执行以创建上述的标准逻辑装置/虚拟装置对的列表。注意,如上所述,无须使用开始群组及处理群组而同步处理及确立多个标准逻辑装置/虚拟装置对是可能的。在那种情况下,另一适当的机制,如一个或多个上面论述的机制(例如,列表、列表id),可在步骤634被调用以使多个标准逻辑装置/虚拟装置对被同时确立。还作为选择地,确立适当的如美国专利申请号10/134,420中所述的连续组并使用连续组机制同步激活多个对是可能的。
如果在步骤632确定只有一个标准逻辑装置/虚拟装置对被确立,或在步骤634之后,是步骤636,在该步,为了使其中的处理容易,指向第一标准逻辑装置/虚拟装置对。在一些实施例中,每一标准逻辑装置/虚拟装置对被存储在数据结构中(可能包含其他可选参数,如新名称和/或在线/离线说明符)。数据结构可在一链表中链接在一起。因而,在步骤636设定的并用于继续处理的指针被提供以遍历列表。在确立例程创建或以其他方式提供对应的虚拟装置的实施例中,数据位置可被传递给确立例程,其放置一个或多个适当的虚拟装置标识符在位置中。
在步骤636之后是步骤638,其确定被传递的参数的列表的处理是否结束(例如,是否指针指向列表的末端)。当然,在第一次迭代上,步骤638的测试的结果被预期表明处理未结束。如果在测试步骤638确定不是所有的标准逻辑装置/虚拟装置对(或,在一些实施例中,仅标准逻辑装置)已被处理,则控制从步骤638转到步骤642以调用注册例程,如上所述。
在步骤642之后是测试步骤644,其确定可选新名称是否已被指定。如果在测试步骤644确定可选新名称尚未被提供,则控制从步骤644转到测试步骤646,其确定可选在线/离线布尔参数是否已被提供。如上所述,在线/离线选项允许调用例程以确定正被确立的虚拟装置是否将在线(可为主机使用)或离线(不可为主机使用)。如果在测试步骤646确定在线/离线参数未正被提供,则控制从测试步骤646转到步骤648,关联系统调用被提供以关联标准逻辑装置/虚拟装置对。
如果在测试步骤646确定可选在线/离线参数已被提供,则控制从步骤646转到步骤652,关联系统调用被进行。然而,在步骤652,在线/离线参数也可由系统调用传递以表明在确立时虚拟装置是否应被使得在线或离线。
如果在测试步骤644确定虚拟装置的一新名称已被提供,则控制从步骤644转到步骤653,其确定可选在线/离线参数是否已被提供。如果在测试步骤655确定可选在线/离线参数未正被提供,则控制从步骤653转到步骤654,以提供一系统调用来关联该对与新名称参数,如上所述。
如果在测试步骤653确定可选在线/离线参数已被连同标准逻辑装置/虚拟装置对一起提供,则控制从步骤653转到步骤656,该对被与虚拟装置的新名称关联,并与基于确立指示虚拟装置是否将在线或离线的指示关联。
在步骤648、652、654、656之后是步骤658,在步骤636设定的指针被使得指向下一标准逻辑装置/虚拟装置对,如果有的话。在步骤658之后,控制转回到测试步骤638以确定是否所有标准逻辑装置/虚拟装置对已被处理。
如果在测试步骤638确定所有标准逻辑装置/虚拟装置对已被处理,则控制从步骤638转到步骤662,对每一对提供一激活系统调用(或,对于上述的不同实施例,对所有对均可调用激活)。在步骤662之后是步骤664,其确定是否有一个以上的标准逻辑装置/虚拟装置对。如果是,则控制从步骤664转到步骤666,在该步进行一ProcessGroup调用。正如同Begin Group已被调用的步骤634,步骤666可表示同步确立多个标准逻辑装置/虚拟装置对的另一机制。在一些实施例中,执行流程图630所图解的处理的例程跟踪标准逻辑装置/虚拟装置对的列表,在这种情况下,整个列表(或一列表id,如上所述)可被传递给激活例程,如上所述。在其他实施例中,一连续组被形成,如上面提及的美国专利申请号10/134,420中所描述的那样。
在步骤666之后或步骤664之后(如果仅有一对标准逻辑装置/虚拟装置对)是步骤668,执行在先前的步骤中提出的处理的结果被返回到调用例程(例如,成功或失败,及,在一些实施例中,用于最近确立的虚拟装置的标识符)。在步骤668之后,处理结束。
提供一从在主机622-624之一处的应用软件调用的恢复例程也是可能的,恢复例程将一个或多个标准逻辑装置/虚拟装置对、重新命名虚拟装置所存储到的标准逻辑装置的可选名称、及表明标准逻辑装置是否将在线或离线的可选在线/离线布尔值作为参数。参数可以类似于结合确立例程所述的方式在链表中被传递。还应注意,在恢复例程的范例中,标准逻辑装置/虚拟装置对中的标准逻辑装置可以是虚拟装置被确立到的同一标准逻辑装置或可以是不同的标准逻辑装置,或是一镜像逻辑装置,如上所述。还是如上所述,虚拟装置可被恢复到另一虚拟装置。
参考图26,流程图680图解了所执行的连同调用恢复例程的主机应用软件以恢复图20B、20C、20D、20E所图解的虚拟装置的步骤。处理开始于第一步骤692,其确定可选新名称是否已被作为一参数提供给恢复例程。如上所述,在某些情况下,可能恢复一虚拟装置到一标准逻辑装置或一新虚拟装置,及同时,提供给标准逻辑装置或新虚拟装置一不同于与旧虚拟装置关联的名称的名称。如果在测试步骤692确定新名称未被提供,则控制从步骤692转到测试步骤694,其确定可选在线/离线参数是否已被提供。如上所述,在某些情况下,可能恢复一虚拟装置到一标准逻辑装置或一新虚拟装置,而同时使标准逻辑装置或新虚拟装置不可为主机所用(离线)。
如果在测试步骤694确定可选在线/离线参数未被提供,则控制从步骤694转到步骤696,虚拟装置通过进行一恢复系统调用而被恢复,如上所述。作为选择,如果在测试步骤694确定可选在线/离线参数已被提供,则控制从测试步骤694转到步骤698,恢复系统调用被提供给一可选在线/离线参数。
如果在测试步骤692确定新名称已被提供给恢复例程,则控制从步骤692转到测试步骤702,其确定可选在线/离线参数是否也已被提供。如果没有,则控制从测试步骤702转到步骤704,恢复系统调用被提供给一标准逻辑装置或新虚拟装置的新名称,以恢复虚拟装置。如果在测试步骤702确定可选在线/离线参数已被提供,则控制从测试步骤702转到步骤706,恢复系统调用以新名称和在线/离线参数被执行。在步骤696、698、704、706的任何一步之后,处理结束。
在某些情况下,当虚拟装置不再可接近时,希望使虚拟装置不活动(而不是解除分配),从而被写到连同使用虚拟装置的日志装置的磁道还是可用的。即,使虚拟装置不活动的调用使虚拟装置对任何欲访问其的主机均不是就绪的,并使得对对应的标准逻辑装置的写不导致任何如上述的特殊处理。在效果上,不活动的虚拟装置表示从虚拟装置被确立的时间到虚拟装置被无效的时间期间变化的对应标准逻辑装置的磁道。例如,如果虚拟装置在中午被确立并在下午6点被无效,则由不活动虚拟装置的表指向的日志装置的磁道仅代表标准逻辑装置的在中午到下午6点之间变化的那些磁道。
参考图27,流程图730图解了所执行的与使虚拟装置不活动有关的步骤。处理开始于第一步骤732,对适当资源(例如,虚拟装置)的独占访问以类似于上面结合图15B及15C所述的方式被激活。在步骤732之后是步骤734,对适当资源(例如,对应的标准逻辑装置)的独占访问以类似于上面结合图15B及15C所述的方式被激活。
在步骤734之后是步骤736,对应于标准逻辑装置/虚拟装置对的会话通过,例如,写一适当的值到装置首部字段而被使得不活动。在该步之后,任何对标准逻辑装置的写将不导致任何特殊的处理出现。这有效地冻结了虚拟装置的变化。
在步骤736之后是步骤738,对标准逻辑装置的适当资源的独占访问被以类似于上述的方式取消。注意,由于会话在步骤736被使得不活动,任何随后的向标准逻辑装置的写将不影响虚拟装置。在步骤738之后是步骤742,在该步,虚拟装置被使得不是就绪的。在步骤742使虚拟装置不是就绪的将阻止虚拟装置被修改,例如,被主机修改。然而,为了提供对对应于虚拟装置的日志装置的磁道的访问,对应于虚拟装置的表被保持。在其他实施例中,可能通过虚拟装置读取日志装置的磁道(即,读虚拟装置),其通过使虚拟装置仅在步骤742对写不是就绪的、并使会话在步骤736不活动而实现。
在步骤742之后是步骤744,对标准逻辑装置的适当资源的独占访问被以类似于上述的方式取消。然而,应注意,在步骤744的处理并不使任何主机装置到虚拟装置的访问(或至少写访问)变得容易,因为虚拟装置在步骤742被使得不是就绪的。此外,在步骤744的处理并不导致数据被从对应的标准逻辑装置写到虚拟装置,因为如上所述,为了阻止由于标准逻辑装置虚拟装置的进一步操作,会话在步骤736被使得不活动。在步骤744之后,处理结束。
注意,正如同图1 5B及15C,对一些实施例,不必激活和取消对连同步骤736、742中之一或全部一起使用的资源的独占访问。这由备选路径746a-746d图解。
主机应用软件可通过进行两个系统调用而访问对应于不活动的虚拟装置的日志装置的磁道。第一系统调用读标准逻辑装置的保护位,并因而提供如虚拟装置的哪些磁道指向日志装置这样的信息,并因而对应于在虚拟装置被确立到虚拟装置被使得不活动之间被修改的磁道。即,对标准逻辑装置的被置位的任何保护位,没有指向日志装置的不活动的虚拟装置的对应磁道。相反地,如果标准逻辑装置的磁道的位被清除,因而表明在虚拟装置被确立后但在虚拟装置被无效之前出现了对磁道的写,则在由无效的虚拟装置指向的日志装置上有对应的磁道。该系统调用可将磁道的标识符作为参数传递并接收回磁道的保护位的状态。作为选择,系统调用可被传递给一指向用于存储磁道(包括所有磁道)范围的状态的数据结果的指针,其被填充在并返回到调用例程。
另一系统调用可允许所保存的对应于无效的虚拟装置的磁道的读取。读无效的虚拟装置的保存磁道的例程将虚拟装置的标识符及表明哪一磁道将被读取的磁道标识符作为参数。注意,读对应于被无效的虚拟装置的日志磁道的一可能的机制使得虚拟装置仅对写是不就绪的并取消对应于虚拟装置的会话。在这种情况下,日志磁道可通过虚拟装置而被访问,其通过读虚拟装置实现。
参考图28,流程图750图解了读被无效的虚拟装置的一磁道的一实施例中所执行的步骤。处理开始于第一步骤752,其确定是否虚拟装置被作为参数传递给读对应于被无效的虚拟装置的磁道的例程。如果没有,则控制从步骤752转到步骤754,在该步,返回一错误给调用例程。在步骤754之后,处理结束。
如果在步骤752确定由调用例程传递的虚拟装置标识符对应于一被无效的虚拟装置,则控制从步骤752转到步骤756,其确定所请求的磁道是否对应于指向日志装置的虚拟装置上的磁道。如上所述,仅部分虚拟装置的磁道将对应于日志装置的磁道(即,对应于在虚拟装置被确立后、虚拟装置被无效前被写的标准逻辑装置的磁道的磁道)。在虚拟装置被确立后、虚拟装置被无效前之间尚未被写的磁道将不被指向日志装置上。因而,如果在步骤756确定由调用例程传递的磁道标识符不对应于由虚拟装置指向的磁道,则控制从步骤756转到步骤754,在该步返回一错误,如上所述。否则,如果在步骤756确定磁道被虚拟装置指向,则控制从步骤756转到步骤758,所请求的磁道数据被返回。在步骤758之后,处理结束。注意,对一些实施例,可能使用一个调用从多个磁道请求数据。
在某些点上,解除被无效的虚拟装置的分配可能是有用的。在那种情况下,可能调用上面结合图14的流程图370所述的例程。注意,流程图370所示的步骤与解除被无效的虚拟装置的分配所执行的步骤是相同的。
在某些情况下,能够获得在过去一特定时间存在于计算机系统上的数据是有用的。在进行每日备份并保存的系统中,可能请求特定日子的一文件或一套文件。然而,在某些情况下,对某些应用软件,一天的粒度是不足够的。此外,某一系统可要求每天保存整个系统的财产,这是可考虑的。在其他情况中,仅需要提供增量备份。然而,典型地,增量备份要求数据首先被完全备份,接着,在以后,仅备份那些在完全备份之后发生变化的文件或保存最近的增量备份。其困难在于,即使仅有一磁道文件发生变化(某些情况下),也要保存整个文件。此外,检索特定日子的文件可能要求恢复整个文件并接着向前滚动系统。在某些情况下,期望能够以系统的当前状态开始并能够向后工作。
参考图29,流程图760图解了使用虚拟装置提供磁道级增量备份的备份系统。流程图760的步骤可被运行主机应用软件的主机系统执行。处理开始于第一步骤762,新虚拟装置被确立到作为备份对象的标准逻辑装置。在步骤762之后是步骤764,先前已被确立到标准逻辑装置的旧虚拟装置被无效。在步骤764之后是步骤766,对应于旧虚拟装置的磁道被保存。保存磁道可包括:使用上述的机制(例如)收集由无效的虚拟装置所指向的磁道(即,在虚拟装置被确立后、虚拟装置被无效前之间被修改的磁道)。磁道可通过指示一标准逻辑装置的对应源磁道而被保存(如上所述,其与日志装置的每一磁道一起保存)。可被保存的其他信息可包括一印时戳或指示所保存的磁道来源于哪一备份会话的标识符。
流程图760的步骤可在每递增周期被运行,如每6小时。因而,希望从那些6小时增量之一活动一文件版本的用户可以那样做,如下所述。还应注意,在一些实施例中,在指向步骤766之后分配被无效的虚拟装置是可能的。
参考图30,流程图780图解了使用在图29的流程图760所保存的磁道恢复数据所执行的步骤。流程图780的步骤可被运行主机应用软件的主机系统执行。处理开始于第一步骤782,其以当前数据图象开始。在步骤782之后是步骤784,指针被设定指向已被保存的最近的磁道。在步骤784之后是步骤786,被指向的磁道被应用于图象。步骤786表示拷贝所保存的磁道到图象以滚动图象回到其在较早时间的状态。
在步骤786之后是步骤788,指针被使得指向所保存磁道的下一最近组。在步骤788之后是测试步骤792,其确定处理是否结束(即,滚动备份是否向后工作到想要的时间)。如果在步骤792确定处理未结束,则控制转回到步骤786。否则,在步骤792可确定处理结束。
在本发明结合不同的实施例被公开的同时,在其上的修改对那些本领域技术人员是显而易见的。因此,本发明的精神和范围在下述的权利要求中被提出。

Claims (10)

1.一种用于主机在存储装置的逻辑存储区和虚拟存储区之间建立耦合的方法,该方法包括:
主机发送第一指令给存储装置以注册逻辑存储区;
在第一指令之后,主机发送第二指令给存储装置以使逻辑存储区和虚拟存储区之间建立联系;
在第二指令之后,主机发送第三指令给存储装置以激活逻辑存储区和虚拟存储区之间的耦合,其中,在激活耦合后,虚拟存储区的指针指向逻辑存储区的段,且其中对逻辑存储区的写使得数据被从逻辑存储区复制到存储装置的另一区域并使得虚拟存储区的对应的指针指向另一区域。
2.如权利要求1所述的方法,其中第一指令导致虚拟存储区的建立。
3.如权利要求1所述的方法,其中第二指令导致虚拟存储区的建立。
4.如权利要求1所述的方法,其中第二指令包括选自由下面参数构成的组的任一或多个参数:虚拟存储区的新名称以及确定对主机虚拟存储区是否可用的指示器。
5.如权利要求1所述的方法,其中存储区为装置。
6.一种用于主机在存储装置的多个逻辑存储区的至少一个区和存储装置的多个虚拟存储区的至少一个对应区之间建立耦合的方法,该方法包括:
主机发送指令给存储装置以使逻辑存储区的至少一个区和虚拟存储区的对应区之间建立联系;及
在主机发送指令之后,主机使得多个逻辑存储区的至少一个区和多个虚拟存储区的对应区之间的耦合激活,其中,在激活后,对应于耦合的虚拟存储区的至少一个区的指针指向逻辑存储区的对应区的段,且其中一对逻辑存储区的对应区的写使得数据被从逻辑存储区的对应区拷贝到存储装置的另一区域并使得虚拟存储区的至少一个区的对应指针指向另一区域。
7.如权利要求6所述的方法,其中主机发送指令导致虚拟存储区的至少一个区的建立。
8.如权利要求6所述的方法,其中导致激活包括主机发送附加的指令。
9.如权利要求8所述的方法,其中附加的指令包括选自下面参数组的任一或多个参数:虚拟存储区的至少一个区的新名称以及确定对主机虚拟存储区的至少一个区是否可用的指示器。
10.一种提供不包含数据段的虚拟存储区的方法,包括:
提供第一和第二存储区,每一存储区均包含数据段;
提供虚拟存储区的多个指针,其中每一指针指向下述之一:第一存储区的一段和第二存储区的一段;及
在主机向由虚拟存储区的特定指针指向的第一存储区的特定段写数据之前,特定段被拷贝到第二存储区且特定指针也转而指向那里。
CNB038003783A 2002-04-10 2003-04-10 虚拟存储装置 Expired - Lifetime CN100380304C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/120,016 US7340489B2 (en) 2002-04-10 2002-04-10 Virtual storage devices
US10/120,016 2002-04-10
US10/306,378 2002-11-27

Publications (2)

Publication Number Publication Date
CN1820243A CN1820243A (zh) 2006-08-16
CN100380304C true CN100380304C (zh) 2008-04-09

Family

ID=28790016

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB038003783A Expired - Lifetime CN100380304C (zh) 2002-04-10 2003-04-10 虚拟存储装置
CNB038003775A Expired - Lifetime CN100354813C (zh) 2002-04-10 2003-04-10 虚拟存储装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB038003775A Expired - Lifetime CN100354813C (zh) 2002-04-10 2003-04-10 虚拟存储装置

Country Status (5)

Country Link
US (7) US7340489B2 (zh)
EP (1) EP1565809A2 (zh)
JP (1) JP2005532611A (zh)
CN (2) CN100380304C (zh)
WO (1) WO2003088045A2 (zh)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340489B2 (en) * 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
US20030225928A1 (en) * 2002-05-28 2003-12-04 Sun Microsystems, Inc. Method, system, and program for managing access to a device by device specific components and operating system specific components
DE10253174A1 (de) * 2002-11-14 2004-06-03 Siemens Ag Vorrichtung zur Entwicklung und/oder Konfiguration eines Automatisierungssystems
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
US7577675B2 (en) * 2003-04-30 2009-08-18 Oracle International Corporation Determining a mapping of an object to storage layer components
US7552309B2 (en) 2005-05-06 2009-06-23 International Business Machines Corporation Data storage methods for hierarchical copies
US7296008B2 (en) * 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
JP2005190106A (ja) 2003-12-25 2005-07-14 Hitachi Ltd 論理ボリュームを管理する記憶制御サブシステム
US7484210B2 (en) * 2004-02-17 2009-01-27 Intel Corporation Apparatus and method for a generic, extensible and efficient data manager for virtual peripheral component interconnect devices (VPCIDs)
US8959299B2 (en) * 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US20060174074A1 (en) * 2005-02-03 2006-08-03 International Business Machines Corporation Point-in-time copy operation
US7987158B2 (en) * 2005-02-09 2011-07-26 International Business Machines Corporation Method, system and article of manufacture for metadata replication and restoration
US7694088B1 (en) * 2005-03-31 2010-04-06 Symantec Operating Corporation System and method for efficient creation of aggregate backup images
EP1875393B1 (en) * 2005-04-25 2015-08-05 NetApp, Inc. Architecture for supporting sparse volumes
US8055702B2 (en) 2005-04-25 2011-11-08 Netapp, Inc. System and method for caching network file systems
US7549029B2 (en) 2005-05-06 2009-06-16 International Business Machines Corporation Methods for creating hierarchical copies
US7490213B2 (en) * 2005-05-06 2009-02-10 Xiv Ltd. Dynamic allocation of storage for hierarchical copies
US7836266B2 (en) * 2005-09-19 2010-11-16 International Business Machines Corporation Managing snapshot history in a data storage system
US7620938B2 (en) * 2005-10-31 2009-11-17 Microsoft Corporation Compressed program recording
US7664924B2 (en) * 2005-12-01 2010-02-16 Drive Sentry, Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US20100153671A1 (en) * 2005-12-01 2010-06-17 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US10503418B2 (en) 2005-12-01 2019-12-10 Drive Sentry Limited System and method to secure a computer system by selective control of write access to a data storage medium
US7805565B1 (en) 2005-12-23 2010-09-28 Oracle America, Inc. Virtualization metadata promotion
US20070156982A1 (en) * 2006-01-03 2007-07-05 David Meiri Continuous backup using a mirror device
US8677087B2 (en) * 2006-01-03 2014-03-18 Emc Corporation Continuous backup of a storage device
US7415489B2 (en) * 2006-01-10 2008-08-19 International Business Machines Corporation Managing an archived file system
US8762418B1 (en) 2006-05-31 2014-06-24 Oracle America, Inc. Metadata that allows refiltering and data reclassification without accessing the data
JP4963892B2 (ja) * 2006-08-02 2012-06-27 株式会社日立製作所 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
WO2008036833A2 (en) * 2006-09-20 2008-03-27 Drive Sentry, Inc. Selective control of write access to a data storage medium
US7617372B1 (en) 2006-09-28 2009-11-10 Emc Corporation Avoiding copy on first write
US7321962B1 (en) * 2007-02-07 2008-01-22 Network Appliance, Inc. Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream
US9152349B2 (en) 2007-03-23 2015-10-06 Emc Corporation Automated information life-cycle management with thin provisioning
US8489830B2 (en) * 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US10272333B2 (en) * 2007-04-18 2019-04-30 Sony Interactive Entertainment Inc. Game system
US7949637B1 (en) * 2007-06-27 2011-05-24 Emc Corporation Storage management for fine grained tiered storage with thin provisioning
US8775368B1 (en) 2007-06-27 2014-07-08 Emc Corporation Fine grained tiered storage with thin provisioning
US7822939B1 (en) 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US9817832B1 (en) 2007-10-31 2017-11-14 EMC IP Holding Company LLC Unified framework for policy-based metadata-driven storage services
US8352431B1 (en) 2007-10-31 2013-01-08 Emc Corporation Fine-grain policy-based snapshots
US10089308B1 (en) 2008-09-30 2018-10-02 EMC IP Holding Company LLC Method for using redundant data elimination to accelerate storage system scanning
US8151069B1 (en) 2008-10-29 2012-04-03 Emc Corporation Multiprotection for snapsnots
JP5074351B2 (ja) * 2008-10-30 2012-11-14 株式会社日立製作所 システム構築方法及び管理サーバ
US8566549B1 (en) 2008-12-31 2013-10-22 Emc Corporation Synchronizing performance requirements across multiple storage platforms
US8281181B2 (en) * 2009-09-30 2012-10-02 Cleversafe, Inc. Method and apparatus for selectively active dispersed storage memory device utilization
US8150808B2 (en) * 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8161077B2 (en) 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US20110113134A1 (en) 2009-11-09 2011-05-12 International Business Machines Corporation Server Access Processing System
US9106591B2 (en) 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers
US8433867B2 (en) * 2010-01-09 2013-04-30 International Business Machines Corporation Using the change-recording feature for point-in-time-copy technology to perform more effective backups
US8548944B2 (en) 2010-07-15 2013-10-01 Delphix Corp. De-duplication based backup of file systems
GB2483081A (en) * 2010-08-25 2012-02-29 Sony Corp America Tamper resistance in media processing using an obfuscated buffer handle
US8707003B1 (en) 2010-09-29 2014-04-22 Emc Corporation Rate control for asynchronous data replication
US8468174B1 (en) 2010-11-30 2013-06-18 Jedidiah Yueh Interfacing with a virtual database system
US8468169B2 (en) * 2010-12-01 2013-06-18 Microsoft Corporation Hierarchical software locking
US8600943B1 (en) 2010-12-31 2013-12-03 Emc Corporation Porting replication relationships
US9110693B1 (en) 2011-02-17 2015-08-18 Emc Corporation VM mobility over distance
US8843714B1 (en) 2011-03-30 2014-09-23 Emc Corporation Write pacing simulation tool
US8751739B1 (en) 2011-03-31 2014-06-10 Emc Corporation Data device spares
JP5765123B2 (ja) * 2011-08-01 2015-08-19 富士通株式会社 通信装置、通信方法、通信プログラム及び通信システム
US9229758B2 (en) 2011-10-28 2016-01-05 International Business Machines Corporation Passive monitoring of virtual systems using extensible indexing
US9128901B1 (en) 2011-12-30 2015-09-08 Emc Corporation Continuous protection of data and storage management configuration
WO2013127458A1 (de) * 2012-03-01 2013-09-06 Siemens Aktiengesellschaft Rfid-transponder mit mehreren speicherbereichen
JP5938968B2 (ja) * 2012-03-19 2016-06-22 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US8788461B2 (en) 2012-10-04 2014-07-22 Delphix Corp. Creating validated database snapshots for provisioning virtual databases
US10346369B2 (en) 2012-10-11 2019-07-09 Delphix Corp. Retrieving point-in-time copies of a source database for creating virtual databases
CN103064761B (zh) * 2012-12-24 2016-12-28 华为技术有限公司 一种数据同步方法、设备和系统
US9015121B1 (en) 2013-01-15 2015-04-21 Emc Corporation Unified virtual machine and data storage snapshots
US9973215B1 (en) 2013-01-28 2018-05-15 EMC IP Holding Company LLC Controlled multipath data packet delivery with forward error correction
US9002798B1 (en) * 2013-02-11 2015-04-07 Symantec Corporation Systems and methods for remedying corrupt backup images of host devices
US8996460B1 (en) * 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
US9424544B2 (en) * 2013-06-05 2016-08-23 International Business Machines Corporation Archival management of business processes in a cloud environment
US9304885B2 (en) * 2013-06-18 2016-04-05 International Business Machines Corporation Passive monitoring of virtual systems using agent-less, near-real-time indexing
US10108685B2 (en) 2013-07-09 2018-10-23 Delphix Corp. Remote provisioning of virtual databases
JP6050917B2 (ja) 2013-07-09 2016-12-21 デルフィクス コーポレーション 仮想データベースの巻き戻し
US9436556B2 (en) 2013-07-09 2016-09-06 Delphix Corp. Customizable storage system for virtual databases
US9218139B2 (en) 2013-08-16 2015-12-22 International Business Machines Corporation Minimally disruptive virtual machine snapshots
US10013701B2 (en) * 2013-10-09 2018-07-03 Selligent, Inc. System and method for managing message campaign data
US9665307B1 (en) * 2013-12-19 2017-05-30 EMC IP Holding Company LLC Incremental continuous data protection
US9645766B1 (en) 2014-03-28 2017-05-09 EMC IP Holding Company LLC Tape emulation alternate data path
US10530837B2 (en) 2014-04-10 2020-01-07 International Business Machines Corporation Always-on monitoring in the cloud
US10037204B2 (en) 2014-04-22 2018-07-31 Delphix Corp. Version control of applications
US10437783B1 (en) * 2014-09-25 2019-10-08 EMC IP Holding Company LLC Recover storage array using remote deduplication device
US9823973B1 (en) 2014-12-22 2017-11-21 EMC IP Holding Company LLC Creating consistent snapshots in a virtualized environment
US9600193B2 (en) 2015-02-04 2017-03-21 Delphix Corporation Replicating snapshots from a source storage system to a target storage system
US10083196B2 (en) 2015-02-04 2018-09-25 Delphix Corporation Creating secure virtual databases storing masked data
US9990366B2 (en) 2015-03-13 2018-06-05 Delphix Corporation Virtual partitions in virtual databases
CN105207811B (zh) * 2015-08-28 2021-08-13 青岛海尔智能家电科技有限公司 一种替换非AllJoyn设备的方法及装置
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
US10635542B1 (en) 2017-04-25 2020-04-28 EMC IP Holding Company LLC Support for prompt creation of target-less snapshots on a target logical device that has been linked to a target-less snapshot of a source logical device
US10579481B1 (en) 2018-01-31 2020-03-03 EMC IP Holding Company LLC Restoring data from a storage device to a cloud
US10853389B2 (en) 2018-05-02 2020-12-01 EMC IP Holding Company LLC Efficient snapshot activation
CN109240602B (zh) * 2018-08-06 2021-01-15 联想(北京)有限公司 数据存取方法
US10853208B2 (en) 2018-12-11 2020-12-01 EMC IP Holding Company LLC Transferring a writable data set to a cloud service that is separate from the writable data set and terminate a snapshot after transfer
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
US11100008B2 (en) 2019-11-01 2021-08-24 EMC IP Holding Company LLC Efficient memory usage for snapshots
US11347641B2 (en) 2019-11-01 2022-05-31 EMC IP Holding Company LLC Efficient memory usage for snapshots based on past memory usage
US11340795B2 (en) 2020-05-28 2022-05-24 EMC IP Holding Company LLC Snapshot metadata management
US11188425B1 (en) 2020-05-28 2021-11-30 EMC IP Holding Company LLC Snapshot metadata deduplication
US11481138B2 (en) 2020-09-30 2022-10-25 EMC IP Holding Company LLC Creating indentical snapshots
US11748327B2 (en) * 2021-01-29 2023-09-05 Snowflake Inc. Streams using persistent tables
US11755230B2 (en) 2021-04-22 2023-09-12 EMC IP Holding Company LLC Asynchronous remote replication of snapshots
US11513900B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Remote replication of snapshots taken while replication was inactive
US11893260B2 (en) 2021-04-22 2024-02-06 EMC IP Holding Company LLC Snapshot-based remote replication
US11709614B2 (en) 2021-07-23 2023-07-25 EMC IP Holding Company LLC Reducing write delays while taking snapshots
US20230098735A1 (en) * 2021-09-24 2023-03-30 Lemon Inc. Collaborative advertising mechanism

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1202673A (zh) * 1997-06-17 1998-12-23 富士通株式会社 卡型存储媒体
US5915264A (en) * 1997-04-18 1999-06-22 Storage Technology Corporation System for providing write notification during data set copy
US6076148A (en) * 1997-12-26 2000-06-13 Emc Corporation Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information stored on mass storage subsystem

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6467680A (en) * 1987-09-09 1989-03-14 Hitachi Ltd Vector processor
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5206939A (en) 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JP2601586B2 (ja) * 1991-10-15 1997-04-16 富士通株式会社 配置要素の配置配線方法
EP0556551B1 (de) * 1992-02-21 1996-10-23 J.M. Voith GmbH Auftragwerk zum Auftragen von Streichfarbe auf eine Papierbahn
US5241670A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated backup copy ordering in a time zero backup copy session
US5381539A (en) 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
DK0702815T3 (da) * 1993-06-03 2000-12-18 Network Appliance Inc Opsætning af et filsystem til skrivning på et hvilket som helst sted
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5689706A (en) * 1993-06-18 1997-11-18 Lucent Technologies Inc. Distributed systems with replicated files
US5649152A (en) * 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
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
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5857208A (en) * 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US5881311A (en) * 1996-06-05 1999-03-09 Fastor Technologies, Inc. Data storage subsystem with block based data management
US5778394A (en) 1996-12-23 1998-07-07 Emc Corporation Space reclamation system and method for use in connection with tape logging system
US6038639A (en) * 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
JP4128641B2 (ja) 1997-10-13 2008-07-30 株式会社東芝 データ退避方法
US6192444B1 (en) 1998-01-05 2001-02-20 International Business Machines Corporation Method and system for providing additional addressable functional space on a disk for use with a virtual data storage subsystem
US6212531B1 (en) * 1998-01-13 2001-04-03 International Business Machines Corporation Method for implementing point-in-time copy using a snapshot function
US6408369B1 (en) * 1998-03-12 2002-06-18 Emc Corporation Internal copy for a storage controller
US6631477B1 (en) * 1998-03-13 2003-10-07 Emc Corporation Host system for mass storage business continuance volumes
US6105039A (en) * 1998-06-23 2000-08-15 Microsoft Corporation Generation and validation of reference handles
JP3618552B2 (ja) * 1998-06-30 2005-02-09 富士通株式会社 記憶装置
US6226759B1 (en) * 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6920537B2 (en) * 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6529944B1 (en) * 1999-01-06 2003-03-04 Emc Corporation Host system for remote control of mass storage volumes using cascading commands
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6363385B1 (en) 1999-06-29 2002-03-26 Emc Corporation Method and apparatus for making independent data copies in a data processing system
US6574709B1 (en) * 1999-09-30 2003-06-03 International Business Machine Corporation System, apparatus, and method providing cache data mirroring to a data storage system
US6772302B1 (en) * 1999-11-12 2004-08-03 International Business Machines Corporation Virtual copy method for data spanning storage boundaries
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6549992B1 (en) * 1999-12-02 2003-04-15 Emc Corporation Computer data storage backup with tape overflow control of disk caching of backup data stream
US6460054B1 (en) * 1999-12-16 2002-10-01 Adaptec, Inc. System and method for data storage archive bit update after snapshot backup
US6446176B1 (en) * 2000-03-09 2002-09-03 Storage Technology Corporation Method and system for transferring data between primary storage and secondary storage using a bridge volume and an internal snapshot copy of the data being transferred
US6779094B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
US6441767B1 (en) * 2000-11-29 2002-08-27 Raytheon Company Method and system for adjusting a threshold control in an analog-to-digital converter
US20020174296A1 (en) * 2001-01-29 2002-11-21 Ulrich Thomas R. Disk replacement via hot swapping with variable parity
US7058788B2 (en) * 2001-02-23 2006-06-06 Falconstor Software, Inc. Dynamic allocation of computer memory
US6715050B2 (en) * 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US7107430B2 (en) * 2001-06-19 2006-09-12 Massachusetts Institute Of Technology Mechanism to reduce the cost of forwarding pointer aliasing
US6877109B2 (en) * 2001-11-19 2005-04-05 Lsi Logic Corporation Method for the acceleration and simplification of file system logging techniques using storage device snapshots
US7072915B2 (en) * 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
US7085785B2 (en) * 2002-02-15 2006-08-01 International Business Machines Corporation Writable file system snapshot with ditto address feature
US7010553B2 (en) * 2002-03-19 2006-03-07 Network Appliance, Inc. System and method for redirecting access to a remote mirrored snapshot
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
US6857057B2 (en) * 2002-10-03 2005-02-15 Hewlett-Packard Development Company, L.P. Virtual storage systems and virtual storage system operational methods
US6898685B2 (en) * 2003-03-25 2005-05-24 Emc Corporation Ordering data writes from a local storage device to a remote storage device
US7054883B2 (en) * 2003-12-01 2006-05-30 Emc Corporation Virtual ordered writes for multiple storage devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915264A (en) * 1997-04-18 1999-06-22 Storage Technology Corporation System for providing write notification during data set copy
CN1202673A (zh) * 1997-06-17 1998-12-23 富士通株式会社 卡型存储媒体
US6076148A (en) * 1997-12-26 2000-06-13 Emc Corporation Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information stored on mass storage subsystem

Also Published As

Publication number Publication date
US7266572B2 (en) 2007-09-04
EP1565809A2 (en) 2005-08-24
CN1820243A (zh) 2006-08-16
US7340489B2 (en) 2008-03-04
US20030196056A1 (en) 2003-10-16
US20030195887A1 (en) 2003-10-16
US20030208463A1 (en) 2003-11-06
US20030208462A1 (en) 2003-11-06
US7340461B2 (en) 2008-03-04
CN100354813C (zh) 2007-12-12
US8032492B2 (en) 2011-10-04
US7249130B2 (en) 2007-07-24
WO2003088045A2 (en) 2003-10-23
CN1788249A (zh) 2006-06-14
US20080109632A1 (en) 2008-05-08
JP2005532611A (ja) 2005-10-27
WO2003088045A3 (en) 2005-06-30
US20030195886A1 (en) 2003-10-16
US20030195864A1 (en) 2003-10-16

Similar Documents

Publication Publication Date Title
CN100380304C (zh) 虚拟存储装置
US7376651B2 (en) Virtual storage device that uses volatile memory
EP1111509B1 (en) Apparatus for enabling independent access to replicated data
US9740572B1 (en) Replication of xcopy command
US6202071B1 (en) Method and system for improved database disaster recovery
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
US6557089B1 (en) Backup by ID-suppressed instant virtual copy then physical backup copy with ID reintroduced
US7543181B2 (en) Recovery from failures within data processing systems
US7577788B2 (en) Disk array apparatus and disk array apparatus control method
US7428657B2 (en) Method for rolling back from snapshot with log
US7734580B2 (en) Readable physical storage replica and standby database system
US7096331B1 (en) System and method for managing data associated with copying and replication procedures in a data storage environment
US7725672B1 (en) System and method for managing data associated with copying and recovery procedures in a data storage environment
US7702670B1 (en) System and method for tracking changes associated with incremental copying
US20050262170A1 (en) Real-time apply mechanism in standby database environments
JP2004252686A (ja) 情報処理システム
CN101331458A (zh) 连续备份
JP2006004147A (ja) ディザスタリカバリシステム、プログラム及びデータベースのリカバリ方法
JP2003524255A (ja) インターネット基盤の遠隔データ及びファイル復旧システム及びその方法
US7133985B1 (en) System and method for managing data associated with copying and replication procedures in a data storage environment
US7194675B2 (en) Backup method, backup system, disk controller and backup program
US7428558B2 (en) Persistent restore of virtual devices
JP2006503372A (ja) システムオブジェクトをジャーナリングする方法、システム及びソフトウェア
JP2001344137A (ja) 情報レプリケーション機能を有する計算機及び同計算機をコピー先計算機とする情報レプリケーションシステム

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
TR01 Transfer of patent right

Effective date of registration: 20190904

Address after: Massachusetts

Patentee after: EMC Corp.

Address before: Massachusetts, USA

Patentee before: EMC Corp.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20080409

CX01 Expiry of patent term