IP Library Granted Patent US 9,720,921
Granted Patent B1
US 9,720,921 · App. 14/278,429 · Granted Aug 1, 2017

Mapping structure for maintaining metadata for 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 9,720,921
App. No.
14/278,429
Filed
May 15, 2014
Granted
Aug 1, 2017
Kind
B1
Examiner
WU, YICUN
Art Unit
2153
USPC
707/639
Abstract

A method for maintaining a mapping structure for maintaining metadata for snapshots in a virtualized storage environment, includes taking a snapshot of a virtual disk, generating an entry in a metadata structure for the snapshot, wherein the entry includes metadata for blocks in the snapshot that have been modified since a preceding snapshot and lazily generating an entry in the mapping structure for the snapshot, wherein the entry includes values for each block in the snapshot, wherein a value for a block indicates a presence of metadata in the metadata structure for the block or an absence of metadata in the metadata structure for the block.

Claims (50)

1. A method for maintaining a mapping structure for maintaining metadata for snapshots in a virtualized storage environment, comprising:

taking a snapshot of a virtual disk;

generating an entry in a metadata structure for the snapshot, wherein the entry includes metadata for blocks in the snapshot that have been modified since a preceding snapshot, wherein the metadata comprise information indicating locations of physical data associated with the blocks in the snapshot; and

lazily generating an entry in the mapping structure for the snapshot, wherein the entry includes values for each block in the snapshot, wherein a value for a block indicates a presence of metadata in the metadata structure for the block or an absence of metadata in the metadata structure for the block, the value for the block is either an on-bit or an off-bit, wherein a background process lazily generates the entry in the mapping structure for the snapshot at a later time after taking the snapshot.

2. The method of claim 1 , wherein taking the snapshot of the virtual disk comprises:

providing a name and version number for the snapshot;

marking the snapshot immutable; and

causing a live version of the virtual disk to be a child of the snapshot.

3. The method of claim 1 , wherein the mapping structure is a bitmap.

4. The method of claim 1 , wherein the metadata structure is a vDisk Block Map and the mapping structure is a vDisk Block Bitmap.

5. The method of claim 1 , wherein an on-bit for the block indicates the presence of metadata for the block in the metadata structure for the snapshot and an ID of a parent snapshot for the block for the snapshot indicates the absence of metadata for the block in the metadata structure for the snapshot.

6. The method of claim 1 , wherein an I/O request on the virtual disk causes the mapping structure to be consulted for determining which entries in the metadata structure include the needed metadata.

7. The method of claim 1 , wherein the entry in the mapping structure is merged with one or more other entries in the mapping structure in response to corresponding snapshots of the virtual disk being merged.

8. The method of claim 7 , wherein merging the entries in the mapping structure comprises collapsing values for each block in the entries into a nearest child entry that will remain after the merge is complete.

9. The method of claim 7 , wherein the entry is merged with one other entry.

10. The method of claim 7 , wherein the entry is merged with a group of other entries.

11. A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for maintaining a mapping structure for maintaining metadata for snapshots in a virtualized storage environment, comprising:

taking a snapshot of a virtual disk;

generating an entry in a metadata structure for the snapshot, wherein the entry includes metadata for blocks in the snapshot that have been modified since a preceding snapshot, wherein the metadata comprise information indicating locations of physical data associated with the blocks in the snapshot; and

lazily generating an entry in the mapping structure for the snapshot, wherein the entry includes values for each block in the snapshot, wherein a value for a block indicates a presence of metadata in the metadata structure for the block or an absence of metadata in the metadata structure for the block, the value for the block is either an on-bit or an off-bit, wherein a background process lazily generates the entry in the mapping structure for the snapshot at a later time after taking the snapshot.

12. The computer program product of claim 11 , wherein taking the snapshot of the virtual disk comprises:

providing a name and version number for the snapshot;

marking the snapshot immutable; and

causing a live version of the virtual disk to be a child of the snapshot.

13. The computer program product of claim 11 , wherein the mapping structure is a bitmap.

14. The computer program product of claim 11 , wherein the metadata structure is a vDisk Block Map and the mapping structure is a vDisk Block Bitmap.

15. The computer program product of claim 11 , wherein an on-bit for the block indicates the presence of metadata for the block in the metadata structure for the snapshot and an ID of a parent snapshot for the block for the snapshot indicates the absence of metadata for the block in the metadata structure for the snapshot.

16. The computer program product of claim 11 , wherein an I/O request on the virtual disk causes the mapping structure to be consulted for determining which entries in the metadata structure include the needed metadata.

17. The computer program product of claim 11 , wherein the entry in the mapping structure is merged with one or more other entries in the mapping structure in response to corresponding snapshots of the virtual disk being merged.

18. The computer program product of claim 17 , wherein merging the entries in the mapping structure comprises collapsing values for each block in the entries into a nearest child entry that will remain after the merge is complete.

19. The computer program product of claim 17 , wherein the entry is merged with one other entry.

20. The computer program product of claim 17 , wherein the entry is merged with a group of other entries.

21. A system, comprising:

a processor; and

a memory comprising computer code executed using the processor, in which the computer code implements a method for maintaining a mapping structure for maintaining metadata for snapshots in a virtualized storage environment, the method comprising:

taking a snapshot of a virtual disk,

generating an entry in a metadata structure for the snapshot, wherein the entry includes metadata for blocks in the snapshot that have been modified since a preceding snapshot, wherein the metadata comprise information indicating locations of physical data associated with the blocks in the snapshot, and

lazily generating an entry in the mapping structure for the snapshot, wherein the entry includes values for each block in the snapshot, wherein a value for a block indicates a presence of metadata in the metadata structure for the block or an absence of metadata in the metadata structure for the block, the value for the block is either an on-bit or an off-bit, wherein a background process lazily generates the entry in the mapping structure for the snapshot at a later time after taking the snapshot.

22. The system of claim 21 , wherein taking the snapshot of the virtual disk comprises:

providing a name and version number for the snapshot;

marking the snapshot immutable; and

causing a live version of the virtual disk to be a child of the snapshot.

23. The system of claim 21 , wherein the mapping structure is a bitmap.

24. The system of claim 23 , wherein the metadata structure is a vDisk Block Map and the mapping structure is a vDisk Block Bitmap.

25. The system of claim 21 , wherein an on-bit for the block indicates the presence of metadata for the block in the metadata structure for the snapshot and an ID of a parent snapshot for the block for the snapshot indicates the absence of metadata for the block in the metadata structure for the snapshot.

26. The system of claim 21 , wherein an I/O request on the virtual disk causes the mapping structure to be consulted for determining which entries in the metadata structure include the needed metadata.

27. The system of claim 21 , wherein the entry in the mapping structure is merged with one or more other entries in the mapping structure in response to corresponding snapshots of the virtual disk being merged.

28. The system of claim 27 , wherein merging the entries in the mapping structure comprises collapsing values for each block in the entries into a nearest child entry that will remain after the merge is complete.

29. The system of claim 27 , wherein the entry is merged with one other entry.

30. The system of claim 27 , wherein the entry is merged with a group of other entries.

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 Jul 31, 2015
From: BHATTACHARYYA, MANOSIZ; KHOT, VINAYAK HINDURAO; MEMON, TABREZ PARVEZ; MUTHUKKARUPPAN, KANNAN
To: NUTANIX, INC.
Reel/Frame 036231/0815 →