Method and system for implementing writable snapshots in a virtualized storage environment
First Claim
Patent Images
1. A method comprising:
- identifying a parent snapshot of a virtual disk;
creating a read snapshot of the parent snapshot, wherein the read snapshot is accessed in place of the parent snapshot without immediately copying all contents of the parent snapshot to the read snapshot;
designating the read snapshot as a copy of the parent snapshot, wherein future data requests for the parent snapshot are directed to the read snapshot, the contents of the parent snapshot are copied to the read snapshot at a later time after creating the read snapshot;
creating a writable snapshot of the parent snapshot, in which modifications are made to data items of the writable snapshot, wherein the writable snapshot can be accessed without immediately copying all of the contents of the parent snapshot to the writable snapshot, wherein an unchanged data item of the parent snapshot is copied to the writable snapshot at a later time after creating the writable snapshot; and
directing future data write requests for the parent snapshot to the writable snapshot instead of the parent snapshot or the read snapshot, wherein a particular data item that is not in the writable snapshot is copied to the writable snapshot from the parent snapshot upon a request to modify the particular data item.
3 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is an improved approach for implementing and maintaining writable snapshots. An efficient approach is provided for implementing snapshots that can be used to immediately create snapshots without incurring any detectable delays in providing access to the new snapshots. Also described are improved metadata structures that can be used to implement and maintain the writable snapshots.
153 Citations
21 Claims
-
1. A method comprising:
-
identifying a parent snapshot of a virtual disk; creating a read snapshot of the parent snapshot, wherein the read snapshot is accessed in place of the parent snapshot without immediately copying all contents of the parent snapshot to the read snapshot; designating the read snapshot as a copy of the parent snapshot, wherein future data requests for the parent snapshot are directed to the read snapshot, the contents of the parent snapshot are copied to the read snapshot at a later time after creating the read snapshot; creating a writable snapshot of the parent snapshot, in which modifications are made to data items of the writable snapshot, wherein the writable snapshot can be accessed without immediately copying all of the contents of the parent snapshot to the writable snapshot, wherein an unchanged data item of the parent snapshot is copied to the writable snapshot at a later time after creating the writable snapshot; and directing future data write requests for the parent snapshot to the writable snapshot instead of the parent snapshot or the read snapshot, wherein a particular data item that is not in the writable snapshot is copied to the writable snapshot from the parent snapshot upon a request to modify the particular data item. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a processor to handle computing instructions; and a computer readable medium comprising executable code that is executable by the processor for identifying a parent snapshot of a virtual disk;
creating a read snapshot of the parent snapshot, wherein the read snapshot is accessed in place of the parent snapshot without immediately copying all contents of the parent snapshot to the read snapshot;
designating the read snapshot as a copy of the parent snapshot, wherein future data requests for the parent snapshot are directed to the read snapshot, the contents of the parent snapshot are copied to the read snapshot at a later time after creating the read snapshot;
creating a writable snapshot of the parent snapshot, in which modifications are made to data items of the writable snapshot, wherein the writable snapshot can be accessed without immediately copying all of the contents of the parent snapshot to the writable snapshot, wherein an unchanged data item of the parent snapshot is copied to the writable snapshot at a later time after creating the writable snapshot and directing future data write requests for the parent snapshot to the writable snapshot instead of the parent snapshot or the read snapshot, wherein a particular data item that is not in the writable snapshot is copied to the writable snapshot from the parent snapshot upon a request to modify the particular data item. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product embodied on a computer usable medium, the computer usable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method, the method comprising:
-
identifying a parent snapshot of a virtual disk; creating a read snapshot of the parent snapshot, wherein the read snapshot is accessed in place of the parent snapshot without immediately copying all contents of the parent snapshot to the read snapshot; designating the read snapshot as a copy of the parent snapshot, wherein future data requests for the parent snapshot are directed to the read snapshot, the contents of the parent snapshot are copied to the read snapshot at a later time after creating the read snapshot; creating a writable snapshot of the parent snapshot, in which modifications are made to data items of the writable snapshot, wherein the writable snapshot can be accessed without immediately copying all of the contents of the parent snapshot to the writable snapshot, wherein an unchanged data item of the parent snapshot is copied to the writable snapshot at a later time after creating the writable snapshot; and directing future data write requests for the parent snapshot to the writable snapshot instead of the parent snapshot or the read snapshot, wherein a particular data item that is not in the writable snapshot is copied to the writable snapshot from the parent snapshot upon a request to modify the particular data item. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification