IP Library Granted Patent US 12,316,702
Granted Patent B2
US 12,316,702 · App. 18/432,963 · Granted May 27, 2025

Efficient virtual IP address management for service clusters

Inventors: Harshit Agarwal (Newark, CA); Tabrez Parvez Memon (Campbell, CA)
Assignee: Nutanix, Inc.
H04L67/1034H04L43/0817H04L43/12H04L61/103H04L67/1036H04L2101/622
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 12,316,702
App. No.
18/432,963
Filed
Feb 5, 2024
Granted
May 27, 2025
Kind
B2
Art Unit
2459
USPC
709/223
Abstract

One embodiment of the present invention provides a system that can manage access to a service from a cluster of computing nodes. An instance of the system can operate on a respective computing node. During operation, the system instance can identify an Internet Protocol (IP) address, which provides access to the service from the cluster of computing nodes to a client device at a client site. The system instance can select the computing node for hosting the IP address in the cluster of computing nodes based on a set of selection criteria. The selection is performed independently at the computing node. The system instance can then assign the IP address to the computing node. The assignment allows a request for the service to be directed to the computing node. Subsequently, the system instance can facilitate the service from the cluster of computing nodes based on the request.

Claims (58)

1. A method for managing services provided by a plurality of computing nodes, comprising:

identifying an Internet Protocol (IP) address associated with the plurality of computing nodes providing different types of services which include at least a storage service and a Hypertext Transfer Protocol (HTTP) based service;

selecting a first computing node in the plurality of computing nodes based on a set of selection criteria;

assigning the IP address to the first computing node, thereby allowing a request based on the IP address for a respective service provided by the computing nodes to be directed to the first computing node; and

facilitating a first service provided by the computing nodes based on the request.

2. The method of claim 1 , wherein the plurality of computing nodes includes at least one storage server facilitating the storage service based on a storage application accessible via the IP address.

3. The method of claim 1 , wherein the plurality of computing nodes includes at least one database server executing a database application accessible via the IP address.

4. The method of claim 1 , further comprising sending a gratuitous address resolution protocol (ARP) request with the IP address to the client site for clearing a respective local ARP cache.

5. The method of claim 1 , further comprising:

performing a monitoring service to determine operational status of the different types of services; and

in response to determining a disruption to a service, restarting the service.

6. The method of claim 5 , wherein the disrupted service is the first service, and wherein the method further comprises un-hosting the IP address from the first computing node.

7. The method of claim 6 , further comprising:

initiating a lock on the monitoring service;

performing a clean-up operation on the IP address; and

restarting the monitoring service.

8. The method of claim 1 , further comprising:

selecting a second computing node in the cluster of computing nodes for hosting the first IP address; and

un-hosting the IP address from the first computing node, thereby allowing the second computing node to host the IP address.

9. The method of claim 1 , further comprising

determining whether the IP address is duplicated among the plurality of computing nodes; and

in response to detecting duplication, indicating an error associated with the allocation of the IP address.

10. The method of claim 1 , wherein the selection criteria are based on one or more of:

a lowest address value of a computing node;

a highest address value of the computing node;

a type of service hosted by the computing node;

a load on computing node load; and

a random selection.

11. A non-transitory computer-readable storage medium storing instructions that when executed by a computing system cause the computing system to perform a method for managing services provided by a plurality of computing nodes, the method comprising:

identifying an Internet Protocol (IP) address associated with the plurality of computing nodes providing different types of services which include at least a storage service and a Hypertext Transfer Protocol (HTTP) based service;

selecting a first computing node in the plurality of computing nodes based on a set of selection criteria;

assigning the IP address to the first computing node, thereby allowing a request based on the IP address for a respective service provided by the computing nodes to be directed to the first computing node; and

facilitating a first service provided by the computing nodes based on the request.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the plurality of computing nodes includes at least one storage server facilitating the storage service based on a storage application accessible via the IP address.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the plurality of computing nodes includes at least one database server executing a database application accessible via the IP address.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises sending a gratuitous address resolution protocol (ARP) request with the IP address to the client site for clearing a respective local ARP cache.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises:

performing a monitoring service to determine operational status of the different types of services; and

in response to determining a disruption to a service, restarting the service.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the disrupted service is the first service, and wherein the method further comprises un-hosting the IP address from the first computing node.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the method further comprises:

initiating a lock on the monitoring service;

performing a clean-up operation on the IP address; and

restarting the monitoring service.

18. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises:

selecting a second computing node in the cluster of computing nodes for hosting the first IP address; and

un-hosting the IP address from the first computing node, thereby allowing the second computing node to host the IP address.

19. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises:

determining whether the IP address is duplicated among the plurality of computing nodes; and

in response to detecting duplication, indicating an error associated with the allocation of the IP address.

20. A computing node in a plurality of computing nodes, comprising:

a processor;

a storage device; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method for managing services provided by the plurality of computing nodes, the method comprising:

identifying an Internet Protocol (IP) address associated with the plurality of computing nodes providing different types of services which include at least a storage service and a Hypertext Transfer Protocol (HTTP) based service;

selecting the computing node in the plurality of computing nodes based on a set of selection criteria;

assigning the IP address to the computing node, thereby allowing a request based on the IP address for a respective service provided by the computing nodes to be directed to the computing node; and

facilitating a first service provided by the computing nodes based on the request.

Assignments (1)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
Continuity (3)
Continuation 17135084 · Dec 28, 2020
Provisional Application 62970105 · Feb 4, 2020
Related Publication 20240187479A1 · Jun 6, 2024
References Cited (39)
US 6971044B2 · Geng et al. · 2005 [cited by applicant]
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 10516568B2 · Jain et al. · 2019 [cited by applicant]
US 10601887B2 · Knox · 2020 [cited by examiner]
US 11252148B2 · Zeng · 2022 [cited by examiner]
US 11765219B2 · Gordon · 2023 [cited by examiner]
US 20170237808A1 · Kodaypak · 2017 [cited by examiner]
US 20180067780A1 · Noda · 2018 [cited by examiner]
US 20190372847A1 · Huh · 2019 [cited by examiner]
US 20200057676A1 · Vaikar · 2020 [cited by examiner]
US 20200252459A1 · Bhatia · 2020 [cited by examiner]
US 20200374281A1 · Zeng · 2020 [cited by examiner]
JP 7073475B2 · 2022 [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Oct. 15, 2013), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown); pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 11, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown); pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 20, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown); pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 7, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown); pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown); pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 4, 2015), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 12, 2016), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2016), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2017), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 8, 2017), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2018), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 25, 2018), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 8, 2019), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jul. 25, 2019), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 17, 2019), from https://nutanixbible.com/ pp. all. [cited by applicant]
Cano, Ignacio et al. “Curator: Self-Managing Storage for Enterprise Clusters”; University of Washington; published Mar. 2017; pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 21, 2020), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 14, 2020), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Dec. 31, 2020), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jul. 27, 2022), from https://nutanixbible.com/ pp. all. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 16, 2024), from https://nutanixbible.com/ pp. all. [cited by applicant]
Citrix XenDesktop 7.1 on Microsoft Hyper-V Server 2012 R2 on Nutanix Virtual Computing Platform, Solution Design, Jun. 25, 2014. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 31, 2024), from https://nutanixbible.com/ pp. all. [cited by applicant]