Method, system, apparatus, and computer-readable medium for taking and managing snapshots of a storage volume
First Claim
1. A data storage system comprising:
- a physical data storage device containing a data storage volume; and
a computerized controller operable for taking snapshots of a data storage volume, and for maintaining a data structure for one or more provisions in the data storage volume, the data structure comprising a first data field, a second data field, and a third data field,wherein the computerized controller stores an increasing sequence number in the first data field that identifies a snapshot lifetime in which the provision was written and whether the identified snapshot lifetime is a read-write snapshot lifetime or a read-only snapshot lifetime, each snapshot lifetime being associated with a different increasing sequence number, stores a bitmap in the second data field that identifies portions of the provision that were written during the snapshot lifetime identified by the first data field, and stores a pointer to a next data structure for another snapshot lifetime for the provision in the third data field.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system, apparatus, and computer-readable medium are provided for taking snapshots of a storage volume. According to aspects of one method, each snapshot is represented as a unique sequence number. Every fresh write access to a volume in a new snapshot lifetime is allocated a new section in the disk, called a provision, which is labeled with the sequence number. Read-modify-write operations are performed on a sub-provision level at the granularity of a chunk. Because each provision contains chunks with valid data and chunks with invalid data, a bitmap is utilized to identify the valid and invalid chunks with each provision. Provisions corresponding to different snapshots are arranged in a linked list. Branches from the linked list can be created for storing writable snapshots. Provisions may also be deleted and rolled back by manipulating the contents of the linked lists.
63 Citations
21 Claims
-
1. A data storage system comprising:
-
a physical data storage device containing a data storage volume; and a computerized controller operable for taking snapshots of a data storage volume, and for maintaining a data structure for one or more provisions in the data storage volume, the data structure comprising a first data field, a second data field, and a third data field, wherein the computerized controller stores an increasing sequence number in the first data field that identifies a snapshot lifetime in which the provision was written and whether the identified snapshot lifetime is a read-write snapshot lifetime or a read-only snapshot lifetime, each snapshot lifetime being associated with a different increasing sequence number, stores a bitmap in the second data field that identifies portions of the provision that were written during the snapshot lifetime identified by the first data field, and stores a pointer to a next data structure for another snapshot lifetime for the provision in the third data field. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for taking snapshots of a data storage volume, the method comprising:
-
maintaining a data structure for one or more provisions in the data storage volume, the data structure comprising a first data field, a second data field, and a third data field; storing an increasing sequence number in the first data field that identifies a snapshot lifetime in which the provision was written and whether the identified snapshot lifetime is a read-write snapshot lifetime or a read-only snapshot lifetime, each snapshot lifetime being associated with a different increasing sequence number; storing a bitmap in the second data field that identifies portions of the provision that were written during the snapshot lifetime identified by the first data field; and storing a pointer to a next data structure for another snapshot lifetime for the provision in the third data field. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer system, cause the computer system to:
-
maintain a data structure for one or more provisions in the data storage volume, the data structure comprising a first data field, a second data field, and a third data field; store an increasing sequence number in the first data field that identifies a snapshot lifetime in which the provision was written and whether the identified snapshot lifetime is a read-write snapshot lifetime or a read-only snapshot lifetime; store a bitmap in the second data field that identifies portions of the provision that were written during the snapshot lifetime identified by the first data field, each snapshot lifetime being associated with a different increasing sequence number; and store a pointer to a next data structure for another snapshot lifetime for the provision in the third data field. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification