IP Library Granted Patent US 10,359,952
Granted Patent B1
US 10,359,952 · App. 14/684,901 · Granted Jul 23, 2019

Method and system for implementing writable snapshots in a virtualized storage environment

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,359,952
App. No.
14/684,901
Filed
Apr 13, 2015
Granted
Jul 23, 2019
Kind
B1
Examiner
KIM, TAELOR
Art Unit
2156
USPC
707/610
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.

Claims (33)

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.

2. The method of claim 1 , in which metadata is used to track referencing between the read snapshot or the writable snapshot and the parent snapshot of the virtual disk.

3. The method of claim 2 , wherein the metadata comprises a first map corresponding to the virtual disk, a second map corresponding to extent identifiers, and a third map corresponding to groups of extents, and the read snapshot or the writable snapshot corresponds to entries within the metadata, wherein the virtual disk is exposed as a set of addressable storage units corresponding to a plurality of virtual disks structured from a global pool that comprises a local storage device on a first node and local storage device on a second node, the second node being different from the first node.

4. The method of claim 3 in which the writable snapshot corresponds to an extent group, and in which a first entry is made in the first map that corresponds to an identifier for the extent group to a virtual disk name for the writable snapshot, a second entry is made in the second map that corresponds to an extent group identifier for the extent group for the writable snapshot, and a third entry is made in the third map that corresponds to the extent group for the writable snapshot.

5. The method of claim 2 , in which the metadata is copied to the writable snapshot from the parent snapshot instead of actual data.

6. The method of claim 1 , in which a data item is copied from the parent snapshot to the read snapshot upon a need to access the data item in the read snapshot.

7. The method of claim 1 , in which a first portion of the data item exists in the writable snapshot and a second portion of the data item is referenced to the parent snapshot.

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.

9. The system of claim 8 , in which metadata is used to track referencing between the read snapshot or the writable snapshot and the parent snapshot of the virtual disk.

10. The system of claim 9 , wherein the metadata comprises a first map corresponding to the virtual disk, a second map corresponding to extent identifiers, and a third map corresponding to groups of extents, and the read snapshot or the writable snapshot corresponds to entries within the metadata, wherein the virtual disk is exposed as a set of addressable storage units corresponding to a plurality of virtual disks structured from a global pool that comprises a local storage device on a first node and local storage device on a second node, the second node being different from the first node.

11. The system of claim 10 , in which the writable snapshot corresponds to an extent group, and in which a first entry is made in the first map that corresponds to an identifier for the extent group to a virtual disk name for the writable snapshot, a second entry is made in the second map that corresponds to an extent group identifier for the extent group for the writable snapshot, and a third entry is made in the third map that corresponds to the extent group for the writable snapshot.

12. The system of claim 9 , in which the metadata is copied to the writable snapshot from the parent snapshot instead of actual data.

13. The system of claim 8 , in which a data item is copied from the parent snapshot to the read snapshot upon a need to access the data item in the read snapshot.

14. The system of claim 8 , in which a first portion of the data item exists in the writable snapshot and a second portion of the data item is referenced to the parent snapshot.

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.

16. The computer program product of claim 15 , in which metadata is used to track referencing between the read snapshot or the writable snapshot and the parent snapshot of the virtual disk.

17. The computer program product of claim 16 , wherein the metadata comprises a first map corresponding to the virtual disk, a second map corresponding to extent identifiers, and a third map corresponding to groups of extents, and the read snapshot or the writable snapshot corresponds to entries within the metadata, wherein the virtual disk is exposed as a set of addressable storage units corresponding to a plurality of virtual disks structured from a global pool that comprises a local storage device on a first node and local storage device on a second node, the second node being different from the first node.

18. The computer program product of claim 17 , in which the writable snapshot corresponds to an extent group, and in which a first entry is made in the first map that corresponds to an identifier for the extent group to a virtual disk name for the writable snapshot, a second entry is made in the second map that corresponds to an extent group identifier for the extent group for the writable snapshot, and a third entry is made in the third map that corresponds to the extent group for the writable snapshot.

19. The computer program product of claim 16 , in which the metadata is copied to the writable snapshot from the parent snapshot instead of actual data.

20. The computer program product of claim 15 , in which a data item is copied from the parent snapshot to the read snapshot upon a need to access the data item in the read snapshot.

21. The computer program product of claim 15 , in which a first portion of the data item exists in the writable snapshot and a second portion of the data item is referenced to the parent snapshot.

Assignments (4)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
RELEASE OF SECURITY INTEREST Recorded Sep 28, 2016
From: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
To: NUTANIX, INC.
Reel/Frame 040168/0586 →
SECURITY INTEREST Recorded Apr 15, 2016
From: NUTANIX, INC.
To: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
Reel/Frame 038440/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2015
From: ARON, MOHIT; BYRNE, BRIAN
To: NUTANIX, INC.
Reel/Frame 037018/0592 →