IP Library Granted Patent US 8,935,563
Granted Patent B1
US 8,935,563 · App. 13/524,367 · Granted Jan 13, 2015

Systems and methods for facilitating substantially continuous availability of multi-tier applications within computer clusters

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,935,563
App. No.
13/524,367
Granted
Jan 13, 2015
Kind
B1
Abstract

A computer-implemented method may include (1) identifying at least one computer cluster configured to (a) facilitate substantially continuous availability of at least one multi-tier application that includes a plurality of discrete architectural layers and (b) provide a plurality of virtual machines configured to execute the discrete architectural layers within the multi-tier application, (2) detecting a failure that prevents at least one node within the computer cluster from providing at least one virtual machine configured to execute at least one discrete architectural layer within the multi-tier application, (3) identifying a different node capable of providing the virtual machine within the computer cluster, and then (4) directing the different node within the computer cluster to provide the virtual machine in order to facilitate substantially continuous availability of all of the discrete architectural layers within the multi-tier application despite the detected failure. Various other systems, methods, and computer-readable media are also disclosed.

Claims (79)

1. A computer-implemented method for facilitating substantially continuous availability of multi-tier applications within computer clusters, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying at least one computer cluster comprising a plurality of nodes configured to:

facilitate substantially continuous availability of at least one multi-tier application comprising a plurality of discrete architectural layers;

provide a plurality of virtual machines configured to execute the discrete architectural layers within the multi-tier application;

detecting a failure that prevents at least one node within the computer cluster from providing at least one virtual machine configured to execute at least one discrete architectural layer within the multi-tier application;

in response to detecting the failure:

identifying a different node capable of providing the virtual machine within the computer cluster;

directing the different node within the computer cluster to provide the virtual machine in order to facilitate substantially continuous availability of all of the discrete architectural layers within the multi-tier application despite the detected failure by:

identifying all of the virtual machines configured to execute the discrete architectural layers within the multi-tier application;

ensuring that the computer cluster provides all of the identified virtual machines after the detected failure.

2. The method of claim 1 , wherein identifying the computer cluster comprises identifying at least one other virtual machine configured to execute at least one other application within the computer cluster.

3. The method of claim 2 , wherein identifying the other virtual machine comprises identifying a plurality of other virtual machines configured to execute at least one other multi-tier application comprising a plurality of other discrete architectural layers.

4. The method of claim 2 , wherein identifying the computer cluster comprises at least one of:

determining that the node is configured to simultaneously provide both the virtual machine configured to execute the discrete architectural layer within the multi-tier application and the other virtual machine configured to execute the other application;

determining that at least one other node within the computer cluster is configured to provide the other virtual machine configured to execute the other application.

5. The method of claim 2 , wherein directing the different node within the computer cluster to provide the virtual machine comprises:

determining that the different node is incapable of simultaneously providing both the virtual machine configured to execute the discrete architectural layer within the multi-tier application and the other virtual machine configured to execute the other application;

identifying a priority level assigned to the multi-tier application;

identifying another priority level assigned to the other application;

determining, based at least in part on the priority level and the other priority level, that the multi-tier application has priority over the other application;

in response to determining that the multi-tier application has priority over the other application, directing the different node within the computer cluster to provide the virtual machine configured to execute the discrete architectural layer within the multi-tier application instead of the other virtual machine configured to execute the other application.

6. The method of claim 5 , wherein directing the different node within the computer cluster to provide the virtual machine instead of the other virtual machine comprises:

determining that the different node is currently configured to provide the other virtual machine;

in response to determining that the different node is currently configured to provide the other virtual machine, directing the different node to replace the other virtual machine with the virtual machine configured to execute the discrete architectural layer within the multi-tier application.

7. The method of claim 1 , wherein detecting the failure that prevents the node from providing the virtual machine configured to execute the discrete architectural layer within the multi-tier application comprises:

detecting a failure on the node;

accessing information that identifies the nodes on which the virtual machines are configured to execute the discrete architectural layers within the multi-tier application;

determining, based at least in part on the information, that the failed node was configured to execute the virtual machine.

8. The method of claim 1 , wherein identifying the different node capable of providing the virtual machine within the computer cluster comprises:

identifying the different node's capacity to provide virtual machines;

determining, based at least in part on the different node's capacity, that the different node is capable of providing the virtual machine after the detected failure.

9. The method of claim 1 , wherein directing the different node within the computer cluster to provide the virtual machine comprises:

identifying an order in which the computer cluster is to initiate the virtual machines configured to execute the discrete architectural layers within the multi-tier application;

