A system and method related to maintaining consistency of replicated data in a data storage environment. The system handles input/Output (io)-Requests in a data storage environment having a server and production data stored on a data storage volume on a data storage system. A copy of the production data is stored on another data storage volume of a second data storage system, wherein io-Requests to update production data are handled so that the data copy is consistent with the production data after processing the io-Request.
|
9. A system for handling input/Output (io)-Requests in a data storage environment having a server, a first and second data storage volume, and production data being stored on the first data storage volume on a first data storage system, and a copy of the data denominated as the data copy being stored on the second data storage volume of a second data storage system, wherein io-Requests to update production data are handled so that the data copy is consistent with the production data after processing the io-Request, the system comprising
(a) inserting on the first data storage system a first device object above a second device object and a third device object below the second device object to form a stack of layered device objects, wherein the first device object and the third device object are associated with a first device driver and the second device object is associated with a second device driver;
(b) the first device driver passing an io-Request for the production copy on the first data storage system to the first device object;
(c) the second device driver associated with the second device object intercepting the and transmitting the io-Request associated with the first device object to the third device object and to a fourth device object associated with the second device driver on the second data storage system;
(d) the second device driver associated with the fourth device object receiving and processing the associated io-Request for the data copy on the second data storage system; and
(e) the first device driver associated with the third device object receiving and processing the associated io-Request for the production copy on the first data storage system such that when each io-Request is processed the data on the data copy and the production data are consistent.
1. In a data storage environment having a server, a first and second data storage volume, and production data being stored on the first data storage volume on a first data storage system, and a copy of the data denominated as the data copy being stored on the second data storage volume of a second data storage system, a method of handling input/Output (io)-Requests from the server to update the production data so that the data copy is consistent with the production data after processing the io-Request, the method comprising the steps of:
(a) inserting on the first data storage system a first device object above a second device object and a third device object below the second device object to form a stack of layered device objects, wherein the first device object and the third device object are associated with a first device driver and the second device object is associated with a second device driver;
(b) the first device driver passing an io-Request for the production copy on the first data storage system to the first device object;
(c) the second device driver associated with the second device object intercepting the and transmitting the io-Request associated with the first device object to the third device object and to a fourth device object associated with the second device driver on the second data storage system;
(d) the second device driver associated with the fourth device object receiving and processing the associated io-Request for the data copy on the second data storage system; and
(e) the first device driver associated with the third device object receiving and processing the associated io-Request for the production copy on the first data storage system such that when each io-Request is processed the data on the data copy and the production data are consistent.
17. A computer program product handling input/Output (io)-Requests in a data storage environment having a server, a first and second data storage volume, and production data being stored on the first data storage volume on a first data storage system, and a copy of the data denominated as the data copy being stored on the second data storage volume of a second data storage system, wherein io-Requests to update production data are handled so that the data copy is consistent with the production data after processing the io-Request, the computer-program product including computer-executable code on a tangible computer-readable storage medium for carrying out the steps of:
(a) inserting on the first data storage system a first device object above a second device object and a third device object below the second device object to form a stack of layered device objects, wherein the first device object and the third device object are associated with a first device driver and the second device object is associated with a second device driver;
(b) the first device driver passing an io-Request for updating the production copy on the first data storage system to the first device object;
(c) the second device driver associated with the second device object intercepting the and transmitting the io-Request associated with the first device object to the third device object and to a fourth device object associated with the second device driver on the second data storage system;
(d) the second device driver associated with the fourth device object receiving and processing the associated io-Request for the data copy on the second data storage system; and
(e) the first device driver associated with the third device object receiving and processing the associated io-Request for the production copy on the first data storage system such that when each io-Request is processed the data on the data copy and the production data are consistent.
2. The method of
3. The method of
4. The method of
6. The method of
7. The method of
8. The method of
10. The system of
11. The system of
12. The system of
14. The system of
15. The system of
16. The system of
|
A portion of the disclosure of this patent document contains command formats and other computer language listings, all of which are subject to copyright protection. The copyright owner, EMC Corporation, has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This application generally relates to data storage management, and more particularly to management related to copying or replication of data in a data storage environment
This U.S. Patent application is related to an application with S/N (to be determined) entitled “Architecture and Apparatus for Handling Device Objects in a Data Storage Environment for Maintaining Consistency During Data Replication” being filed on even date to inventor Pathak et al. and assigned to EMC Corporation of Hopkinton, the same assignee as this application.
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage systems, such as the Symmetrix™ or CLARiiON™ (also referred to herein as Clariion) family of data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. An example data storage system may include one or more data storage devices, such as those of the Symmetrix™ family, that are connected together and may be used to provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system IO operations in connection with data requests such as data read and write operations. Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
It is known that is desirable to copy or replicate data, including for a backup operation. Once data is replicated, copied, or otherwise backed up it may be used for a recovery or restoration process, wherein the copy of the data is restored back onto the source. This may be done for a variety of reasons including failures. So for example, data may be restored from the last good copy. The inventor of the present invention discussed below have critically recognized that it would be advantageous to avoid corruption of data during a replication process so that such a restoration or recovery will be successful.
To overcome the problems of the prior art mentioned above and to provide advantages also described above, this invention is a system and method for handling server Input/Output (IO) requests to the production data so that the data copy is consistent with the production data after processing the IO-Request. The methods operates in a data storage environment having a server, a first and second data storage volume, and production data being stored on the first data storage volume on a first data storage system, and a copy of the data denominated as the data copy being stored on the second data storage volume of a second data storage system. The method includes the steps of: (a) inserting on the first data storage system a first device object above a second device object and a third device object below the second device object to form a stack of layered device objects, wherein the first device object and the third device object are associated with a first device driver and the second device object is associated with a second device driver; (b) the first device driver passing an IO-Request for the production copy on the first data storage system to the first device object; (c) the second device object intercepting the first device object and transmitting the IO-Request associated with the first device object to the third device object and to a fourth device object on the second data storage system; (d) the fourth device object receiving and processing the associated IO-Request for the data copy on the second data storage system; and (e) the third device object receiving and processing the associated IO-Request for the production copy on the first data storage system such that when each IO-Request is processed the data on the data copy and the production data are consistent.
In another embodiment, a method operates in a data storage environment having a server, a first and second data storage volume, and production data being stored on the first data storage volume, and a copy of the data denominated as the data copy being stored on the second data storage volume. The method includes the steps of:
(a) inserting on the first data storage system a first device object above a second device object and a third device object below the second device object to form a stack of layered device objects, wherein the first device object and the third device object are associated with a first device driver and the second device object is associated with a second device driver; (b) the second device driver passing an IO-Request for updating the data copy to the second device object; (c) the third device object intercepting the second device object and transmitting the IO-Request associated with the second device object to the fourth device object; (d) the fourth device object receiving and the processing the associated IO-Request for the data copy on the second data storage volume; and (e) the third device object processing the associated IO-Request for the production copy such that when each IO-Request is processed the data on the data copy and the production data are consistent.
In another embodiment, the invention is implemented as steps in a process. In other embodiments, implementations include a system, a computer program product, or an apparatus, wherein each embodiment is configured for carrying out the steps involved in methodology embodiments.
The above and further advantages of the present invention may be better under stood by referring to the following description taken into conjunction with the accompanying drawings in which:
In the preferred embodiment, the embodiment operates in cooperation and may be a part of computer software, operating the preferred EMC CLARiiON or Symmetrix storage systems available from EMC Corporation of Hopkinton, Mass., although one skilled in the art will recognize that the invention may be used with other data storage systems. In the preferred embodiment, EMC CLARiiON storage system implements aspects of the present invention as part of software that operates with such a storage system. In this preferred embodiment, a locally accessible mirror copy of a specified Logical Unit (LU), or logical mirror copy is available for backups or other host processes. The logical mirror copy may also be useful for operations that change data, such as production testing or data warehousing, without disrupting the production database.
In the preferred embodiment, the preferred invention operates in cooperation and may be a part of computer software, such EMC Corporation's MirrorView software on a preferred CLARiiON data storage system, and may use other CLARiiON software, including its disk management operating system, FLARE, and layered drivers, such as Mirrors and Clones. However, one skilled in the art will recognize more general applicability of the invention in view of the teachings herein and limits should only be imparted from the claims appearing below.
MirrorView is typically configured for allowing central management of movement of data between data storage systems, e.g. the preferred EMC CLARiiON and Symmetrix storage systems available from EMC Corporation of Hopkinton, Mass., although one skilled in the art will recognize that the invention may be used with other data storage systems. Preferably, Mirrorview is a storage-based implementation to remove impact from a server which may be hosting application software in a production environment.
Typically, Mirrorview operates in cooperation, with EMC's TimeFinder and local replication applications, eliminating the impact to production activities by using Business Continuance Volumes (BCV's) (discussed in the incorporated '497 patent referenced below) or Snapshots as source volumes so applications stay online throughout the data movement process. However, the present invention may be used without requirement of such BCV's or Snapshots. For the sake of completeness, operational features embodied in EMC's Timefinder and Symmetrix are described in U.S. Pat. No. 6,101,497 issued Aug. 8, 2000, and also in U.S. Pat. No. 5,206,939 issued Apr. 27, 1993, each of which is assigned to EMC the assignee of this invention and each of which is hereby incorporated by reference. Consequently, the following discussion makes only general references to the operation of such systems.
CLARiiON Layered Features are implemented as standard Microsoft Windows intermediate drivers. These intermediate drivers run in the IO stack and act on IO-Request packets (IRPs) received. By intercepting requests before they reach their intended target, these drivers can extend the functionality provided by FLARE, the preferred operating system of CLARiiON. Drivers must present a standard interface to drivers higher in the stack. Each participates in a device export/consumption model in which the layered driver consumes one or more device objects provided by lower level drivers and exports its own objects layered on top of the consumed objects. The inventor has critically recognized that in a prior art implementation each layered driver would export a single device object per device stack and such a model limits the flexibility and interoperability of the various layered features. Many of these restrictions are eliminated by allowing layered drivers to insert multiple device objects into strategic locations within a device stack by implementing the present invention.
Some terminology used herein is shown in here in Table 1:
TABLE 1
Source: Typically a logical unit (LU) from where data is mirrored
or copied, and which herein is sometimes referred to as being cloned.
Clone: Another LU, other than the Source LU, but which is a copy of the
specified Source.
Transmitter Object: A device object that is inserted into a device stack
from which a layered driver initiates IO-Requests
Receiver Object: A device object that is inserted into a device stack from
which a layered driver receives IO-Requests.
LU: Logical Unit
In a preferred embodiment, Program Logic, which may be in one or more alternative embodiments, cooperates with and may include EMC MirrorView that performs copy operations to specified Production Data. One skilled in the art will recognize that the invention is not limited to such preferred embodiments; however, they are described herein as an example of implementing the invention.
Referring to
The Data Storage System 16 may be considered a Source or Local system and replication, backup, or other copying may be performed to a Target or Remote system. The term remote as used herein means being on a different storage system, although this invention is applicable to source and target systems that actually are the same system but the data is sent to a different storage device or even a different location on the same storage device in the same system. For purposes of this invention it is sufficient to understand that the Remote System has storage devices (e.g. hard drives) that may function to duplicate or simulate some or all of the Local System on a volume-by-volume basis and that the volumes can by physical volumes, although logical volumes are preferred. Devices and volumes in a logical sense are also used interchangeably throughout, and sometimes are referred to as logical units. Note also that throughout this document, like symbols and identical numbers represent like- and identical elements in the Figures. With further regard to terminology, copying is used throughout to generally refer to any way of duplicating data that is stored in one storage location (e.g. Production Data on the Source or Local System) to another storage location (e.g. Data Copy on the Target or Remote System) for any reason including, replication, backup, restore, or general mirroring. Although the invention is particularly useful in an environment employing a local and remote data storage system, it will become apparent upon reading this specification that the invention is also useful in a local system itself using copying or replication to a local volume or logical unit. With that understanding, it should be appreciated by one skilled in the art that this invention is not to be limited except by the claims appearing below.
Generally, in a preferred embodiment the Program Logic 34 acts in cooperation with the operating system 32, and the CPU 31 on the source data storage system 16. The bitmaps and Program logic operate in electronic memory 37 and when executed by CPU 31 over communication path 39 carry out method steps embodying the invention. It is preferred that the Program Logic be computer software although it is possible for it to be embodied in whole or part in hardware or firmware. Program Logic 34 may also be embodied on a computer program product 150 including a computer-readable medium 148 as shown in
Referring again to
In a prior art configuration shown in
This single device object and specific stack location model creates various problems when integrating layered features, particularly those that act as IO initiators (MirrorView and Clones). Once these IO initiators insert a device object within an IO device stack, the associated layered feature is able to send IO-Requests only to the device object below it in the stack (to the device object it is consuming). Many layered drivers need to track IO to a device in order to process the data. Because of this they need to be able to intercept all IO-Requests to the device. If a layered driver acting as an IO initiator sends an IO-Request down the device stack; all layered drivers with device objects above it will not be able to intercept the request. This may result in data corruption on a replication device.
Referring again to Prior Art
Referring to
Referring to a preferred embodiment shown in
Referring to another example case shown in
Reference is now made to
Referring to
Having described a preferred embodiment of the present invention, it may occur to skilled artisans to incorporate these concepts into other embodiments. Nevertheless, this invention should not be limited to the disclosed embodiment, but rather only by the spirit and scope of the following claims and their equivalents.
Duprey, Dennis, Haase, David, Pathak, Saurabh M., Haynes, Michael D., Gulve, Somnath A.
Patent | Priority | Assignee | Title |
11650809, | Jun 15 2021 | International Business Machines Corporation | Autonomous and optimized cloning, reinstating, and archiving of an application in a containerized platform |
8429368, | Jun 01 2007 | NetApp, Inc | Providing an administrative path for accessing a writeable master storage volume in a mirrored storage environment |
Patent | Priority | Assignee | Title |
7509465, | Jun 25 2004 | EMC IP HOLDING COMPANY LLC | System and method for managing memory or session resources used for movement of data being copied in a data storage environment |
Date | Maintenance Fee Events |
Mar 14 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 01 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
May 20 2021 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Dec 01 2012 | 4 years fee payment window open |
Jun 01 2013 | 6 months grace period start (w surcharge) |
Dec 01 2013 | patent expiry (for year 4) |
Dec 01 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 01 2016 | 8 years fee payment window open |
Jun 01 2017 | 6 months grace period start (w surcharge) |
Dec 01 2017 | patent expiry (for year 8) |
Dec 01 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 01 2020 | 12 years fee payment window open |
Jun 01 2021 | 6 months grace period start (w surcharge) |
Dec 01 2021 | patent expiry (for year 12) |
Dec 01 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |