IP Library Granted Patent US 9,389,887
Granted Patent B1
US 9,389,887 · App. 13/744,649 · Granted Jul 12, 2016

Method and system for managing de-duplication of data in a virtualization 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,389,887
App. No.
13/744,649
Filed
Jan 18, 2013
Granted
Jul 12, 2016
Kind
B1
Art Unit
2196
USPC
718/1
Abstract

A system for managing de-duplication of data in a virtualization environment, that includes a plurality of nodes, wherein the plurality of nodes implements a virtualization environment, a plurality of primary storage devices that are accessed by virtual machines in the virtualization environment, and wherein data undergoes de-duplication in the virtualization environment such that an instruction to store a data item that is issued by a virtual machine is not duplicatively stored if the data item is already stored in the plurality of the primary storage devices.

Claims (24)

1. A system for managing de-duplication of data in a virtualization environment, comprising:

a plurality of nodes having multiple storage controllers implemented as virtual machines, the multiple storage controllers distributed across multiple nodes, wherein the plurality of nodes implements a virtualization environment;

a plurality of primary storage devices that are accessed by virtual machines in the virtualization environment, wherein the plurality of primary storage devices are managed by the multiple storage controllers; and

wherein the plurality of primary storage devices correspond to a global storage pool having a local storage device on a first node of the plurality of nodes and a local storage device on a second node of the plurality of nodes, the second node being different from the first node, and wherein a virtual disk is exposed to the virtual machines as a set of addressable storage units corresponding to a plurality of virtual disks structured from the global storage pool and data within the set of addressable storage units is organized as extents and the extents are grouped within extent groups, wherein data undergoes de-duplication in the virtualization environment such that an instruction issued by a virtual machine to store a data item does not result in the data item being duplicatively stored if the data item is already stored in the global storage pool, and de-duplication is enabled on an extent group basis.

2. The system of claim 1 , in which a new extent is created to store the data item if the data item does not correspond to the extent that already exists.

3. The system of claim 1 , in which fingerprinting determines whether the data item is already stored in the plurality of the primary storage devices.

4. The system of claim 1 , further comprising a counter that is maintained to correspond to a de-duplicated copy of the data item.

5. The system of claim 4 , in which the counter identifies whether or how many entities are relying upon the de-duplicated copy of the data item, wherein each new entity relying on the de-duplicated copy causes an increment to the counter and each entity that no longer relies on the de-duplicated copy causes a decrement to the counter.

6. The system of claim 1 , in which a service virtual machine (VM) implements the de-duplication.

7. The system of claim 1 , in which the de-duplication is directly performed when storing the data item within the primary storage devices.

8. A method for implementing de-duplication in a virtualization environment, comprising:

receiving an instruction by a virtual machine to store a data item in a virtualization environment, the virtualization environment implemented by a plurality of nodes having multiple storage controllers implemented as virtual machines distributed across the plurality of nodes, the multiple storage controllers managing a plurality of primary storage devices that are accessed by virtual machines in the virtualization environment to store data; and

performing de-duplication on data in the virtualization environment such that an instruction issued by a virtual machine to store a data item to a virtual disk does not result in the data item being duplicatively stored if the data item is already stored in a global storage pool having a local storage device on a first node of the plurality of nodes and a local storage device on a second node of the plurality of nodes, the second node being different from the first node, wherein the virtual disk is exposed to the virtual machines as a set of addressable storage units corresponding to a plurality of virtual disks structured from the global storage pool and data within the set of addressable storage units is organized as extents, and the extents are grouped within extent groups, and de-duplication is enabled on an extent group basis.

9. The method of claim 8 , in which a new extent is created to store the data item if the data item does not correspond to the extent that already exists.

10. The method of claim 8 , in which fingerprinting is performed on the data item to determine whether the data item is already stored in the plurality of the primary storage devices.

11. The method of claim 8 , in which a counter is maintained to correspond to a de-duplicated copy of the data item.

12. The method of claim 11 , in which the counter identifies whether or how many entities are relying upon the de-duplicated copy of the data item, wherein each new entity relying on the de-duplicated copy causes an increment to the counter and each entity that no longer relies on the de-duplicated copy causes a decrement to the counter.

13. 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 implementing de-duplication in a virtualization environment, the method comprising:

receiving an instruction by a virtual machine to store a data item in a virtualization environment, the virtualization environment implemented by a plurality of nodes having multiple storage controllers implemented as virtual machines distributed across the plurality of nodes, the multiple storage controllers managing a plurality of primary storage devices that are accessed by virtual machines in the virtualization environment to store data; and

performing de-duplication on data in the virtualization environment such that an instruction issued by a virtual machine to store a data item to a virtual disk does not result in the data item being duplicatively stored if the data item is already stored in a global storage pool having a local storage device on a first node of the plurality of nodes and a local storage device on a second node of the plurality of nodes, the second node being different from the first node, wherein the virtual disk is exposed to the virtual machines as a set of addressable storage units corresponding to a plurality of virtual disks structured from the global storage pool and data within the set of addressable storage units is organized as extents, and the extents are grouped within extent groups, and de-duplication is enabled on an extent group basis.

14. The computer program product of claim 13 , in which a new extent is created to store the data item if the data item does not correspond to the extent that already exists.

15. The computer program product of claim 13 , in which fingerprinting is performed on the data item to determine whether the data item is already stored in the plurality of the primary storage devices.

16. The computer program product of claim 13 , in which a counter is maintained to correspond to a de-duplicated copy of the data item.

17. The computer program product of claim 16 , in which the counter identifies whether or how many entities are relying upon the de-duplicated copy of the data item, wherein each new entity relying on the de-duplicated copy causes an increment to the counter and each entity that no longer relies on the de-duplicated copy causes a decrement to the counter.

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 Feb 25, 2013
From: ARON, MOHIT; PANDEY, DHEERAJ; SINGH, AJEET
To: NUTANIX, INC.
Reel/Frame 029870/0915 →