IP Library Granted Patent US 9,948,509
Granted Patent B1
US 9,948,509 · App. 14/588,623 · Granted Apr 17, 2018

Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application

Inventor: Subash Rajaa (Pune, IN)
Assignee: Veritas Technologies LLC
H04L41/0816
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,948,509
App. No.
14/588,623
Granted
Apr 17, 2018
Kind
B1
Abstract

A method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application is described. In one embodiment, the method for optimizing resource utilization within a cluster and facilitating high availability for an application includes accessing configuration information regarding virtual machine nodes within the cluster to identify an active node and at least one passive node that are associated with the application and configuring the at least one passive node to be in a suspended state, wherein a passive node of the at least one passive node is to be in a running state and the active node is to be in a suspended state upon migration of the application to the passive node of the at least one passive node.

Claims (166)

1. A method comprising:

accessing configuration information, wherein

the configuration information indicates

a state of each node of a plurality of nodes of a cluster, and

that an active node and a passive node are associated with an application;

identifying, using the configuration information, the passive node of a plurality of passive nodes, wherein

the plurality of nodes comprises the plurality of passive nodes,

each of the plurality of passive nodes is in a suspended state;

the passive node is in a suspended state at least by virtue of

an operating system being loaded on the passive node, and

the application being configured in an offline state on the passive node, and

the identifying comprises

determining a state of the passive node by

communicating a query, related to the passive node, to a physical computer hosting the passive node, and

receiving a response to the query, wherein

the response comprises information indicating the state of the passive node;

suspending the active node, wherein

the suspending the active node comprises

stopping the application at the active node by configuring the application to be in an offline state at the active node, and

configuring the active node to be in the suspended state;

migrating the application to the passive node, wherein

the migrating the application to the passive node comprises

configuring the passive node to be in a running state by resuming the passive node from the suspended state, and

configuring the application to be in an online state at the passive node by initiating execution of the application on the passive node; and

updating the configuration information based on the migrating.

2. The method of claim 1 , further comprising:

identifying, using a processor, a plurality of virtual machine nodes of the cluster by accessing the configuration information, wherein

the plurality of virtual machine nodes is the plurality of nodes, and

the identifying comprises

identifying the active node, and

identifying the passive node.

3. The method of claim 2 , wherein

the plurality of nodes is a plurality of virtual machine nodes,

the configuration information identifies each virtual machine node of the plurality of virtual machine nodes, and

the application is configured to be executed on the active node or the passive node.

4. The method of claim 1 , wherein

the active node comprises a first virtual machine,

the passive node comprises a second virtual machine, and

the first virtual machine and the second virtual machine are hosted by the physical computer.

5. A computer readable storage medium comprising program instructions executable to:

access configuration information, wherein

the configuration information indicates

a state of each node of a plurality of nodes of a cluster, and

that an active node and a passive node are associated with an application;

identify, using the configuration information, the passive node of a plurality of passive nodes, wherein

the plurality of nodes comprises the plurality of passive nodes,

each of the plurality of passive nodes is in a suspended state,

the passive node is in a suspended state at least by virtue of

an operating system being loaded on the passive node, and

the application being configured in an offline state on the passive node, and

the passive node is identified by

determining a state of the passive node by

communicating a query, related to the passive node, to a physical computer hosting the passive node, and

receiving a response to the query, wherein

the response comprises information indicating the state of the passive node;

suspend the active node, wherein

the active node is suspended by

stopping the application at the active node by configuring the application to be in an offline state at the active node, and

configuring the active node to be in the suspended state;

migrate the application to the passive node, wherein

the application is migrated to the passive node by

configuring the passive node to be in a running state by resuming the passive node from the suspended state, and

configuring the application to be in an online state at the passive node by initiating execution of the application on the passive node; and

update the configuration information based on the application being migrated to the passive node.

6. The computer readable storage medium of claim 5 further comprising:

identify a plurality of virtual machine nodes of the cluster by accessing the configuration information, wherein

the plurality of virtual machine nodes is the plurality of nodes, and

the plurality of virtual machine nodes are identified by

identifying the active node, and

identifying the passive node.

7. The computer readable storage medium of claim 6 , wherein

the plurality of nodes is a plurality of virtual machine nodes,

the configuration information identifies each virtual machine node of the plurality of virtual machine nodes of the cluster, and

the application is configured to be executed on the active node or the passive node.

8. The computer readable storage medium of claim 5 , wherein

the active node comprises a first virtual machine,

the passive node comprises a second virtual machine, and

the first virtual machine and the second virtual machine are hosted by the physical computer.

9. A system comprising:

one or more processors; and