directing the computer cluster to initiate the virtual machines in the identified order.

10. The method of claim 1 , wherein identifying the computer cluster comprises:

identifying a computer cluster comprising at least one node configured to provide at least one virtual machine configured to execute at least one discrete architectural layer within the multi-tier application;

identifying another computer cluster comprising at least one other node configured to provide at least one other virtual machine configured to execute at least one other discrete architectural layer within the multi-tier application.

11. The method of claim 10 , further comprising:

identifying a priority level assigned to the multi-tier application;

maintaining the multi-tier application's priority level across the computer cluster and the other computer cluster.

12. A system for facilitating substantially continuous availability of multi-tier applications within computer clusters, the system comprising:

an identification module programmed to identify at least one computer cluster comprising a plurality of nodes configured to:

facilitate substantially continuous availability of at least one multi-tier application comprising a plurality of discrete architectural layers;

provide a plurality of virtual machines configured to execute the discrete architectural layers within the multi-tier application;

a detection module programmed to detect a failure that prevents at least one node within the computer cluster from providing at least one virtual machine configured to execute at least one discrete architectural layer within the multi-tier application;

a failover module programmed to, in response to the detected failure:

identify a different node capable of providing the virtual machine within the computer cluster;

direct the different node within the computer cluster to provide the virtual machine in order to facilitate substantially continuous availability of all of the discrete architectural layers within the multi-tier application despite the detected failure by:

identifying all of the virtual machines configured to execute the discrete architectural layers within the multi-tier application;

ensuring that the computer cluster provides all of the identified virtual machines after the detected failure;

at least one processor configured to execute the identification module, the detection module, and the failover module.

13. The system of claim 12 , wherein the identification module is programmed to identify at least one other virtual machine configured to execute at least one other application within the computer cluster.

14. The system of claim 13 , wherein the identification module is programmed to identify a plurality of other virtual machines configured to execute at least one other multi-tier application comprising a plurality of other discrete architectural layers.

15. The system of claim 13 , wherein the identification module is programmed to at least one of:

determine that the node is configured to simultaneously provide both the virtual machine configured to execute the discrete architectural layer within the multi-tier application and the other virtual machine configured to execute the other application;

determine that at least one other node within the computer cluster is configured to provide the other virtual machine configured to execute the other application.

16. The system of claim 13 , wherein the failover module is programmed to:

determine that the different node is incapable of simultaneously providing both the virtual machine configured to execute the discrete architectural layer within the multi-tier application and the other virtual machine configured to execute the other application;

identify a priority level assigned to the multi-tier application;

identify another priority level assigned to the other application;

determine, based at least in part on the priority level and the other priority level, that the multi-tier application has priority over the other application;

direct, in response to determining that the multi-tier application has priority over the other application, the different node within the computer cluster to provide the virtual machine configured to execute the discrete architectural layer within the multi-tier application instead of the other virtual machine configured to execute the other application.

17. The system of claim 16 , wherein the failover module is programmed to:

determine that the different node is currently configured to provide the other virtual machine;

direct, in response to determining that the different node is currently configured to provide the other virtual machine, the different node to replace the other virtual machine with the virtual machine configured to execute the discrete architectural layer within the multi-tier application.

18. The system of claim 12 , wherein the detection module is programmed to:

detect a failure on the node;

access information that identifies the nodes on which the virtual machines are configured to execute the discrete architectural layers within the multi-tier application;

determine, based at least in part on the information, that the failed node was configured to execute the virtual machine.

19. A non-transitory computer-readable-storage medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify at least one computer cluster comprising a plurality of nodes configured to:

facilitate substantially continuous availability of at least one multi-tier application comprising a plurality of discrete architectural layers;

provide a plurality of virtual machines configured to execute the discrete architectural layers within the multi-tier application;

detect a failure that prevents at least one node within the computer cluster from providing at least one virtual machine configured to execute at least one discrete architectural layer within the multi-tier application;

in response to the detected failure:

identify a different node capable of providing the virtual machine within the computer cluster;

direct the different node within the computer cluster to provide the virtual machine in order to facilitate substantially continuous availability of all of the discrete architectural layers within the multi-tier application despite the detected failure by:

identifying all of the virtual machines configured to execute the discrete architectural layers within the multi-tier application;

ensuring that the computer cluster provides all of the identified virtual machines after the detected failure.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2012
From: RAJAA, SUBASH; HASBE, SUNIL
To: SYMANTEC CORPORATION
Reel/Frame 028384/0458 →