IP Library Granted Patent US 9,998,530
Granted Patent B2
US 9,998,530 · App. 14/054,716 · Granted Jun 12, 2018

Distributed global load-balancing system for software-defined data centers

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,998,530
App. No.
14/054,716
Granted
Jun 12, 2018
Kind
B2
Abstract

The disclosure herein describes a system for providing distributed global server load balancing (GSLB) over resources across multiple data centers. The system includes a directory group comprising one or more directory nodes and a plurality of GSLB nodes registered to the directory group. A respective GSLB node is configured to provide GSLB services over a respective portion of the resources. A directory node includes a domain name system (DNS) query-receiving module configured to receive a DNS query from a client, a node-selecting module configured to select from the plurality of GSLB nodes a first GSLB node based at least on the DNS query, and a DNS query-responding module configured to respond to the DNS query to the client using an address of the selected first GSLB node, thereby facilitating the selected first GSLB node in performing GSLB while resolving the DNS query.

Claims (67)

1. A computer-implemented method for providing distributed global server load balancing (GSLB) over resources across multiple data centers, comprising:

registering, at a directory node, a plurality of GSLB nodes,

wherein a respective GSLB node is configured to provide GSLB services over a respective portion of the resources, and

wherein the directory node belongs to a directory group comprising multiple state-synchronized directory nodes;

receiving, at the directory node, a first domain name system (DNS) query from a client;

selecting, from the plurality of GSLB nodes, a first GSLB node based at least on the first DNS query; and

responding to the first DNS query with a DNS response that identifies the selected first GSLB node as a name server, wherein the client sends a second DNS query to the selected first GSLB node, wherein the selected first GSLB node performs GSLB in order to resolve the second DNS query.

2. The method of claim 1 , wherein registering the respective GSLB node comprises receiving, at the directory node, metadata associated with the respective GSLB node, and wherein the metadata comprises one or more of:

a node ID;

an Internet Protocol (IP) address;

a location; and

one or more domain names supported by the respective GSLB node.

3. The method of claim 2 , wherein selecting the first GSLB node comprises looking up a mapping between the registered GSLB nodes and domain names supported by the registered GSLB nodes.

4. The method of claim 2 , wherein selecting the first GSLB node further comprises:

determining a location of the client;

determining locations of the plurality of GSLB nodes; and

determining health status of the plurality of GSLB nodes.

5. The method of claim 1 , wherein the data centers include:

physical data centers; and

software-defined data centers.

6. The method of claim 1 , further comprising:

sending, from the directory node, a replica command to the respective GSLB node, wherein the replica command prompts the respective GSLB node to send replica data to one or more different GSLB nodes, wherein the replica data includes GSLB configurations and runtime data associated with the respective GSLB nodes, thereby enabling failover to the one or more different GSLB nodes when the respective GSLB node fails.

7. The method of claim 1 , wherein the multiple directory nodes are placed at different data centers.

8. A non-transitory computer-readable storage medium storing a program that when executed by a set of processing units provide distributed global server load balancing (GSLB) over resources across multiple data centers, the program comprising sets of instructions for:

registering, at a directory node, a plurality of GSLB nodes,

wherein a respective GSLB node is configured to provide GSLB services over a respective portion of the resources, and

wherein the directory node belongs to a directory group comprising multiple state-synchronized directory nodes;

receiving, at the directory node, a first domain name system (DNS) query from a client;

selecting, from the plurality of GSLB nodes, a first GSLB node based at least on the first DNS query; and

responding to the first DNS query with a DNS response that identifies the selected first GSLB node as a name server, wherein the client sends a second DNS query to the selected first GSLB node, wherein the selected first GSLB node performs GSLB in order to resolve the second DNS query.

9. The storage medium of claim 8 , wherein the set of instructions for registering the respective GSLB node comprises a set of instructions for receiving, at the directory node, metadata associated with the respective GSLB node, and wherein the metadata comprises one or more of:

a node ID;

an Internet Protocol (IP) address;

a location; and

one or more domain names supported by the respective GSLB node.

10. The storage medium of claim 9 , wherein the set of instructions for selecting the first GSLB node comprises a set of instructions for looking up a mapping between the registered GSLB nodes and domain names supported by the registered GSLB nodes.

11. The storage medium of claim 9 , wherein the set of instructions for selecting the first GSLB node further comprises sets of instructions for:

determining a location of the client;

determining locations of the plurality of GSLB nodes; and

determining health status of the plurality of GSLB nodes.

12. The storage medium of claim 8 , wherein the data centers include:

physical data centers; and

software-defined data centers.

13. The storage medium of claim 8 , wherein the program further comprises a set of instructions for sending, from the directory node, a replica command to the respective GSLB node, wherein the replica command prompts the respective GSLB node to send replica data to one or more different GSLB nodes, wherein the replica data includes GSLB configurations and runtime data associated with the respective GSLB nodes, thereby enabling failover to the one or more different GSLB nodes when the respective GSLB node fails.

14. A system for providing distributed global server load balancing (GSLB) over resources across multiple data centers, comprising:

a directory group comprising multiple state synchronized directory nodes; and

a plurality of GSLB nodes registered to the directory group, wherein a respective GSLB node is configured to provide GSLB services over a respective portion of the resources;

wherein a directory node, stored on a non-transitory machine readable medium of a computer and executed by a set of processors of the computer, comprises:

a domain name system (DNS) query-receiving module configured to receive a first DNS query from a client;

a node-selecting module configured to select, from the plurality of GSLB nodes, a first GSLB node based at least on the first DNS query; and

a DNS query-responding module configured to respond to the first DNS query with a DNS response that identifies the selected first GSLB node as a name server, wherein the client sends a second DNS query to the selected first GSLB node, wherein the selected first GSLB node performs GSLB in order to resolve the DNS query.

15. The system of claim 14 , wherein the directory node further comprises a directory database configured to store metadata associated with the plurality of GSLB nodes, wherein the metadata includes a mapping between the plurality of GSLB nodes and domain names supported by the plurality of GSLB nodes.

16. The system of claim 15 , wherein the metadata further comprises individual entries corresponding to individual GSLB nodes, wherein a respective entry corresponding to the respective GSLB node includes one or more of:

a node ID;

an Internet Protocol (IP) address;

a location; and

health status.

17. The system of claim 16 , wherein while selecting the first GSLB node, the node-selecting module is further configured to:

determine a location of the client;

determine locations of the plurality of nodes; and

determine health status of the registered GSLB nodes.

18. The system of claim 14 , wherein the data centers include:

physical data centers; and

software-defined data centers.

19. The system of claim 14 , wherein the respective GSLB node further comprises a replica module configured to:

receive, from the directory node, a replica command; and

in response to receiving the replica command, send replica data to one or more different GSLB nodes, wherein the replica data includes GSLB configurations and runtime data associated with the respective GSLB nodes, thereby enabling failover to the one or more different GSLB nodes when the respective GSLB node fails.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2015
From: CUI, LIANG; XU, HAILING; CHEN, DONGPING
To: NICIRA, INC.
Reel/Frame 035694/0984 →