a computer-readable storage medium coupled to the one or more processors, wherein the computer-readable storage medium stores program instructions executable by the one or more processors to:

access configuration information, wherein

the configuration information identifies an active node and a passive node, and

the configuration information indicates

a state of each node of a plurality of nodes of a cluster, and

that an active node and a passive node are associated with an application;

identify, using the configuration information, the passive node of a plurality of passive nodes, wherein

the plurality of nodes comprises the plurality of passive nodes,

each of the plurality of passive nodes is in a suspended state,

the passive node is in a suspended state at least by virtue of

an operating system being loaded on the passive node, and

the application being configured in an offline state on the passive node, and

the passive node is identified by

determining a state of the passive node by

communicating a query, related to the passive node, to a physical computer hosting the passive node, and

receiving a response to the query, wherein

the response comprises information indicating the state of the passive node;

suspend the active node, wherein

the active node is suspended by

stopping the application at the active node by configuring the application to be in an offline state at the active node, and

configuring the active node to be in the suspended state;

migrate the application to the passive node, wherein

the application is migrated to the passive node by

configuring the passive node to be in a running state by resuming the passive node from the suspended state, and

configuring the application to be in an online state at the passive node by initiating execution of the application on the passive node; and

update the configuration information based on the application being migrated to the passive node.

10. The system of claim 9 , further comprising instructions executable by the one or more processors to:

identify, using the one or more processors, a plurality of virtual machine nodes of the cluster by accessing the configuration information, wherein

the plurality of virtual machine nodes is the plurality of nodes, and

the plurality of virtual machine nodes are identified by

identifying an active node of the cluster, and

identifying a passive node of the cluster.

11. The system of claim 10 , wherein

the plurality of nodes is a plurality of virtual machine nodes,

the configuration information identifies each virtual machine node of the plurality of virtual machine nodes of the cluster, and

the application is configured to be executed on the active node or the passive node.

12. The system of claim 9 , wherein

the active node comprises a first virtual machine,

the passive node comprises a second virtual machine, and

the first virtual machine and the second virtual machine are hosted by the physical computer.

13. The system of claim 9 , further comprising:

a policy master, wherein

the passive node is maintained in the suspended state by continuously monitoring the passive node, and

the policy master comprises the program instructions executable by the one or more processors to access, identify, suspend, continuously monitor, and update.

14. The system of claim 13 , wherein

the plurality of nodes are hosted by a plurality of host computers,

the plurality of host computers comprises the physical computer,

the policy master is configured to

communicate with a server that manages the plurality of host computers, and/or

communicate directly with the plurality of host computers by virtue of being configured to utilize a host virtual machine management application programming interface, and

the application is migrated in response to a failure of a resource of the active node.

15. The system of claim 13 , wherein

the plurality of nodes are hosted by a plurality of host computers,

the plurality of host computers comprises the physical computer, and

the continuously monitoring comprises

communicating one or more queries to each of the plurality of host computers hosting one or more of the plurality of passive nodes,

determining a state of each of the plurality of passive nodes, and

updating the configuration information based on the determining.

16. The system of claim 13 , further comprising:

cluster software, wherein

the cluster software is configured to manage the cluster,

the policy master is configured to communicate with cluster software, and

the cluster software is configured to perform migration of the application, as instructed by the policy master.

17. The method of claim 1 , wherein

the updating causes the configuration information to indicate that the state of the active node is suspended and the state of the passive node is running.

18. The method of claim 1 , wherein

the plurality of nodes are hosted by a plurality of host computers,

the plurality of host computers comprises the physical computer,

the accessing, the identifying, the suspending, and the updating are performed by a policy master, in response to a failure of a resource of the active node, and

the policy master is configured to

communicate with a server that manages the plurality of host computers, and/or

communicate directly with the plurality of host computers by virtue of being configured to utilize a host virtual machine management application programming interface.

19. The method of claim 1 , wherein

the plurality of nodes are hosted by a plurality of host computers,

the plurality of host computers comprises the physical computer,

the passive node is maintained in the suspended state by continuously monitoring the passive node,

the continuously monitoring is performed by a policy master and comprises

communicating one or more queries to each of the plurality of host computers hosting one or more of the plurality of passive nodes,

determining a state of each of the plurality of passive nodes, and

updating the configuration information based on the determining, and

the policy master is configured to communicate with cluster software that is configured to manage the cluster.

20. The method of claim 19 , wherein

the policy master is configured to

communicate with the cluster software, and

perform the accessing, the identifying, the suspending, and the updating the configuration information based on the migrating, and

the cluster software is configured to perform the migrating, as instructed by the policy master.

Assignments (15)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
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 037693/0158 →
Continuity (1)
Continuation 12411864 · Mar 26, 2009