IP Library Granted Patent US 9,699,251
Granted Patent B2
US 9,699,251 · App. 14/276,737 · Granted Jul 4, 2017

Mechanism for providing load balancing to an external node utilizing a clustered environment for storage management

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,699,251
App. No.
14/276,737
Filed
May 13, 2014
Granted
Jul 4, 2017
Kind
B2
Art Unit
2446
USPC
709/226
Abstract

A method for providing load balancing to a client node external to a clustered environment for storage management, includes deploying a lightweight load balancing component at the client node, receiving I/O requests issued by virtual machines hosted at the client node by the lightweight load balancing component, performing a hashing algorithm on content of the I/O requests by the lightweight load balancing component to identify one or more controller virtual machines at the clustered environment for handling the I/O requests and dynamically distributing the I/O requests from the lightweight load balancing component to the one or more controller virtual machines at the clustered environment for storage management.

Claims (56)

1. A method for providing load balancing to a client node external to a clustered environment for storage management, comprising:

identifying a clustered environment having a plurality of nodes, wherein at least some of the plurality of nodes comprise a controller virtual machine functioning as a storage controller for virtual machines hosted at respective nodes, the controller virtual machine working with other controller virtual machines to form a distributed system within the clustered environment to manage a storage pool comprising a plurality of storage resources spread across the at least some of the plurality of nodes;

deploying a load balancing component at the client node, wherein the client node is external to the clustered environment and the client node hosts virtual machines;

receiving I/O requests issued by the virtual machines hosted at the client node by the load balancing component;

performing a hashing algorithm on content of the I/O requests by the load balancing component to identify one or more controller virtual machines at the clustered environment for handling the I/O requests; and

dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment for storage management, wherein the load balancing component maintains metadata related to I/O requests issued by the virtual machines hosted at the client node, the metadata including information pertaining to which controller virtual machines at the clustered environment previously handled I/O requests for virtual machines hosted at the client node.

2. The method of claim 1 , wherein the load balancing component is a process.

3. The method of claim 1 , wherein the load balancing component is a virtual machine.

4. The method of claim 1 , wherein the load balancing component appears as a networked storage server with a corresponding IP address to the virtual machines hosted at the client node.

5. The method of claim 1 , wherein the I/O requests are issued as network file system (NFS) requests.

6. The method of claim 1 , wherein dynamically distributing the I/O requests by the load balancing component comprises identifying a state of the clustered environment for storage management through communication with the one or more controller virtual machines.

7. The method of claim 6 , wherein the state of the clustered environment for storage management includes information pertaining to a number of active controller virtual machines in the clustered environment, a current load of the active controller virtual machines in the clustered environment and a health status of the active controller virtual machines.

8. The method of claim 1 , wherein the metadata includes information pertaining to where data associated with previous I/O requests issued by virtual machines hosted at the client node reside within the clustered environment for storage management.

9. The method of claim 1 , wherein dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment comprises employing a load balancing algorithm to determine which controller virtual machines at the clustered environment the I/O requests should be directed.

10. The method of claim 9 , wherein the load balancing algorithm implements a round robin distribution of the I/O requests.

11. The method of claim 9 , wherein the load balancing algorithm implements a weighted distribution of the I/O requests.

12. The method of claim 1 , wherein dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment comprises distributing I/O requests directed at pieces of data previously serviced by a set of controller virtual machines at the clustered environment to the same set of controller virtual machines at the clustered environment.

13. The method of claim 1 , wherein the content is a file handle.

14. 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 providing load balancing to a client node external to a clustered environment for storage management, comprising:

identifying a clustered environment having a plurality of nodes, wherein at least some of the plurality of nodes comprise a controller virtual machine functioning as a storage controller for virtual machines hosted at respective nodes, the controller virtual machine working with other controller virtual machines to form a distributed system within the clustered environment to manage a storage pool comprising a plurality of storage resources spread across the at least some of the plurality of nodes;

deploying a load balancing component at the client node, wherein the client node is external to the clustered environment and the client node hosts virtual machines;

receiving I/O requests issued by the virtual machines hosted at the client node by the load balancing component;

performing a hashing algorithm on content of the I/O requests by the load balancing component to identify one or more controller virtual machines at the clustered environment for handling the I/O requests; and

dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment for storage management, wherein the load balancing component maintains metadata related to I/O requests issued by the virtual machines hosted at the client node, the metadata including information pertaining to which controller virtual machines at the clustered environment previously handled I/O requests for virtual machines hosted at the client node.

