IP Library › Granted Patent US 8,065,559
Granted Patent B2
US 8,065,559 · App. 12/128,978 · Granted Nov 22, 2011

Systems and methods for load balancing via a plurality of virtual servers upon failover using metrics from a backup virtual server

Assignee: Citrix Systems, Inc.
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 8,065,559
App. No.
12/128,978
Granted
Nov 22, 2011
Kind
B2
Abstract

The present invention provides methods and systems for performing load balancing via a plurality of virtual servers upon a failover using metrics from a backup virtual server. The methods and systems described herein provide systems and methods for an appliance detecting that a first virtual server of a plurality of virtual servers having one or more backup virtual servers load balanced by an appliance is not available, identifying at least a first backup virtual server of a one or more backup virtual servers of the first virtual server is available, maintaining a status of the first virtual server as available in response to the identification, obtaining one or more metrics from the first backup virtual server of a one or more backup virtual servers, and determining the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server associated with the first virtual server.

Claims (41)

1. A method of performing load balancing via a plurality of virtual servers upon a failover using metrics from a backup virtual server, the method comprising the steps of:

(a) detecting, by an appliance executing a first virtual server, that the first virtual server of a plurality of virtual servers load balanced by the appliance is not available, the first virtual server having one or more backup virtual servers;

(b) identifying, by the appliance, that at least a first backup virtual server executing on the appliance of a one or more backup virtual servers of the first virtual server is available;

(c) maintaining, by the appliance, a status of the first virtual server as available in response to the identification;

(d) obtaining, by the appliance, one or more metrics from the first backup virtual server of a one or more backup virtual servers; and

(e) determining, by the appliance, the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server associated with the first virtual server.

2. The method of claim 1 , comprising identifying, by the appliance, the first virtual backup server is unavailable, and obtaining, by the appliance, metrics from the second backup virtual server.

3. The method of claim 2 , comprising determining, by the appliance, the load across the second backup virtual server and the plurality of virtual servers using the metrics obtained from the second backup virtual server.

4. The method of claim 2 , comprising determining, by the appliance, one of the load across the second backup virtual server or the load across the plurality of virtual servers using the metrics obtained from the second backup virtual server.

5. The method of claim 1 , comprising identifying, by the appliance, that the first virtual server is available.

6. The method of claim 5 , comprising determining, by the appliance, the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server.

7. The method of claim 5 , comprising continuing, by the appliance, to transmit requests directed to the first virtual server to the one of the first backup virtual server or the first virtual server.

8. The method of claim 1 , wherein step (e) comprising determining, by the appliance, the load across the plurality of virtual servers using metrics from one or more of a plurality of backup virtual servers.

9. The method of claim 1 , wherein step (f) comprises determining, by a global load balancing virtual server of the appliance, the load across the plurality of virtual servers.

10. The method of claim 1 , comprising executing, by one of the appliance or a second appliance, the first virtual server.

11. The method of claim 1 , wherein step (d) comprises obtaining, by the appliance, the one of metrics via a metric exchanging protocol or Simple Network Management Protocol (SNMP).

12. The method of claim 1 , wherein the one or more metrics comprises one of the following: a number of connections, a number of packets sent to or transmitted by the virtual server, a response time of the service load balanced by a virtual server, and use of network bandwidth by the service.

13. The method of claim 1 , comprising identifying, by a user, one or more metrics of one of the first virtual backup server or the virtual server to collection for load balancing.

14. The method of claim 1 , comprising identifying, by the user, one of a weight or a threshold to assign to each of the one or more metrics identified by the user.

15. A system for performing load balancing via a plurality of virtual servers upon a failover using metrics from a backup virtual server, the system comprising:

an appliance load balancing a plurality of virtual servers, a first virtual server of the plurality of virtual servers having one or more backup virtual servers;

a monitoring agent of the appliance detecting that the first virtual server executing on the appliance is not available, identifying that a first backup virtual server executing on the appliance of the one or more backup virtual servers is available and maintaining the status of the first virtual server as available in response to identification; and

a load monitor of the appliance obtaining one or more metrics from the first backup virtual server of the plurality of the one or more backup virtual servers and determining the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server for determining the load of the first virtual server.

16. The system of claim 15 , wherein the monitoring agent further identifies that the first virtual backup server is unavailable and the load monitor obtains metrics from the second backup virtual server.

17. The system of claim 16 , wherein the load monitor further determines the load across the second backup virtual server and the plurality of virtual servers using the metrics obtained from the second backup virtual server.

18. The system of claim 16 , wherein the load monitor further determines one of the load across the second backup virtual server or the load across the plurality of virtual servers using the metrics obtained from the second backup virtual server.

19. The system of claim 18 , wherein the load monitor further determines the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server.

20. The system of claim 18 , wherein the monitoring agent further continues to transmit requests directed to the first virtual server to the one of the first backup virtual server or the first virtual server.

21. The system of claim 16 , wherein the load monitor obtains the one of metrics via a metric exchanging protocol or Simple Network Management Protocol (SNMP).

22. The system of claim 16 , wherein the one or more metrics comprises one of the following: a number of connections, a number of packets sent to or transmitted by the virtual server, a response time of the service load balanced by a virtual server, and use of network bandwidth by the service.

23. The system of claim 15 , wherein the monitoring agent further identifies that the first virtual server is available.

24. The system of claim 15 , wherein the load monitor determines the load across the plurality of virtual servers using metrics from one or more of a plurality of backup virtual servers.

25. The system of claim 15 , wherein a global load balancing virtual server of the appliance determines the load across the plurality of virtual servers.

26. The system of claim 15 , wherein one of the appliance or a second appliance executes the first virtual server.

27. An method for performing load balancing via a plurality of virtual servers upon a failover using metrics from a backup virtual server, the method comprising:

executing, by a device intermediary to a plurality of clients and servers, a plurality of virtual servers;

executing by the device, a backup virtual server for the first virtual server of the plurality of virtual servers;

detecting, by the device, that the first virtual server of the device is executing but not available;

maintaining, by the device, a status of the first virtual server as available in response to identifying that the backup virtual server is available;

obtaining, by the device, metrics from the backup virtual server; and

determining, by the device, the load across the plurality of virtual servers using the metrics obtained from the backup virtual server as metrics for the first virtual server.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2008
From: KAMATH, SANDEEP; SUGANTHI, JOSEPHINE; VERZUNOV, SERGEY; RAJA, MURALI; SHETTY, ANIL
To: CITRIX SYSTEMS, INC.
Reel/Frame 021418/0081 →
Continuity (1)
Related Publication 20090300407A1 · Dec 3, 2009