Efficient virtual IP address management for service clusters
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.
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.