US20180341694A1 - Coordination of Point-in-Time Copy in Asynchronous Mirror Environment During Consistency Group Formation - Google Patents
Coordination of Point-in-Time Copy in Asynchronous Mirror Environment During Consistency Group Formation Download PDFInfo
- Publication number
- US20180341694A1 US20180341694A1 US15/603,736 US201715603736A US2018341694A1 US 20180341694 A1 US20180341694 A1 US 20180341694A1 US 201715603736 A US201715603736 A US 201715603736A US 2018341694 A1 US2018341694 A1 US 2018341694A1
- Authority
- US
- United States
- Prior art keywords
- point
- time
- establish
- data
- copying process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015572 biosynthetic process Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000008569 process Effects 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G06F17/30578—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Definitions
- the present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to a method, system and computer-usable medium for improved point-in-time copying of data within an asynchronous data mirroring environment.
- Mirroring is one form of disaster recovery commonly used in network storage systems.
- data written to a primary storage volume is also written to a secondary storage volume.
- the volumes may be logical storage volumes of the same or different storage devices, such as hard disk drives.
- synchronous mirroring data written to the primary storage volume is simultaneously written to the secondary storage volume. The data is not considered as having been written to the primary storage volume unless it has also been written to the secondary storage volume.
- Asynchronous mirroring permits the secondary storage volume to be located at a significant distance away from the primary storage volume, without incurring the performance penalty that results with synchronous mirroring when the volumes are located at a significant distance away from each other.
- a point-in-time copy can also be made by first making a logical copy of the data stored in the source volume. The resulting logical copy can then be copied to the target volume at a later time, which effectively defers the physical copying of the source data. This logical copy operation is performed to minimize the time during which the target and source volumes are inaccessible.
- An example of such a point-in-time copying operation is FlashCopy®, provided by International Business Machines (IBM), which makes it possible to create, nearly instantaneously, point-in-Time copies of entire logical volumes or data sets.
- a method, system and computer-usable medium are disclosed for improved point-in-time copying of data within an asynchronous data mirroring environment comprising: receiving a request to initiate an asynchronous data mirroring operation associated with a first point-in-time copying process; processing a first set of establish data to generate a point-in-time establish reservation, the first set of establish data associated with the first point-in-time copying process establish; using the point-in-time establish reservation to generate a second set of establish data if the second point-in-time copying process can be performed; using the second set of establish data to initiate a second point-in-time copying process; and, tracking establish operations in progress between the first point-in-time copying process and the second point-in-time copying process.
- FIG. 1 shows an exemplary client computer in which the present invention may be implemented
- FIG. 2 is a simplified block diagram of a system for improved point-in-time copying of data within an asynchronous data mirroring environment
- FIG. 3 is a generalized flowchart of improved point-in-time copying operations performed within an asynchronous data mirroring environment.
- FIGS. 4A and 4B are generalized flowcharts of a point-in-time reservation based copying operation.
- FIGS. 5A and 5B are generalized flowcharts of a point-in-time non-reservation based operation.
- a method, system and computer-usable medium are disclosed for improved point-in-time copying of data within an asynchronous data mirroring environment.
- the present invention may be embodied as a method, system, or computer program product. Accordingly, embodiments of the invention may be implemented entirely in hardware, entirely in software (including firmware, resident software, micro-code, etc.) or in an embodiment combining software and hardware. These various embodiments may all generally be referred to herein as a “circuit,” “module,” or “system.”
- the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
- the computer-usable or computer-readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, or a magnetic storage device.
- a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- Embodiments of the invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- FIG. 1 is a block diagram of an exemplary client computer 102 in which the present invention may be utilized.
- Client computer 102 includes a processor unit 104 that is coupled to a system bus 106 .
- a video adapter 108 which controls a display 110 , is also coupled to system bus 106 .
- System bus 106 is coupled via a bus bridge 112 to an Input/Output (I/O) bus 114 .
- An I/O interface 116 is coupled to I/O bus 114 .
- I/O Input/Output
- the I/O interface 116 affords communication with various I/O devices, including a keyboard 118 , a mouse 120 , a Compact Disk-Read Only Memory (CD-ROM) drive 122 , a floppy disk drive 124 , and a flash drive memory 126 .
- the format of the ports connected to I/O interface 116 may be any known to those skilled in the art of computer architecture, including but not limited to Universal Serial Bus (USB) ports.
- USB Universal Serial Bus
- Client computer 102 is able to communicate with a service provider server 152 via a network 128 using a network interface 130 , which is coupled to system bus 106 .
- Network 128 may be an external network such as the Internet, or an internal network such as an Ethernet Network or a Virtual Private Network (VPN).
- client computer 102 is able to use the present invention to access service provider server 152 .
- VPN Virtual Private Network
- a hard drive interface 132 is also coupled to system bus 106 .
- Hard drive interface 132 interfaces with a hard drive 134 .
- hard drive 134 populates a system memory 136 , which is also coupled to system bus 106 .
- Data that populates system memory 136 includes the client computer's 102 operating system (OS) 138 and software programs 144 .
- OS operating system
- OS 138 includes a shell 140 for providing transparent user access to resources such as software programs 144 .
- shell 140 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell 140 executes commands that are entered into a command line user interface or from a file.
- shell 140 (as it is called in UNIX®), also called a command processor in Windows®, is generally the highest level of the operating system software hierarchy and serves as a command interpreter.
- the shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel 142 ) for processing.
- shell 140 generally is a text-based, line-oriented user interface, the present invention can also support other user interface modes, such as graphical, voice, gestural, etc.
- OS 138 also includes kernel 142 , which includes lower levels of functionality for OS 138 , including essential services required by other parts of OS 138 and software programs 144 , including memory management, process and task management, disk management, and mouse and keyboard management.
- Software programs 144 may include a browser 146 and email client 148 .
- Browser 146 includes program modules and instructions enabling a World Wide Web (WWW) client (i.e., client computer 102 ) to send and receive network messages to the Internet using HyperText Transfer Protocol (HTTP) messaging, thus enabling communication with service provider server 152 .
- WWW World Wide Web
- HTTP HyperText Transfer Protocol
- software programs 144 may also include a point-in-time data mirroring system 150 .
- the point-in-time data mirroring system 150 includes code for implementing the processes described hereinbelow.
- client computer 102 is able to download the point-in-time data mirroring system 150 from a service provider server 152 .
- client computer 102 may include alternate memory storage devices such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the spirit, scope and intent of the present invention.
- FIG. 2 is a block diagram of an environment 200 for improved point-in-time copying of data within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention.
- the point-in-time data mirroring environment 200 includes a primary host system 202 , a primary storage controller (or storage controller device) 204 , a first primary volume 206 , and a second primary volume 208 .
- the primary host system 202 , the primary storage controller 204 , and the first and second primary volumes 206 and 208 may be located in a local manner in relation to one another. For example, all these components may be located in the same room or the same building.
- the environment 200 also includes a secondary host system 212 , a secondary storage controller 214 , a first secondary volume 216 , and a second secondary volume 218 .
- the secondary host system 212 , the secondary controller 214 , and the first and second secondary volumes 216 and 218 may also be located in a local manner in relation to one another. However, in various embodiments, the secondary host system 212 , the secondary controller 214 , and the first and second secondary volumes 216 and 218 may be located remote to the primary host system 202 , the primary storage controller 204 , and the first and second primary volumes 206 and 208 .
- the former components may be located in a different building, a different city, a different state, or even in a different country than the latter components.
- the point-in-time mirroring system 150 may execute on some or all of the primary host system 202 , primary storage controller 204 , the secondary host system 212 and the secondary storage controller 214 .
- a solid line between two components indicates that the components may directly communicate with one another, such as over a network or a direct cable connection, without having to pass communication through any other component.
- a dashed line indicates an operation performed in relation to the latter component with reference to the former component.
- the terms “primary” and “secondary” are primarily used herein to distinguish the components on the left-hand side of FIG. 2 from the components on the right-hand side of FIG. 2 .
- the secondary components on the right-hand side of FIG. 2 may be considered as subordinate to the primary components on the left-hand side of FIG. 2 .
- FIG. 2 As depicted in FIG.
- the primary components may also be referred to as the local components and the secondary components may also be referred to as the remote components.
- the point-in-time data mirroring system 150 includes a command buffer 240 .
- the point-in-time data mirroring system 150 includes a relations bitmap 242 .
- the primary host system 202 includes one or more computing devices, such as server computer devices, which process information by writing data to, updating data on, and reading data from the first primary volume 206 .
- the primary host system 202 interacts with the primary storage controller 204 , which in turn interacts with the first and second primary volumes 206 and 208 .
- the first and second primary volumes 206 and 208 may be logical storage volumes on the same or different storage devices, such as hard disk drives, arrays of hard disk drives, and so forth.
- the first primary volume 206 is periodically point-in-time copied 220 to the second primary volume 208 , resulting in a point-in-time copy of the first primary volume 206 being made to the second primary volume 208 .
- the primary storage controller 204 may interact with the secondary host system 212 in various ways.
- the primary storage controller 204 may store data in a side file 210 , which is then retrieved by the secondary host system 212 .
- the side file 210 refers to a logical data file that is stored in various places, including a volume of a storage device, in the cache of the primary storage controller 204 , a non-volatile storage device, and so forth.
- the primary storage controller 204 may directly communicate with the secondary host system 212 without using the side file 210 . Additional details of the use of the side file 210 are provided in more detail hereinbelow.
- the secondary host system 212 may also include one or more computing devices described in greater detail herein.
- the secondary host system 212 is at least in part responsible for managing an asynchronous mirroring 224 relationship between the first primary volume 206 and the first secondary volume 216 such that the first primary volume 206 is asynchronously mirrored 224 to the first secondary volume 216 .
- the secondary host system 212 is at least in part responsible for managing an asynchronous mirroring relationship between the second primary volume 208 and the second secondary volume 218 such that the second primary volume 208 is asynchronously mirrored 225 to the second secondary volume 218 .
- the primary host system 202 when the primary host system 202 performs a write or update operation, the primary host system 202 sends the operation to the primary storage controller 204 .
- the primary storage controller 204 performs the operation in relation to the first primary volume 206 and stores the operation in the side file 210 .
- the primary storage controller 204 then signals back to the primary host system 202 that the operation has been completed.
- the secondary host system 212 retrieves the operation from the side file 210 and interacts with the secondary storage controller 214 to cause the operation to be performed in relation to the first secondary volume 216 .
- the current contents of the first secondary volume 216 mirror the past contents of the first primary volume 206 .
- the secondary host system 212 interacts with the secondary storage controller 204 , which in turn interacts with the first and second secondary volumes 216 and 218 .
- the first and second secondary volumes 216 and 218 may be logical storage volumes on the same or different storage devices.
- the storage devices implementing the first and second secondary volumes 216 and 218 may be hard disk drives, arrays of hard disk drives, and so forth, and are not the same storage devices implementing the first and second primary volumes 206 and 208 .
- the first secondary volume 216 may periodically be point-in-time copied to the second secondary volume 218 .
- it may be determined that the configuration and state of the volumes 206 , 208 , 216 , and 218 permit point-in-time copying 220 of the first primary volume 206 to the second primary volume 208 and point-in-time copying 222 of the first secondary volume 216 to the second secondary volume 218 , as is described in greater detail herein.
- the primary storage controller 204 initiates point-in-time copying 220 from the first primary volume 206 to the second primary volume 208 , reports back to the primary host system 202 that point-in-time copying 220 has succeeded, and writes a point-in-time copy operation to the side file 210 .
- the secondary host system 212 reads the point-in-time copy operation from the side file 210 at some later point in time and instructs the secondary storage controller 214 to generate a point-in-time copy of the first secondary volume 216 on the second secondary volume 218 .
- the secondary storage controller 214 initiates point-in-time copying 222 from the first secondary volume 216 to the second secondary volume 218 .
- the current contents of the second secondary volume 218 mirror the past contents of the second primary volume 208 .
- the first primary volume 206 is point-in-time copied 220 to the second primary volume 208 .
- the first primary volume 206 is asynchronously mirrored 224 to the first secondary volume 216 .
- the first secondary volume 216 is point-in-time copied 222 to the second secondary volume 218 .
- a point-in-time copy whenever a point-in-time copy is established between the first primary volume 206 and the second primary volume 208 , a second point-in-time copy must be established at the same logical time in order to maintain consistency of the data stored in the second secondary volume 218 .
- a point-in-time copy “establish” broadly refers to any operation or process related to establishing a logical point-in-time relationship between a source volume (e.g., the first primary volume 206 ) and a target volume (e.g., the first secondary volume 216 ).
- XRC Extended Remote Copy®
- IBM International Business Machines
- FlashCopy i.e., a point-in-time copy
- the resources needed to support the secondary point-in-time copying 222 establish may not be available or present.
- the number of supported point-in-time copying instances may be exceeded.
- the establishment of a point-in-time copy may not be allowed, as doing so would violate a configuration restriction such as causing a cascading configuration.
- this issue is addressed by ensuring that the secondary point-in-time copying 222 establish succeeds prior to the primary point-in-time copying 220 establish is allowed return success.
- the primary storage controller 204 and the secondary storage controller 214 are communicatively coupled 230 to communicate the success of the secondary point-in-time copying 222 establish.
- the primary storage controller 204 and the secondary storage controller 214 are communicatively coupled by a Fiber Channel link familiar to those of skill in the art.
- the primary storage controller 204 and the secondary storage controller 214 are communicatively coupled through the secondary host system 212 over an existing Fiber Channel link through the implementation of a message/response protocol initiated by the primary storage controller 204 .
- the primary storage controller 204 and the secondary storage controller 214 are communicatively coupled through the implementation of a TCP/IP communication session. In these and other embodiments, the primary storage controller 204 and the secondary storage controller 214 are communicatively coupled through a different logical communication path than the one used by asynchronous mirror operations.
- a reservation for resources to be used in the secondary point-in-time copy 222 is synchronously established with the primary point-in-time copying 220 establish.
- the reservation is performed over a Peer-To-Peer Remote Copy (PPRC) link familiar to those of skill in the art.
- PPRC Peer-To-Peer Remote Copy
- the checking of the point-in-time copying bitmaps, which determines where the data is during the secondary point-in-time copying 222 when there is a data write to the first secondary volume 216 is delayed until the new establish check-in operation uses the reservation.
- the reservation effectively creates a point-in-time copying relationship with the first secondary volume 216 , but does not start any read or write processing until sometime later when the secondary point-in-time copying 222 process begins.
- the point-in-time copying 222 establish on the first secondary volume 216 is initiated, it then utilizes the reservation to begin the secondary point-in-time copying 222 to the second secondary volume 218 .
- the point-in-time copying reservation 230 establish on the first secondary volume 216 fail, then the point-in-time copying 220 establish on the first primary volume 206 will likewise be failed.
- the establish reservation receives the needed data structures and subsequently ensures there are no problems with the reservation.
- the reservation would prevent another point-in-time copy establish from exhausting resources or causing a cascading configuration.
- the point-in-time copying instance has an improved chance of success.
- the point-in-time copy establish reservation operation and the point-in-time copy establish check-in operation is coordinated through the use of a point-in-time copy sequence number.
- the point-in-time copy sequence number is generated by the primary storage controller 204 and is provided via the PPRC link. As a result, the point-in-time copy sequence number associated with an establish check in operation allows the primary storage controller 204 to know which reservation to convert to a normal point-in-time copy instance.
- the side file 210 may be lost due to a session suspension.
- the point-in-time copy establish for a check-in operation may not occur.
- these point-in-time copying relationships need to be cancelled as they consume resources on the secondary storage controller 214 , resulting in the need for a way to internally cancel a reservation.
- this need is addressed by estimating the time the check-in operation should occur in the future, based upon the amount of time the asynchronous mirroring 224 process is running behind the primary point-in-time copying 220 process.
- the asynchronous mirroring 224 operation will periodically tell the secondary storage controller 214 how long it is running behind, such that the secondary storage controller 214 can relate a cancellation time for a point-in-time copy establish reservation.
- an algorithm is based upon the point-in-time copying sequence number. In this embodiment, the sequence number is always increasing. Therefore, any point-in-time establish reservations with an earlier sequence number may be cancelled.
- an asynchronous data mirroring operation (e.g., a Global Mirror operation) has two phases: a draining phase and an idle phase.
- a draining phase of the asynchronous data mirroring operation a consistency group is in progress/consistency group in progress (CGIP).
- the idle phase corresponds to when the volumes in a session are being copied via the asynchronous data mirroring operation.
- the idle phase corresponds to when a global copy operation is functioning properly.
- the volumes in the session have out-of-sync (OOS) information allocated that is recording new changes and also being used to determine which tracks to synchronize the secondary.
- OOS out-of-sync
- the last consistency group is protected by the asynchronous point-in-time copy operation point-in-time copy at the secondary.
- the OOS information may be stored within an OOS bitmap.
- the volumes in the session When functioning in the asynchronous data mirroring operation draining phase, the volumes in the session maintain Change Recording (CR) information and OOS information.
- the OOS information includes data for the current consistency group (i.e., the consistency group corresponding to the presently occurring point-in-time copy) that needs to be copied to the secondary.
- the CR information contains any new updates that should be considered the start of the next consistency group (i.e., the consistency group corresponding to a next subsequently occurring point-in-time copy). Data in the OOS information should be protected from being overwritten while the asynchronous data mirroring operation is operating in the draining phase, otherwise the consistency group could be compromised.
- Certain aspects of the present disclosure include an appreciation that a challenge in supporting a point-in-time copy operation onto an asynchronous data mirroring operation while the asynchronous data mirroring operation is functioning in the draining phase, relates to protecting OOS/consistent data on the local components. Certain aspects of the present disclosure include an appreciation that a challenge in supporting a point-in-time copy operation onto an asynchronous data mirroring operation while the asynchronous point-in-time copy operation is functioning in the draining phase (in addition to protecting OOS/consistent data on the local), is the timing associated with a remote establish.
- the point-in-time copy establish operation cannot be committed at the remote volumes if the asynchronous data mirroring operation is in the process of draining a consistency group (CG). Any point-in-time copy command that arrives while the asynchronous data mirroring operation is in the draining phase should be considered part of a subsequent consistency group. If the asynchronous point-in-time copy information from the local components were to be committed at the remote components, the asynchronous data mirroring copy information would automatically become part of the current consistency group when the drain process completes and the consistency group was hardened (i.e., not allowing any reads or writes to the extent range so the point-in-time copy can be performed).
- point-in-time copy reservations can be used.
- the point-in-time copy reservations are checked in when the asynchronous data mirroring operation finishes the drain process (whether the drain process completes successfully or fails).
- the point-in-time establish reservation is synchronously established with the first point-in-time copying process establish, such as over a Peer-To-Peer Remote Copy (PPRC) link.
- PPRC Peer-To-Peer Remote Copy
- FIG. 3 is a generalized flowchart of improved point-in-time copying operations 300 performed within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention.
- point-in-time copying and asynchronous data mirroring operations 300 are begun in step 302 , followed by a primary storage controller generating a first establish for a first point-in-time copying operation in step 304 .
- the primary storage controller submits a request in step 306 to initiate an asynchronous data mirroring operation associated with the first point-in-time copying process.
- a point-in-time establish reservation described in greater detail herein, is generated in step 308 for a second point-in-time copying process.
- step 310 determines whether it is possible for the second point-in-time copying process to be successfully performed. If not, then the point-in-time establish reservation is cancelled in step 312 and the first point-in-time copy establish is failed in step 314 .
- a determination is then made in step 320 whether to end point-in-time copying and asynchronous data mirroring operations. If not, then the process is continued, proceeding with step 304 . Otherwise, point-in-time copying and asynchronous data mirroring operations are ended in step 322 .
- step 310 determines whether it is possible for the second point-in-time copying process to be successfully performed. If it is determined in step 310 that it is possible for the second point-in-time copying process to be successfully performed, then the point-in-time establish reservation is used in step 316 to generate a check-in for the second point-in-time copying process. In turn, the check-in is then used in step 318 to perform the second point-in-time copying process. The process is then continued, proceeding with step 320 .
- FIG. 4 is a generalized flowchart of a point-in-time reservation based copy operation 400 performed within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention. More specifically, the point-in-time reservation based operation 400 begins at step 410 with a point-in-time establish request being issued to the local controller (e.g., primary storage controller 204 ). Next, at step 412 , the point-in-time data mirroring system 150 stops peer-to-peer remote copy state transitions on the local source (e.g., the first primary volume 206 ) and the local target (e.g., the second primary volume 208 ).
- the local controller e.g., primary storage controller 204
- the point-in-time data mirroring system 150 stops peer-to-peer remote copy state transitions on the local source (e.g., the first primary volume 206 ) and the local target (e.g., the second primary volume 208 ).
- the point-in-time data mirroring system 150 creates a local source relationship between the local first primary volume and the local second primary volume. More specifically, the point-in-time data mirroring system 150 quiesces the local source extents (e.g., the local volumes being copied to the second primary volume) at step 420 . Next at step 422 the point-in-time mirroring system 150 creates a local source relationship. Next, at step 430 , the point-in-time data mirroring system 150 quiesces the local target extents and creates a local target relationship at step 432 .
- the local source extents e.g., the local volumes being copied to the second primary volume
- the point-in-time data mirroring system 150 then sends a point-in-time copy reservation to the remote controller (e.g., the secondary storage controller 214 ) at step 440 and determines whether the point-in-time reservation was successful at step 442 . If the point-in-time reservation was successful, then the point-in-time data mirroring system 150 creates a reservation relationship for the remote target at step 450 and a reservation relationship for the remote source at step 452 . If not successful, then the reservation fails at step 453
- the point-in-time data mirroring system 150 copies the source change recording to the target change recording for the identified extent ranges (e.g., for the volumes to be copied) at step 460 and unquiesces the local source and target extents at step 462 .
- the point-in-time data mirroring system 150 generates an end status message that is provided to the host (e.g., the primary host system 202 ) for the point-in-time copy operation to complete.
- the consistency group finishes the drain phase indicating that the increment is complete (i.e., that the current point-in-time copy operation completed operation).
- the point-in-time data mirroring system 150 sends a point-in-time check-in message to the remote (e.g., to the secondary storage controller 214 ) check-in.
- the remote e.g., to the secondary storage controller 214
- the point-in-time reservation based operation 400 waits for the global mirror operation to complete the “draining” phase before issuing the check-in message to the remote.
- the check-in message then informs the remote that the point-in-time relationship can “roll forward” or start at that point.
- the check-in message defines the “Point-in-time” because the system knows that the data has drained to the remote and thus can be “checked in.”
- a check-in refers to changing the reservation relationship into a “real” flashcopy relationship (i.e., the remote target has a logical copy of the remote source at this instant).
- the point-in-time data mirroring system 150 can set a target bit map. The point-in-time data mirroring system 150 then determines whether the check-in was a success at step 482 .
- the point-in-time data mirroring system 150 rolls the remote target relationship forward at step 484 , sets the remote target bit map (TBM) at step 486 and rolls the source relationship forward at step 488 . While the point of the reservation operation is to ensure a check-in won't fail, there is a chance a failure can happen (i.e., the check-in was not successful), in this case, the point-in-time data mirroring system 150 causes the target PPRC pair 208 , 218 to suspend at step 487 .
- TBM remote target bit map
- step 490 the point-in-time data mirroring system 150 starts the synchronization process at the remote.
- FIG. 5 is a generalized flowchart of a point-in-time non-reservation based copy operation 500 performed within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention. More specifically, the point-in-time non-reservation based operation 500 begins at step 510 with a point-in-time establish request being issued to the local controller (e.g., primary storage controller 204 ). Next, at step 512 , the point-in-time data mirroring system 150 stops peer-to-peer remote copy state transitions on the local source (e.g., the first primary volume 206 ) and the local target (e.g., the second primary volume 208 ).
- the local controller e.g., primary storage controller 204
- the point-in-time data mirroring system 150 stops peer-to-peer remote copy state transitions on the local source (e.g., the first primary volume 206 ) and the local target (e.g., the second primary volume 208 ).
- the point-in-time data mirroring system 150 quiesces local source extents.
- the point-in-time data mirroring system creates a local source relationship (e.g., between the local first primary volume and the local second primary volume).
- the point-in-time data mirroring system 150 quiesces the local target extents.
- the point-in-time data mirroring system 150 then creates a local target relationship at step 522 .
- the point-in-time data mirroring system 150 stops peer-to-peer remote copy synchronization on the local target (e.g., the second primary volume 208 ).
- the point-in-time data mirroring system 150 sends a FlashCopy Capability query (e.g., a 0x47 query) to the secondary storage controller 214 at step 532 . More specifically, a user can issue a command with extent ranges and intent of these extent ranges to be source or target.
- the FlashCopy Capability query returns whether that relationship can be created.
- the point-in-time data mirroring system 150 analyzes the query data. If at step 542 the point-in-time data mirroring system 150 determines that a point-in-time copy operation is permitted and the relations bits are not already set in the Relations BitMap (RBM) 242 , then the point-in-time data mirroring system 150 creates or updates the Relations BitMap 242 for the point-in-time tracks at step 544 .
- the Relations BitMap 242 is a bitmap that is used to track establish operations in progress. More specifically, the Relations BitMap has a bit for every track in a volume. Each set bit in the Relations BitMap represents what tracks are already committed to a future remote flashcopy relationship.
- the point-in-time data mirroring system 150 creates a point-in-time command entry in the point-in-time Command Buffer 240 at step 546 and control returns to the local controller. If at step 542 , the point-in-time data mirroring system 150 determines that a copy is not permitted such as when a point-in-time operation is not permitted or the bits are not already set in the Relations BitMap 242 , then the point-in-time data mirroring system 150 merges the Relations BitMap 242 into the OOS bitmap and clears out the pending FLC commands in the FLC Command Buffer at step 548 and the point-in-time non-reservation copy operation completes operation. More specifically, the system sets the OOS bitmap for volume 208 for the range of tracks that were in the flashcopy relationship. This ensures that all the correct data is copied to the secondary. The RBM is on the remote and is not be used when step 542 fails.
- the point-in-time data mirroring system 150 copies the source change recording to the target change recording for the extent ranges at step 560 .
- the extent ranges are used in the local source and target relationship.
- the point-in-time data mirroring system 150 generates and end status message that is provided to the secondary host 212 for the point-in-time complete.
- the consistency group finishes the drain phase indicating that the global mirror has completed the consistency group.
- the point-in-time data mirroring system 150 then clears the relations bitmap 242 at step 582 .
- step 590 the point-in-time data mirroring system 150 starts the synchronization process at the remote.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to a method, system and computer-usable medium for improved point-in-time copying of data within an asynchronous data mirroring environment.
- The storage of data in large organizations is important, both for reliability of the data and for the ability to recover data in the event of a disaster involving hardware failure. Mirroring is one form of disaster recovery commonly used in network storage systems. In mirroring, data written to a primary storage volume is also written to a secondary storage volume. The volumes may be logical storage volumes of the same or different storage devices, such as hard disk drives. In synchronous mirroring, data written to the primary storage volume is simultaneously written to the secondary storage volume. The data is not considered as having been written to the primary storage volume unless it has also been written to the secondary storage volume.
- By comparison, in asynchronous mirroring, data written to the secondary storage volume is written at some point in time after the data has been written to the primary storage volume. The data is considered as having been written to the primary storage volume even before it has been written to the secondary storage volume. Asynchronous mirroring permits the secondary storage volume to be located at a significant distance away from the primary storage volume, without incurring the performance penalty that results with synchronous mirroring when the volumes are located at a significant distance away from each other.
- One aspect of mirroring is creating a point-in-time copy of data from a source volume to a target volume. A point-in-time copy can also be made by first making a logical copy of the data stored in the source volume. The resulting logical copy can then be copied to the target volume at a later time, which effectively defers the physical copying of the source data. This logical copy operation is performed to minimize the time during which the target and source volumes are inaccessible. An example of such a point-in-time copying operation is FlashCopy®, provided by International Business Machines (IBM), which makes it possible to create, nearly instantaneously, point-in-Time copies of entire logical volumes or data sets.
- However, issues can arise when the target of the point-in-time copy is the primary volume in an asynchronous (e.g., Extended Remote Copy or Global Mirror, both provided by IBM) relationship with a target of the point-in-time copy of a secondary volume.
- A method, system and computer-usable medium are disclosed for improved point-in-time copying of data within an asynchronous data mirroring environment comprising: receiving a request to initiate an asynchronous data mirroring operation associated with a first point-in-time copying process; processing a first set of establish data to generate a point-in-time establish reservation, the first set of establish data associated with the first point-in-time copying process establish; using the point-in-time establish reservation to generate a second set of establish data if the second point-in-time copying process can be performed; using the second set of establish data to initiate a second point-in-time copying process; and, tracking establish operations in progress between the first point-in-time copying process and the second point-in-time copying process.
- The present invention may be better understood, and its numerous objects, features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference number throughout the several figures designates a like or similar element.
-
FIG. 1 shows an exemplary client computer in which the present invention may be implemented; -
FIG. 2 is a simplified block diagram of a system for improved point-in-time copying of data within an asynchronous data mirroring environment; and -
FIG. 3 is a generalized flowchart of improved point-in-time copying operations performed within an asynchronous data mirroring environment. -
FIGS. 4A and 4B , generally referred to asFIG. 4 , are generalized flowcharts of a point-in-time reservation based copying operation. -
FIGS. 5A and 5B , generally referred to asFIG. 5 , are generalized flowcharts of a point-in-time non-reservation based operation. - A method, system and computer-usable medium are disclosed for improved point-in-time copying of data within an asynchronous data mirroring environment. As will be appreciated by one skilled in the art, the present invention may be embodied as a method, system, or computer program product. Accordingly, embodiments of the invention may be implemented entirely in hardware, entirely in software (including firmware, resident software, micro-code, etc.) or in an embodiment combining software and hardware. These various embodiments may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
- Any suitable computer usable or computer readable medium may be utilized. The computer-usable or computer-readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, or a magnetic storage device. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- Embodiments of the invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
-
FIG. 1 is a block diagram of anexemplary client computer 102 in which the present invention may be utilized.Client computer 102 includes aprocessor unit 104 that is coupled to a system bus 106. Avideo adapter 108, which controls adisplay 110, is also coupled to system bus 106. System bus 106 is coupled via abus bridge 112 to an Input/Output (I/O) bus 114. An I/O interface 116 is coupled to I/O bus 114. The I/O interface 116 affords communication with various I/O devices, including akeyboard 118, a mouse 120, a Compact Disk-Read Only Memory (CD-ROM)drive 122, afloppy disk drive 124, and aflash drive memory 126. The format of the ports connected to I/O interface 116 may be any known to those skilled in the art of computer architecture, including but not limited to Universal Serial Bus (USB) ports. -
Client computer 102 is able to communicate with aservice provider server 152 via anetwork 128 using anetwork interface 130, which is coupled to system bus 106.Network 128 may be an external network such as the Internet, or an internal network such as an Ethernet Network or a Virtual Private Network (VPN). Usingnetwork 128,client computer 102 is able to use the present invention to accessservice provider server 152. - A
hard drive interface 132 is also coupled to system bus 106.Hard drive interface 132 interfaces with ahard drive 134. In a preferred embodiment,hard drive 134 populates asystem memory 136, which is also coupled to system bus 106. Data that populatessystem memory 136 includes the client computer's 102 operating system (OS) 138 and software programs 144. -
OS 138 includes ashell 140 for providing transparent user access to resources such as software programs 144. Generally,shell 140 is a program that provides an interpreter and an interface between the user and the operating system. More specifically,shell 140 executes commands that are entered into a command line user interface or from a file. Thus, shell 140 (as it is called in UNIX®), also called a command processor in Windows®, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel 142) for processing. Whileshell 140 generally is a text-based, line-oriented user interface, the present invention can also support other user interface modes, such as graphical, voice, gestural, etc. - As depicted,
OS 138 also includeskernel 142, which includes lower levels of functionality forOS 138, including essential services required by other parts ofOS 138 and software programs 144, including memory management, process and task management, disk management, and mouse and keyboard management. Software programs 144 may include abrowser 146 andemail client 148.Browser 146 includes program modules and instructions enabling a World Wide Web (WWW) client (i.e., client computer 102) to send and receive network messages to the Internet using HyperText Transfer Protocol (HTTP) messaging, thus enabling communication withservice provider server 152. In various embodiments, software programs 144 may also include a point-in-timedata mirroring system 150. In these and other embodiments, the point-in-timedata mirroring system 150 includes code for implementing the processes described hereinbelow. In one embodiment,client computer 102 is able to download the point-in-timedata mirroring system 150 from aservice provider server 152. - The hardware elements depicted in
client computer 102 are not intended to be exhaustive, but rather are representative to highlight components used by the present invention. For instance,client computer 102 may include alternate memory storage devices such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the spirit, scope and intent of the present invention. -
FIG. 2 is a block diagram of anenvironment 200 for improved point-in-time copying of data within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention. In this embodiment, the point-in-timedata mirroring environment 200 includes aprimary host system 202, a primary storage controller (or storage controller device) 204, a firstprimary volume 206, and a secondprimary volume 208. Theprimary host system 202, theprimary storage controller 204, and the first and secondprimary volumes - As shown in
FIG. 2 , theenvironment 200 also includes asecondary host system 212, asecondary storage controller 214, a firstsecondary volume 216, and a secondsecondary volume 218. Thesecondary host system 212, thesecondary controller 214, and the first and secondsecondary volumes secondary host system 212, thesecondary controller 214, and the first and secondsecondary volumes primary host system 202, theprimary storage controller 204, and the first and secondprimary volumes time mirroring system 150 may execute on some or all of theprimary host system 202,primary storage controller 204, thesecondary host system 212 and thesecondary storage controller 214. - As depicted in
FIG. 2 , a solid line between two components indicates that the components may directly communicate with one another, such as over a network or a direct cable connection, without having to pass communication through any other component. A dashed line indicates an operation performed in relation to the latter component with reference to the former component. As likewise depicted inFIG. 2 , the terms “primary” and “secondary” are primarily used herein to distinguish the components on the left-hand side ofFIG. 2 from the components on the right-hand side ofFIG. 2 . In certain embodiments, the secondary components on the right-hand side ofFIG. 2 may be considered as subordinate to the primary components on the left-hand side ofFIG. 2 . As likewise depicted inFIG. 2 , the primary components may also be referred to as the local components and the secondary components may also be referred to as the remote components. In certain embodiments the point-in-timedata mirroring system 150 includes acommand buffer 240. In certain embodiments the point-in-timedata mirroring system 150 includes arelations bitmap 242. - In various embodiments, the
primary host system 202 includes one or more computing devices, such as server computer devices, which process information by writing data to, updating data on, and reading data from the firstprimary volume 206. In these embodiments, theprimary host system 202 interacts with theprimary storage controller 204, which in turn interacts with the first and secondprimary volumes primary volumes primary volume 206 is periodically point-in-time copied 220 to the secondprimary volume 208, resulting in a point-in-time copy of the firstprimary volume 206 being made to the secondprimary volume 208. - In these and other embodiments, the
primary storage controller 204 may interact with thesecondary host system 212 in various ways. For example, in one embodiment, theprimary storage controller 204 may store data in aside file 210, which is then retrieved by thesecondary host system 212. As used herein, theside file 210 refers to a logical data file that is stored in various places, including a volume of a storage device, in the cache of theprimary storage controller 204, a non-volatile storage device, and so forth. In another embodiment, theprimary storage controller 204 may directly communicate with thesecondary host system 212 without using theside file 210. Additional details of the use of theside file 210 are provided in more detail hereinbelow. - In certain embodiments, the
secondary host system 212 may also include one or more computing devices described in greater detail herein. In one embodiment, thesecondary host system 212 is at least in part responsible for managing an asynchronous mirroring 224 relationship between the firstprimary volume 206 and the firstsecondary volume 216 such that the firstprimary volume 206 is asynchronously mirrored 224 to the firstsecondary volume 216. In one embodiment, thesecondary host system 212 is at least in part responsible for managing an asynchronous mirroring relationship between the secondprimary volume 208 and the secondsecondary volume 218 such that the secondprimary volume 208 is asynchronously mirrored 225 to the secondsecondary volume 218. - For example, when the
primary host system 202 performs a write or update operation, theprimary host system 202 sends the operation to theprimary storage controller 204. In turn, theprimary storage controller 204 performs the operation in relation to the firstprimary volume 206 and stores the operation in theside file 210. Theprimary storage controller 204 then signals back to theprimary host system 202 that the operation has been completed. At some later point in time, thesecondary host system 212 retrieves the operation from theside file 210 and interacts with thesecondary storage controller 214 to cause the operation to be performed in relation to the firstsecondary volume 216. As such, the current contents of the firstsecondary volume 216 mirror the past contents of the firstprimary volume 206. - As with the
primary host system 202, theprimary storage controller 204, and the first and secondprimary volumes secondary host system 212 interacts with thesecondary storage controller 204, which in turn interacts with the first and secondsecondary volumes primary volumes secondary volumes secondary volumes primary volumes - In various embodiments, the first
secondary volume 216 may periodically be point-in-time copied to the secondsecondary volume 218. For example, it may be determined that the configuration and state of thevolumes time copying 220 of the firstprimary volume 206 to the secondprimary volume 208 and point-in-time copying 222 of the firstsecondary volume 216 to the secondsecondary volume 218, as is described in greater detail herein. Thereafter, theprimary storage controller 204 initiates point-in-time copying 220 from the firstprimary volume 206 to the secondprimary volume 208, reports back to theprimary host system 202 that point-in-time copying 220 has succeeded, and writes a point-in-time copy operation to theside file 210. - Thereafter, the
secondary host system 212 reads the point-in-time copy operation from theside file 210 at some later point in time and instructs thesecondary storage controller 214 to generate a point-in-time copy of the firstsecondary volume 216 on the secondsecondary volume 218. In response, thesecondary storage controller 214 initiates point-in-time copying 222 from the firstsecondary volume 216 to the secondsecondary volume 218. Once the point-in-time copying 222 has been completed, the current contents of the secondsecondary volume 218 mirror the past contents of the secondprimary volume 208. - Accordingly, three logical data mirroring operations are depicted in
FIG. 2 . First, the firstprimary volume 206 is point-in-time copied 220 to the secondprimary volume 208. Second, the firstprimary volume 206 is asynchronously mirrored 224 to the firstsecondary volume 216. Third, the firstsecondary volume 216 is point-in-time copied 222 to the secondsecondary volume 218. - In various embodiments, whenever a point-in-time copy is established between the first
primary volume 206 and the secondprimary volume 208, a second point-in-time copy must be established at the same logical time in order to maintain consistency of the data stored in the secondsecondary volume 218. As used herein, a point-in-time copy “establish” broadly refers to any operation or process related to establishing a logical point-in-time relationship between a source volume (e.g., the first primary volume 206) and a target volume (e.g., the first secondary volume 216). - Those of skill in the art will be aware that various approaches are known for achieving such point-in-time copy establishes. For example, Extended Remote Copy® (XRC), provided by International Business Machines (IBM), has algorithms to ensure that a FlashCopy (i.e., a point-in-time copy) establish is attempted at the proper time to keep the source and target volumes consistent. However, since the point-in-time copy establish associated with the primary point-in-
time copying 220 process could have been completed at an earlier time, there is no way to cause its failure should the establish associated with the secondary point-in-time copying 222 process fail. - Skilled practitioners of the art will be aware that various reasons may cause the secondary point-in-
time copying 222 to fail. For example, the resources needed to support the secondary point-in-time copying 222 establish may not be available or present. As another example, the number of supported point-in-time copying instances may be exceeded. As yet another example, there may be a problem accessing all of the needed storage control structures. As still another example, the establishment of a point-in-time copy may not be allowed, as doing so would violate a configuration restriction such as causing a cascading configuration. - In various embodiments, this issue is addressed by ensuring that the secondary point-in-
time copying 222 establish succeeds prior to the primary point-in-time copying 220 establish is allowed return success. In these embodiments, theprimary storage controller 204 and thesecondary storage controller 214 are communicatively coupled 230 to communicate the success of the secondary point-in-time copying 222 establish. In one embodiment, theprimary storage controller 204 and thesecondary storage controller 214 are communicatively coupled by a Fiber Channel link familiar to those of skill in the art. In another embodiment, theprimary storage controller 204 and thesecondary storage controller 214 are communicatively coupled through thesecondary host system 212 over an existing Fiber Channel link through the implementation of a message/response protocol initiated by theprimary storage controller 204. In yet another embodiment, theprimary storage controller 204 and thesecondary storage controller 214 are communicatively coupled through the implementation of a TCP/IP communication session. In these and other embodiments, theprimary storage controller 204 and thesecondary storage controller 214 are communicatively coupled through a different logical communication path than the one used by asynchronous mirror operations. - In these and other embodiments, a reservation for resources to be used in the secondary point-in-
time copy 222 is synchronously established with the primary point-in-time copying 220 establish. In certain embodiments, the reservation is performed over a Peer-To-Peer Remote Copy (PPRC) link familiar to those of skill in the art. In these embodiments, the checking of the point-in-time copying bitmaps, which determines where the data is during the secondary point-in-time copying 222 when there is a data write to the firstsecondary volume 216, is delayed until the new establish check-in operation uses the reservation. - As such, the reservation effectively creates a point-in-time copying relationship with the first
secondary volume 216, but does not start any read or write processing until sometime later when the secondary point-in-time copying 222 process begins. Once the point-in-time copying 222 establish on the firstsecondary volume 216 is initiated, it then utilizes the reservation to begin the secondary point-in-time copying 222 to the secondsecondary volume 218. Should the point-in-time copying reservation 230 establish on the firstsecondary volume 216 fail, then the point-in-time copying 220 establish on the firstprimary volume 206 will likewise be failed. From the foregoing, it will be appreciated that when the point-in-time copying reservation 230 succeeds, then it can be anticipated that the point-in-time establish 222 will likewise succeed. As a result, the primary point-in-time establish 220 is allowed to complete successfully. In one embodiment, the failure maintains the Preserve Mirror Required concept familiar to those of skill in the art. - In various embodiments, the establish reservation receives the needed data structures and subsequently ensures there are no problems with the reservation. In certain of these embodiments, the reservation would prevent another point-in-time copy establish from exhausting resources or causing a cascading configuration. Thus, when the establish check-in operation occurs, the point-in-time copying instance has an improved chance of success.
- In various embodiments, the point-in-time copy establish reservation operation and the point-in-time copy establish check-in operation is coordinated through the use of a point-in-time copy sequence number. In these embodiments, there may be multiple point-in-time copies occurring at different times across the same set of volumes, such as would be done for data set level point-in-time copying. In certain embodiments, the point-in-time copy sequence number is generated by the
primary storage controller 204 and is provided via the PPRC link. As a result, the point-in-time copy sequence number associated with an establish check in operation allows theprimary storage controller 204 to know which reservation to convert to a normal point-in-time copy instance. - Skilled practitioners of the art will recognize that the
side file 210, and its associated entries, may be lost due to a session suspension. As a result, the point-in-time copy establish for a check-in operation may not occur. Accordingly, these point-in-time copying relationships need to be cancelled as they consume resources on thesecondary storage controller 214, resulting in the need for a way to internally cancel a reservation. In one embodiment, this need is addressed by estimating the time the check-in operation should occur in the future, based upon the amount of time the asynchronous mirroring 224 process is running behind the primary point-in-time copying 220 process. - In this embodiment, the asynchronous mirroring 224 operation will periodically tell the
secondary storage controller 214 how long it is running behind, such that thesecondary storage controller 214 can relate a cancellation time for a point-in-time copy establish reservation. In another embodiment, an algorithm is based upon the point-in-time copying sequence number. In this embodiment, the sequence number is always increasing. Therefore, any point-in-time establish reservations with an earlier sequence number may be cancelled. - In certain embodiments, an asynchronous data mirroring operation (e.g., a Global Mirror operation) has two phases: a draining phase and an idle phase. During the draining phase of the asynchronous data mirroring operation, a consistency group is in progress/consistency group in progress (CGIP). The idle phase corresponds to when the volumes in a session are being copied via the asynchronous data mirroring operation. Thus, the idle phase corresponds to when a global copy operation is functioning properly.
- When functioning in the asynchronous data mirroring operation idle phase, the volumes in the session have out-of-sync (OOS) information allocated that is recording new changes and also being used to determine which tracks to synchronize the secondary. In certain embodiments, the last consistency group is protected by the asynchronous point-in-time copy operation point-in-time copy at the secondary. In certain embodiments, the OOS information may be stored within an OOS bitmap.
- When functioning in the asynchronous data mirroring operation draining phase, the volumes in the session maintain Change Recording (CR) information and OOS information. The OOS information includes data for the current consistency group (i.e., the consistency group corresponding to the presently occurring point-in-time copy) that needs to be copied to the secondary. The CR information contains any new updates that should be considered the start of the next consistency group (i.e., the consistency group corresponding to a next subsequently occurring point-in-time copy). Data in the OOS information should be protected from being overwritten while the asynchronous data mirroring operation is operating in the draining phase, otherwise the consistency group could be compromised.
- Certain aspects of the present disclosure include an appreciation that a challenge in supporting a point-in-time copy operation onto an asynchronous data mirroring operation while the asynchronous data mirroring operation is functioning in the draining phase, relates to protecting OOS/consistent data on the local components. Certain aspects of the present disclosure include an appreciation that a challenge in supporting a point-in-time copy operation onto an asynchronous data mirroring operation while the asynchronous point-in-time copy operation is functioning in the draining phase (in addition to protecting OOS/consistent data on the local), is the timing associated with a remote establish.
- When a point-in-time copy establish operation is performed on the local components, the point-in-time copy establish operation cannot be committed at the remote volumes if the asynchronous data mirroring operation is in the process of draining a consistency group (CG). Any point-in-time copy command that arrives while the asynchronous data mirroring operation is in the draining phase should be considered part of a subsequent consistency group. If the asynchronous point-in-time copy information from the local components were to be committed at the remote components, the asynchronous data mirroring copy information would automatically become part of the current consistency group when the drain process completes and the consistency group was hardened (i.e., not allowing any reads or writes to the extent range so the point-in-time copy can be performed). For this reason, point-in-time copy reservations can be used. The point-in-time copy reservations are checked in when the asynchronous data mirroring operation finishes the drain process (whether the drain process completes successfully or fails). In certain embodiments, the point-in-time establish reservation is synchronously established with the first point-in-time copying process establish, such as over a Peer-To-Peer Remote Copy (PPRC) link.
-
FIG. 3 is a generalized flowchart of improved point-in-time copying operations 300 performed within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention. In this embodiment, point-in-time copying and asynchronousdata mirroring operations 300 are begun instep 302, followed by a primary storage controller generating a first establish for a first point-in-time copying operation instep 304. Once the first establish is generated, the primary storage controller submits a request in step 306 to initiate an asynchronous data mirroring operation associated with the first point-in-time copying process. In response, a point-in-time establish reservation, described in greater detail herein, is generated instep 308 for a second point-in-time copying process. - As likewise described in greater detail herein, a determination is then made in
step 310 whether it is possible for the second point-in-time copying process to be successfully performed. If not, then the point-in-time establish reservation is cancelled instep 312 and the first point-in-time copy establish is failed instep 314. A determination is then made instep 320 whether to end point-in-time copying and asynchronous data mirroring operations. If not, then the process is continued, proceeding withstep 304. Otherwise, point-in-time copying and asynchronous data mirroring operations are ended instep 322. - However, if it is determined in
step 310 that it is possible for the second point-in-time copying process to be successfully performed, then the point-in-time establish reservation is used instep 316 to generate a check-in for the second point-in-time copying process. In turn, the check-in is then used instep 318 to perform the second point-in-time copying process. The process is then continued, proceeding withstep 320. -
FIG. 4 is a generalized flowchart of a point-in-time reservation basedcopy operation 400 performed within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention. More specifically, the point-in-time reservation basedoperation 400 begins atstep 410 with a point-in-time establish request being issued to the local controller (e.g., primary storage controller 204). Next, atstep 412, the point-in-timedata mirroring system 150 stops peer-to-peer remote copy state transitions on the local source (e.g., the first primary volume 206) and the local target (e.g., the second primary volume 208). - Next, the point-in-time
data mirroring system 150 creates a local source relationship between the local first primary volume and the local second primary volume. More specifically, the point-in-timedata mirroring system 150 quiesces the local source extents (e.g., the local volumes being copied to the second primary volume) atstep 420. Next atstep 422 the point-in-time mirroring system 150 creates a local source relationship. Next, atstep 430, the point-in-timedata mirroring system 150 quiesces the local target extents and creates a local target relationship atstep 432. - The point-in-time
data mirroring system 150 then sends a point-in-time copy reservation to the remote controller (e.g., the secondary storage controller 214) atstep 440 and determines whether the point-in-time reservation was successful atstep 442. If the point-in-time reservation was successful, then the point-in-timedata mirroring system 150 creates a reservation relationship for the remote target atstep 450 and a reservation relationship for the remote source atstep 452. If not successful, then the reservation fails atstep 453 - After creating the remote source relationship, the point-in-time
data mirroring system 150 copies the source change recording to the target change recording for the identified extent ranges (e.g., for the volumes to be copied) atstep 460 and unquiesces the local source and target extents atstep 462. Next atstep 470, the point-in-timedata mirroring system 150 generates an end status message that is provided to the host (e.g., the primary host system 202) for the point-in-time copy operation to complete. Next, atstep 472, the consistency group finishes the drain phase indicating that the increment is complete (i.e., that the current point-in-time copy operation completed operation). - At
step 480, the point-in-timedata mirroring system 150 sends a point-in-time check-in message to the remote (e.g., to the secondary storage controller 214) check-in. I.e., the point-in-time reservation basedoperation 400 waits for the global mirror operation to complete the “draining” phase before issuing the check-in message to the remote. The check-in message then informs the remote that the point-in-time relationship can “roll forward” or start at that point. Essentially, the check-in message defines the “Point-in-time” because the system knows that the data has drained to the remote and thus can be “checked in.” For the purposes of this disclosure, a check-in refers to changing the reservation relationship into a “real” flashcopy relationship (i.e., the remote target has a logical copy of the remote source at this instant). After checking in, the point-in-timedata mirroring system 150 can set a target bit map. The point-in-timedata mirroring system 150 then determines whether the check-in was a success atstep 482. If the check-in was a success then the point-in-timedata mirroring system 150 rolls the remote target relationship forward atstep 484, sets the remote target bit map (TBM) atstep 486 and rolls the source relationship forward atstep 488. While the point of the reservation operation is to ensure a check-in won't fail, there is a chance a failure can happen (i.e., the check-in was not successful), in this case, the point-in-timedata mirroring system 150 causes thetarget PPRC pair step 487. - Next at
step 490 the point-in-timedata mirroring system 150 starts the synchronization process at the remote. -
FIG. 5 is a generalized flowchart of a point-in-time non-reservation basedcopy operation 500 performed within an asynchronous data mirroring environment implemented in accordance with an embodiment of the invention. More specifically, the point-in-time non-reservation basedoperation 500 begins atstep 510 with a point-in-time establish request being issued to the local controller (e.g., primary storage controller 204). Next, atstep 512, the point-in-timedata mirroring system 150 stops peer-to-peer remote copy state transitions on the local source (e.g., the first primary volume 206) and the local target (e.g., the second primary volume 208). Next, atstep 514, the point-in-timedata mirroring system 150 quiesces local source extents. Next, atstep 516, the point-in-time data mirroring system creates a local source relationship (e.g., between the local first primary volume and the local second primary volume). - Next, at
step 520, the point-in-timedata mirroring system 150 quiesces the local target extents. The point-in-timedata mirroring system 150 then creates a local target relationship atstep 522. Next, atstep 530 the point-in-timedata mirroring system 150 stops peer-to-peer remote copy synchronization on the local target (e.g., the second primary volume 208). Next, the point-in-timedata mirroring system 150 sends a FlashCopy Capability query (e.g., a 0x47 query) to thesecondary storage controller 214 atstep 532. More specifically, a user can issue a command with extent ranges and intent of these extent ranges to be source or target. The FlashCopy Capability query returns whether that relationship can be created. - Next at
step 540, the point-in-timedata mirroring system 150 analyzes the query data. If atstep 542 the point-in-timedata mirroring system 150 determines that a point-in-time copy operation is permitted and the relations bits are not already set in the Relations BitMap (RBM) 242, then the point-in-timedata mirroring system 150 creates or updates theRelations BitMap 242 for the point-in-time tracks atstep 544. TheRelations BitMap 242 is a bitmap that is used to track establish operations in progress. More specifically, the Relations BitMap has a bit for every track in a volume. Each set bit in the Relations BitMap represents what tracks are already committed to a future remote flashcopy relationship. Essentially, setting a bit in the Relations BitMap provides a way to reserve a relationship. If the bit is set, this means that system cannot use that track in another relationship. When an establish message is received, the establish operation sets a range of bits for the source and target. When the point-in-time command is complete after consistency group formation, the Relations BitMap is reset. - Next the point-in-time
data mirroring system 150 creates a point-in-time command entry in the point-in-time Command Buffer 240 atstep 546 and control returns to the local controller. If atstep 542, the point-in-timedata mirroring system 150 determines that a copy is not permitted such as when a point-in-time operation is not permitted or the bits are not already set in theRelations BitMap 242, then the point-in-timedata mirroring system 150 merges theRelations BitMap 242 into the OOS bitmap and clears out the pending FLC commands in the FLC Command Buffer atstep 548 and the point-in-time non-reservation copy operation completes operation. More specifically, the system sets the OOS bitmap forvolume 208 for the range of tracks that were in the flashcopy relationship. This ensures that all the correct data is copied to the secondary. The RBM is on the remote and is not be used whenstep 542 fails. - After creating the point-in-time command entry, the point-in-time
data mirroring system 150 copies the source change recording to the target change recording for the extent ranges atstep 560. The extent ranges are used in the local source and target relationship. Next atstep 570 the point-in-timedata mirroring system 150 generates and end status message that is provided to thesecondary host 212 for the point-in-time complete. Next, atstep 572, the consistency group finishes the drain phase indicating that the global mirror has completed the consistency group. - Next at
step 580, when the draining has completed (i.e., the consistency group has either been created or failed), the point-in-timedata mirroring system 150 then clears therelations bitmap 242 atstep 582. - Next at step 590 the point-in-time
data mirroring system 150 starts the synchronization process at the remote. - Although the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made hereto without departing from the spirit and scope of the invention as defined by the appended claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/603,736 US10572507B2 (en) | 2017-05-24 | 2017-05-24 | Coordination of point-in-time copy in asynchronous mirror environment during consistency group formation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/603,736 US10572507B2 (en) | 2017-05-24 | 2017-05-24 | Coordination of point-in-time copy in asynchronous mirror environment during consistency group formation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20180341694A1 true US20180341694A1 (en) | 2018-11-29 |
US10572507B2 US10572507B2 (en) | 2020-02-25 |
Family
ID=64400559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/603,736 Expired - Fee Related US10572507B2 (en) | 2017-05-24 | 2017-05-24 | Coordination of point-in-time copy in asynchronous mirror environment during consistency group formation |
Country Status (1)
Country | Link |
---|---|
US (1) | US10572507B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394662B2 (en) * | 2012-12-03 | 2019-08-27 | Hitachi, Ltd. | Storage apparatus and storage apparatus migration method |
US10936243B2 (en) * | 2017-08-03 | 2021-03-02 | Hitachi, Ltd. | Storage system and data transfer control method |
US20240104061A1 (en) * | 2016-04-28 | 2024-03-28 | Netapp Inc. | Gransets for managing consistency groups of dispersed storage items |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592618A (en) * | 1994-10-03 | 1997-01-07 | International Business Machines Corporation | Remote copy secondary data copy validation-audit function |
US20120150811A1 (en) * | 2010-12-14 | 2012-06-14 | International Business Machines Corporation | Flash-copying within asynchronous mirroring environment |
US20150301910A1 (en) * | 2014-04-18 | 2015-10-22 | Ramanna Sathyanarayana | Flexible high avilability disaster recovery with a set of database servers |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133982B2 (en) | 2003-06-18 | 2006-11-07 | International Business Machines Corporation | Method, system, and article of manufacture for consistent copying of storage volumes |
US7610318B2 (en) | 2003-09-29 | 2009-10-27 | International Business Machines Corporation | Autonomic infrastructure enablement for point in time copy consistency |
US7415628B2 (en) | 2004-01-09 | 2008-08-19 | International Business Machines Corporation | Restricting the execution of copy services commands |
JP4422519B2 (en) | 2004-03-18 | 2010-02-24 | 株式会社日立製作所 | Information processing system |
US7668810B2 (en) | 2006-01-27 | 2010-02-23 | International Business Machines Corporation | Controlling consistency of data storage copies |
US8484655B2 (en) | 2010-12-09 | 2013-07-09 | International Business Machines Corporation | Management of copy services relationships via policies specified on resource groups |
US8463746B2 (en) | 2011-03-30 | 2013-06-11 | International Business Machines Corporation | Method and system for replicating data |
US8990263B2 (en) | 2012-03-15 | 2015-03-24 | International Business Machines Corporation | Policy-based management of storage functions in data replication environments |
US9251231B2 (en) | 2012-10-17 | 2016-02-02 | International Business Machines Corporation | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation |
US9063997B2 (en) | 2013-02-12 | 2015-06-23 | International Business Machines Corporation | Asynchronous pausing of the formation of consistency groups |
US20150081628A1 (en) | 2013-09-17 | 2015-03-19 | International Business Machines Corporation | Flashcopy reservation for flashcopy onto a synchronously-mirrored source |
-
2017
- 2017-05-24 US US15/603,736 patent/US10572507B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592618A (en) * | 1994-10-03 | 1997-01-07 | International Business Machines Corporation | Remote copy secondary data copy validation-audit function |
US20120150811A1 (en) * | 2010-12-14 | 2012-06-14 | International Business Machines Corporation | Flash-copying within asynchronous mirroring environment |
US20150301910A1 (en) * | 2014-04-18 | 2015-10-22 | Ramanna Sathyanarayana | Flexible high avilability disaster recovery with a set of database servers |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394662B2 (en) * | 2012-12-03 | 2019-08-27 | Hitachi, Ltd. | Storage apparatus and storage apparatus migration method |
US20240104061A1 (en) * | 2016-04-28 | 2024-03-28 | Netapp Inc. | Gransets for managing consistency groups of dispersed storage items |
US10936243B2 (en) * | 2017-08-03 | 2021-03-02 | Hitachi, Ltd. | Storage system and data transfer control method |
Also Published As
Publication number | Publication date |
---|---|
US10572507B2 (en) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150081628A1 (en) | Flashcopy reservation for flashcopy onto a synchronously-mirrored source | |
US9910609B2 (en) | Determining adjustments of storage device timeout values based on synchronous or asynchronous remote copy state | |
JP4727437B2 (en) | Storage control method for storage system having database | |
US8689047B2 (en) | Virtual disk replication using log files | |
US10223210B2 (en) | Asynchronous local and remote generation of consistent point-in-time snap copies in consistency groups | |
US6728736B2 (en) | System and method for synchronizing a data copy using an accumulation remote copy trio | |
US9720786B2 (en) | Resolving failed mirrored point-in-time copies with minimum disruption | |
US10831741B2 (en) | Log-shipping data replication with early log record fetching | |
US8538928B2 (en) | Flash-copying with asynchronous mirroring environment | |
US9891849B2 (en) | Accelerated recovery in data replication environments | |
US7979651B1 (en) | Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot | |
US10572507B2 (en) | Coordination of point-in-time copy in asynchronous mirror environment during consistency group formation | |
WO2017008648A1 (en) | Cluster switching method and equipment | |
US10120598B2 (en) | Validation of write data subsequent to destaging to auxiliary storage for completion of peer to peer remote copy | |
US10976941B2 (en) | Validation of storage volumes that are in a peer to peer remote copy relationship | |
CN111465920B (en) | Management of data written to a storage controller via a bus interface during remote copy operations | |
US10740007B2 (en) | Synchronized primary-secondary role swaps with synchronized safe data commit scans | |
US9946617B2 (en) | Optimized recovery in data replication environments | |
US11188522B2 (en) | Streamlined database commit for synchronized nodes | |
US10275324B2 (en) | Replication with multiple consistency groups per volume | |
US11513717B2 (en) | Online data rehydration | |
JP7050707B2 (en) | Storage control device, storage system, storage control method, and storage control program | |
CN110413202B (en) | Data replication method, apparatus and computer program product | |
JP2012178124A (en) | Computer having replication function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, THERESA M.;CLAYTON, NICOLAS M.;HARRIS, THEODORE T., JR.;AND OTHERS;SIGNING DATES FROM 20170518 TO 20170523;REEL/FRAME:042490/0503 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, THERESA M.;CLAYTON, NICOLAS M.;HARRIS, THEODORE T., JR.;AND OTHERS;SIGNING DATES FROM 20170518 TO 20170523;REEL/FRAME:042490/0503 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20240225 |