IP Library Granted Patent US 11,853,780
Granted Patent B2
US 11,853,780 · App. 17/705,176 · Granted Dec 26, 2023

Architecture for managing I/O and storage for a virtualization environment

Inventors: Mohit Aron (Saratoga, CA); Dheeraj Pandey (San Ramon, CA); Ajeet Singh (Cupertino, CA)
Assignee: Nutanix, Inc.
G06F9/455G06F3/06G06F3/064G06F3/0638G06F3/0641G06F9/45533G06F9/45558G06F9/48G06F9/485G06F9/4806G06F9/4843G06F9/4856G06F9/4881G06F9/50G06F9/5005G06F9/5011G06F9/5016G06F9/5022G06F9/5027G06F9/5061G06F9/5072G06F9/5077G06F9/5083G06F9/5088G06F16/128G06F16/1748G06F16/1873H04L49/356G06F2009/4557G06F2009/45562G06F2009/45575G06F2009/45579G06F2009/45583G06F2009/45595
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 11,853,780
App. No.
17/705,176
Filed
Mar 25, 2022
Granted
Dec 26, 2023
Kind
B2
Art Unit
2196
USPC
718/1
Abstract

Disclosed is an improved approach to implement I/O and storage device management in a virtualization environment. According to some approaches, a Service VM is employed to control and manage any type of storage device, including directly attached storage in addition to networked and cloud storage. The Service VM implements the Storage Controller logic in the user space, and can be migrated as needed from one node to another. IP-based requests are used to send I/O request to the Service VMs. The Service VM can directly implement storage and I/O optimizations within the direct data access path, without the need for add-on products.

Claims (47)

1. A non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes a set of acts comprising:

receiving a request to write a data item into a virtual disk configured within a storage pool of a virtualization system, wherein the storage pool incorporates storage that is locally attached to respective nodes, the request being received from a virtual machine,

wherein

the virtualization system comprises a first storage controller on a first node of the respective nodes, the first storage controller being communicatively coupled to a second storage controller on a second node of the respective nodes, the first and second storage controllers implementing logic to virtualize storage of devices used to create the storage pool, and

the storage pool comprising at least a first local storage of the first node, and a second local storage of the second node, and

writing the data item into the virtual disk in the storage pool.

2. The computer readable medium of claim 1 , wherein the data item is stored as a block, the block being stored on a storage device that is locally attached to a respective node of the respective nodes that form the storage pool.

3. The computer readable medium of claim 2 , wherein the block is referenced by the virtual disk, and a location of the data item stored in the virtual disk is maintained in metadata for the storage pool.

4. The computer readable medium of claim 1 , wherein the data item is stored as an extent, the extent being stored on a storage device that is locally attached to a respective node the of the respective nodes that form the storage pool.

5. The computer readable medium of claim 4 , wherein the extent is referenced by the virtual disk, and a location of the data item stored in the virtual disk is maintained in metadata for the storage pool.

6. The computer readable medium of claim 1 , wherein the request to write the data item is managed by at least the first storage controller on the first node.

7. The computer readable medium of claim 6 , wherein the first storage controller on the first node transmits the request to the second storage controller on the second node to service the request to write the data item.

8. The computer readable medium of claim 6 , wherein the first storage controller processes a request to access the data item from a second virtual machine on the second node.

9. The computer readable medium of claim 1 , wherein the first storage controller on the first node manages data in the virtual disk configured within the storage pool of the virtualization system by maintaining at least a subset of the virtual disk on the first local storage of the first node, and the subset of the virtual disk on the first local storage of the first node includes the data item.

10. The computer readable medium of claim 1 , wherein the first storage controller processes all write requests to the virtual disk.

11. A method comprising:

receiving a request to write a data item into a virtual disk configured within a storage pool of a virtualization system, wherein the storage pool incorporates storage that is locally attached to respective nodes, the request being received from a virtual machine,

wherein

