Managing data in a storage system
First Claim
Patent Images
1. A method of managing data in a storage system, comprising:
- maintaining a volume-version data structure including logical unit (LU) volume entries for a LU volume and for snapshot volumes associated with the LU volume, wherein for each volume a respective volume identifier (ID) is kept, and for each snapshot a timestamp for a snapshot operation and an indication of a connection between a respective target volume and a source volume are kept;
maintaining a chunk-version data structure that is uniquely associated with a volume ID and a logical chunk address combination;
including in the chunk-version data structure one or more chunk-version data elements, each chunk version data element including a timestamp at a corresponding write to the respective logical chunk address in the respective volume and a pointer to storage resources associated with the chunk-version data element.
3 Assignments
0 Petitions
Accused Products
Abstract
According to an aspect of the presently disclosed subject matter, there is provided a system for managing data in a storage system, the system including a storage layer which provides storage resource, and a snapshot layer that includes: a volume-version data structure, a chunk-version data structure and a IO handler.
-
Citations
30 Claims
-
1. A method of managing data in a storage system, comprising:
-
maintaining a volume-version data structure including logical unit (LU) volume entries for a LU volume and for snapshot volumes associated with the LU volume, wherein for each volume a respective volume identifier (ID) is kept, and for each snapshot a timestamp for a snapshot operation and an indication of a connection between a respective target volume and a source volume are kept; maintaining a chunk-version data structure that is uniquely associated with a volume ID and a logical chunk address combination; including in the chunk-version data structure one or more chunk-version data elements, each chunk version data element including a timestamp at a corresponding write to the respective logical chunk address in the respective volume and a pointer to storage resources associated with the chunk-version data element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
in a case where there is no snapshot operation whose source is the LU volume or the snapshot volume of the snapshot layer chunk with which the write command is associated, or in a case where all snapshot operations whose source is the LU volume or the snapshot volume of the snapshot layer chunk with which the write command is associated have a timestamp that is earlier than or equal to the timestamp in the last chunk-version data element, determining that the last chunk-version data element in the existing chunk-version data structure can be overwritten.
-
-
13. The method of claim 1, further comprising:
-
(a) in response to receiving a read command at the storage system determining with which volume and with which snapshot layer chunk the read command is associated, initializing a read pointer with respective volume ID and logical chunk address, and initializing a time-marker according to a timestamp at receipt of the read command; (b) determining whether there is a chunk-version data structure that is associated with a current read pointer; (c1) if the condition in operation (b) is not met, determining whether there is a snapshot operation where the volume that is referenced in the write pointer is a target volume and whether the snapshot operation is associated with a timestamp that is not greater than the current time-marker; and (d1) if the conditions in operation (c) are met updating the read pointer with a volume ID of a source volume of the snapshot operation, updating the time-marker with the timestamp for the snapshot operation—
1, and returning to operation (b).
-
-
14. The method according to claim 13, further comprising:
-
(c2) if the condition in operation (b) is met, determining whether in the chunk version data structure there is a chunk version data element whose timestamp is not greater than a current time-marker; and (e1) if the condition in operation (c2) is met reading data from the storage resource referenced in a last chunk version element of the chunk version data structure.
-
-
15. The method according to claim 14, wherein in response to implementing operation (e1):
-
(f) determining whether a search was conducted for all logical blocks referenced in the read command; (g1) and if the condition in operation (f) is met responding to the read command with data obtain in operation (e1) and including invalid data indication(s) for data blocks referenced in the read command for which valid data could not be obtained.
-
-
16. The method according to claim 15, wherein in case the condition in operation (f) is not met, returning to operation (c1).
-
17. The method according to claim 14, wherein in case the condition in operation (c2) is not met, returning to operation (c1).
-
18. A storage system, comprising:
-
a storage layer providing storage resources; a snapshot layer comprising; a volume-version data structure including LU volume entries for an LU volume and for snapshot volumes associated with the LU volume, wherein for each volume a respective volume ID is kept, and for each snapshot a timestamp for the snapshot operation and an indication of a connection between a respective target volume and a source volume are kept; a chunk-version data structure that is uniquely associated with a volume ID and a logical chunk address combination; an Input/Output (TO) handler that is configured to include in the chunk-version data structure one or more chunk-version data elements, each chunk version data element including a timestamp at a corresponding write to the respective logical chunk address in the respective volume and a pointer to storage resources associated with the chunk-version data element. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
-
26. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method of managing data in a storage system, comprising:
-
maintaining a volume-version data structure including LU volume entries for an LU volume and for snapshot volumes associated with the LU volume, wherein for each volume a respective volume ID is kept, and for each snapshot a timestamp for the snapshot operation and an indication of a connection between a respective target volume and a source volume are kept; maintaining a chunk-version data structure that is uniquely associated with a volume ID and a logical chunk address combination; and including in the chunk-version data structure one or more chunk-version data elements, each chunk version data element including a timestamp at a corresponding write to the respective logical chunk address in the respective volume and a pointer to storage resources associated with the chunk-version data element. - View Dependent Claims (27, 28)
-
-
29. A computer program product comprising a non-transitory computer useable medium having computer readable program code embodied therein for managing data in a storage system, the computer program product comprising:
-
computer readable program code for causing the computer to maintain a volume-version data structure including LU volume entries for an LU volume and for snapshot volumes associated with the LU volume, wherein for each volume a respective volume ID is kept, and for each snapshot a timestamp for the snapshot operation and an indication of a connection between a respective target volume and a source volume are kept; computer readable program code for causing the computer to maintain a chunk-version data structure that is uniquely associated with a volume ID and a logical chunk address combination; and computer readable program code for causing the computer to include in the chunk-version data structure one or more chunk-version data elements, each chunk version data element including a timestamp at a corresponding write to the respective logical chunk address in the respective volume and a pointer to storage resources associated with the chunk-version data element. - View Dependent Claims (30)
-
Specification