System for generating a point-in-time copy of data in a data storage system
First Claim
1. A method for creating a point-in-time virtual copy of a selected volume of a data storage system, the method comprising the steps of:
- initializing, to an initial value, a plurality of indicia, each of which represents an area in the selected volume;
in response to receiving a write request to write new data to said selected volume, performing steps including;
determining if a target instance of said indicia, representing said area in which said new data is to be written, is set to said initial value;
if said target instance of said indicia is set to said initial value, then;
copying, to a temporary volume, said area in which said new data is to be written;
resetting said indicia representing said area to a non-initial value; and
writing said new data to said selected volume.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for generating a virtual point-in-time copy of a selected subset (e.g., a selected volume or logical unit) of a storage system. The present system operates by using a bitmap in storage system controller cache memory to indicate blocks of memory in the selected volume that have been overwritten since the snapshot was initiated. When a write to the selected volume is requested, the cache bitmap is checked to determine whether the original data (in the area to be overwritten) has already been copied from the selected volume to a temporary volume. If the original data was previously copied, then the write proceeds to the selected volume. If, however, the original data would be overwritten by the presently requested write operation, then an area containing the original data is copied from the selected volume to a temporary volume. Reads from the temporary volume first check the bitmap to determine if the requested data has already been copied from the selected volume to the temporary volume. If so, the data is read from the temporary volume, otherwise, the data is read from the selected volume.
183 Citations
20 Claims
-
1. A method for creating a point-in-time virtual copy of a selected volume of a data storage system, the method comprising the steps of:
-
initializing, to an initial value, a plurality of indicia, each of which represents an area in the selected volume;
in response to receiving a write request to write new data to said selected volume, performing steps including;
determining if a target instance of said indicia, representing said area in which said new data is to be written, is set to said initial value;
if said target instance of said indicia is set to said initial value, then;
copying, to a temporary volume, said area in which said new data is to be written;
resetting said indicia representing said area to a non-initial value; and
writing said new data to said selected volume. - View Dependent Claims (2, 3, 4, 5, 6)
determining if an object instance of said indicia, representing said area from which said original data is to be read, is set to said initial value;
presenting said original data from said temporary volume if said object instance of said indicia is reset to said non-initial value;
otherwise,presenting said original data from said selected volume if said object instance of said indicia is set to said initial value.
-
-
3. The method of claim 2, wherein said plurality of indicia is a bitmap.
-
4. The method of claim 3, wherein each bit in said bitmap represents a group of blocks of said original data.
-
5. The method of claim 3, wherein said bitmap is located in memory accessible to a controller that manages said read requests and said write requests.
-
6. The method of claim 2, wherein said selected volume and said temporary volume are presented as virtual logical units to a host processor that issues said write requests and said write requests.
-
7. A method for reading data from a point-in-time virtual copy of a selected volume of a data storage system, subsequent to a request for creating the virtual copy, the method comprising the steps of:
-
determining, from indicia stored in memory, whether an area containing said data in the selected volume has been overwritten;
reading said area from a temporary volume if said area has been overwritten;
otherwise,reading said data from said selected volume if said area has not been overwritten. - View Dependent Claims (8, 9, 10, 11)
copying areas of said selected volume to said temporary volume prior to being overwritten on said selected volume; and
presenting said selected volume and said temporary volume as virtual logical units to a host processor that issued the request for creating said virtual copy.
-
-
10. The method of claim 9, wherein said bitmap is located in memory accessible to a controller that manages requests, from said host processor, to read said data.
-
11. The method of claim 9, wherein said selected volume and said temporary volume are presented as virtual logical units to a host processor that issues said write requests and said write requests.
-
12. A method for creating, in response to an initiating request, a point-in-time virtual copy of a selected volume of a data storage system, the method comprising the steps of:
-
in response to receiving a request to write new data to said selected volume, performing steps including;
determining, from indicia stored in a bitmap in memory accessible to a controller coupled to the data storage system, whether an area to which said new data is to be written has been overwritten subsequent to said initiating request;
copying said area to a temporary volume if said area has been overwritten; and
writing said new data to said selected volume. - View Dependent Claims (13, 14, 15)
determining, from said indicia stored in said bitmap, whether an area containing said original data has been overwritten subsequent to said initiating request;
reading said original data from said temporary volume if said area containing said original data has been overwritten;
otherwise,reading said data from said selected volume if said area containing said original data has not been overwritten.
-
-
14. The method of claim 13, wherein said selected volume and said temporary volume are presented as virtual logical units to a host processor that issues I/O requests directed to said virtual copy.
-
15. The method of claim 13, wherein said bitmap is located in memory accessible to a controller that manages requests, from said host processor, to read said data.
-
16. A system for creating a point-in-time virtual copy of a selected volume of a data storage system, the system comprising:
-
a plurality of indicia, stored in cache memory in a controller coupled to the data storage system, wherein each of said indicia represents an area in the selected volume;
means for determining, in response to a request to write new data to a said area in the selected volume, if said indicia representative of said area corresponding to said new data is set to an initial value; and
means, responsive to said means for determining, for creating a temporary volume for storing a copy of said area in which said new data is to be written. - View Dependent Claims (17, 18, 19, 20)
-
Specification