the virtualization system comprises a first storage controller on a first node of the respective nodes, the first storage controller being communicatively coupled to a second storage controller on a second node of the respective nodes, the first and second storage controllers implementing logic to virtualize storage of devices used to create the storage pool, and

the storage pool comprising at least a first local storage of the first node and a second local storage of the second node, and

writing the data item into the virtual disk in the storage pool.

12. The method of claim 11 , wherein the data item is stored as a block, the block being stored on a storage device that is locally attached to a respective node of the respective nodes that form the storage pool.

13. The method of claim 12 , wherein the block is referenced by the virtual disk, and a location of the data item stored in the virtual disk is maintained in metadata for the storage pool.

14. The method of claim 11 , wherein the data item is stored as an extent, the extent being stored on a storage device that is locally attached to a respective node the of the respective nodes that form the storage pool.

15. The method of claim 14 , wherein the extent is referenced by the virtual disk, and a location of the data item stored in the virtual disk is maintained in metadata for the storage pool.

16. The method of claim 11 , wherein the request to write the data item is managed by at least the first storage controller on the first node.

17. The method of claim 16 , wherein the first storage controller on the first node transmits the request to the second storage controller on the second node to service the request to write the data item.

18. The method of claim 16 , wherein the first storage controller processes a request to access the data item from a second virtual machine on the second node.

19. The method of claim 11 , wherein the first storage controller on the first node manages data in the virtual disk configured within the storage pool of the virtualization system by maintaining at least a subset of the virtual disk on the first local storage of the first node, and the subset of the virtual disk on the first local storage of the first node includes the data item.

20. The method of claim 11 , wherein the first storage controller processes all write requests to the virtual disk.

21. A computing system comprising:

a memory having stored thereon a sequence of instructions; and

a processor that executes the sequence of instructions to cause a set of acts comprising:

receiving a request to write a data item into a virtual disk configured within a storage pool of a virtualization system, wherein the storage pool incorporates storage that is locally attached to respective nodes, the request being received from a virtual machine,

wherein

the virtualization system comprises a first storage controller on a first node of the respective nodes, the first storage controller being communicatively coupled to a second storage controller on a second node of the respective nodes, the first and second storage controllers implementing logic to virtualize storage of devices used to create the storage pool, and

the storage pool comprising at least a first local storage of the first node and a second local storage of the second node, and

writing the data item into the virtual disk in the storage pool.

22. The computing system of claim 21 , wherein the data item is stored as a block, the block being stored on a storage device that is locally attached to a respective node of the respective nodes that form the storage pool.

23. The computing system of claim 22 , wherein the block is referenced by the virtual disk, and a location of the data item stored in the virtual disk is maintained in metadata for the storage pool.

24. The computing system of claim 21 , wherein the data item is stored as an extent, the extent being stored on a storage device that is locally attached to a respective node the of the respective nodes that form the storage pool.

25. The computing system of claim 24 , wherein the extent is referenced by the virtual disk, and a location of the data item stored in the virtual disk is maintained in metadata for the storage pool.

26. The computing system of claim 21 , wherein the request to write the data item is managed by at least the first storage controller on the first node.

27. The computing system of claim 26 , wherein the first storage controller on the first node transmits the request to the second storage controller on the second node to service the request to write the data item.

28. The computing system of claim 26 , wherein the first storage controller processes a request to access the data item from a second virtual machine on the second node.

29. The computing system of claim 21 , wherein the first storage controller on the first node manages data in the virtual disk configured within the storage pool of the virtualization system by maintaining at least a subset of the virtual disk on the first local storage of the first node, and the subset of the virtual disk on the first local storage of the first node includes the data item.

30. The computing system of claim 21 , wherein the first storage controller processes all write requests to the virtual disk.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2023
From: ARON, MOHIT; PANDEY, DHEERAJ; SINGH, AJEET
To: NUTANIX, INC.
Reel/Frame 065396/0354 →