15. The computer program product of claim 14 , wherein the load balancing component is a process.

16. The computer program product of claim 14 , wherein the load balancing component is a virtual machine.

17. The computer program product of claim 14 , wherein the load balancing component appears as a networked storage server with a corresponding IP address to the virtual machines hosted at the client node.

18. The computer program product of claim 14 , wherein the I/O requests are issued as network file system (NFS) requests.

19. The computer program product of claim 14 , wherein dynamically distributing the I/O requests by the load balancing component comprises identifying a state of the clustered environment for storage management through communication with the one or more controller virtual machines.

20. The computer program product of claim 19 , wherein the state of the clustered environment for storage management includes information pertaining to a number of active controller virtual machines in the clustered environment, a current load of the active controller virtual machines in the clustered environment and a health status of the active controller virtual machines.

21. The computer program product of claim 14 , wherein the metadata includes information pertaining to where data associated with previous I/O requests issued by virtual machines hosted at the client node reside within the clustered environment for storage management.

22. The computer program product of claim 14 , wherein dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment comprises employing a load balancing algorithm to determine which controller virtual machines at the clustered environment the I/O requests should be directed.

23. The computer program product of claim 22 , wherein the load balancing algorithm implements a round robin distribution of the I/O requests.

24. The computer program product of claim 22 , wherein the load balancing algorithm implements a weighted distribution of the I/O requests.

25. The computer program product of claim 14 , wherein dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment comprises distributing I/O requests directed at pieces of data previously serviced by a set of controller virtual machines at the clustered environment to the same set of controller virtual machines at the clustered environment.

26. The computer program product of claim 14 , wherein the content is a file handle.

27. A system, comprising:

a processor; and

a memory comprising computer code executed using the processor, in which the computer code implements a method for providing load balancing to a client node external to a clustered environment for storage management, the method comprising:

identifying a clustered environment having a plurality of nodes, wherein at least some of the plurality of nodes comprise a controller virtual machine functioning as a storage controller for virtual machines hosted at respective nodes, the controller virtual machine working with other controller virtual machines to form a distributed system within the clustered environment to manage a storage pool comprising a plurality of storage resources spread across the at least some of the plurality of nodes;

deploying a load balancing component at the client node, wherein the client node is external to the clustered environment and the client node hosts virtual machines;

receiving I/O requests issued by the virtual machines hosted at the client node by the load balancing component;

performing a hashing algorithm on content of the I/O requests by the load balancing component to identify one or more controller virtual machines at the clustered environment for handling the I/O requests; and

dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment for storage management, wherein the load balancing component maintains metadata related to I/O requests issued by the virtual machines hosted at the client node, the metadata including information pertaining to which controller virtual machines at the clustered environment previously handled I/O requests for virtual machines hosted at the client node.

28. The system of claim 27 , wherein the load balancing component is a process.

29. The system of claim 27 , wherein the load balancing component is a virtual machine.

30. The system of claim 27 , wherein the load balancing component appears as a networked storage server with a corresponding IP address to the virtual machines hosted at the client node.

31. The system of claim 27 , wherein the I/O requests are issued as network file system (NFS) requests.

32. The system of claim 27 , wherein dynamically distributing the I/O requests by the load balancing component comprises identifying a state of the clustered environment for storage management through communication with the one or more controller virtual machines.

33. The system of claim 32 , wherein the state of the clustered environment for storage management includes information pertaining to a number of active controller virtual machines in the clustered environment, a current load of the active controller virtual machines in the clustered environment and a health status of the active controller virtual machines.

34. The system of claim 27 , wherein the metadata includes information pertaining to where data associated with previous I/O requests issued by virtual machines hosted at the client node reside within the clustered environment for storage management.

35. The system of claim 27 , wherein dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment comprises employing a load balancing algorithm to determine which controller virtual machines at the clustered environment the I/O requests should be directed.

36. The system of claim 35 , wherein the load balancing algorithm implements a round robin distribution of the I/O requests.

37. The system of claim 35 , wherein the load balancing algorithm implements a weighted distribution of the I/O requests.

38. The system of claim 27 , wherein dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines at the clustered environment comprises distributing I/O requests directed at pieces of data previously serviced by a set of controller virtual machines at the clustered environment to the same set of controller virtual machines at the clustered environment.

39. The system of claim 27 , wherein the content is a file handle.

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 8, 2015
From: CUI, MIAO
To: NUTANIX, INC.
Reel/Frame 036016/0286 →