IP Library Granted Patent US 9,292,350
Granted Patent B1
US 9,292,350 · App. 13/327,218 · Granted Mar 22, 2016

Management and provisioning of virtual machines

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,292,350
App. No.
13/327,218
Granted
Mar 22, 2016
Kind
B1
Abstract

Various systems and methods for management and provisioning of virtual machines are disclosed. For example, embodiments include selecting a potential node to host a virtual machine, where the node is selected from among a plurality of potential nodes. The selection may be based on a virtual machine (VM) configuration of a virtual machine, which may include various requirements needed to host the VM. Embodiments also include provisioning the VM on the host node after the host node is selected from among the plurality of potential nodes, and determining whether a currently-hosted node are operating in accordance with various criteria needed for the VM.

Claims (220)

1. A computer-implemented method comprising:

accessing, using one or more processors, a virtual machine (VM) configuration of a virtual machine, wherein

the VM is to be hosted by a host node, and

the VM configuration comprises one or more requirements that are necessary for hosting the VM;

accessing a first cluster configuration of a first cluster, wherein

an n-ary tree comprises a first leaf level and a second leaf level,

the first leaf level comprises at least a root node of the first cluster,

the second leaf level comprises a first plurality of potential nodes (second leaf nodes) of the first cluster,

the first plurality of second leaf nodes are configured to host at least one VM, and

the first cluster configuration comprises configuration information for one or more nodes of the first plurality of second leaf nodes, wherein

each second leaf node of the one or more second leaf nodes generates configuration information corresponding to the each second leaf node; and

comparing the configuration information corresponding to the each second leaf node with the VM configuration, wherein

the each second leaf node performs the comparing with respect to itself,

the comparing determines whether the each second leaf node is capable of satisfying the one or more requirements that are necessary for hosting the VM,

the each second leaf node transmits a result of its respective comparison to the root node, and

the result is one of a set of such results; and

provisioning the VM to be hosted at one of the second leaf nodes, wherein

the provisioning is based, at least in part, on the set of such results.

2. The method of claim 1 , wherein

the one or more requirements comprise one or more security elements of the potential node in order to host the VM.

3. The method of claim 1 , wherein

the VM configuration is comprised in a service level agreement (SLA) of the VM.

4. The method of claim 1 , wherein

the one or more requirements comprise one or more security elements, wherein

the one or more security elements comprise at least one of

a list comprising one or more networks that the VM is permitted to access, and

a requirement to scan the VM for one or more viruses at a predetermined interval of time.

5. The method of claim 1 , wherein

the one or more requirements comprises one or more additional requirements, wherein

the one or more additional requirements comprise

one or more data protection requirements that indicate one or more data protection elements needed in a potential node in order to host the VM.

6. The method of claim 1 , further comprising:

storing the VM configuration in a memory.

7. The method of claim 1 , further comprising:

accessing a second cluster configuration of a second cluster, wherein

the second cluster comprises a second plurality of potential nodes,

the second plurality of potential nodes are configured to host at least one VM, and

the second cluster configuration comprises configuration information for one or more nodes of the second plurality of potential nodes; and

comparing the VM configuration with the second cluster configuration.

8. The method of claim 7 , further comprising:

selecting a selected cluster of the first cluster and the second cluster, wherein

the selecting the selected cluster is based on one or more of

the comparing the VM configuration with the first cluster configuration, or

the comparing the VM configuration with the second cluster configuration.

9. The method of claim 5 , wherein

the comparing the VM configuration and the first cluster configuration comprises determining whether the one or more additional requirements match one or more operational elements of the first plurality of potential nodes.

10. The method of claim 5 , further comprising:

selecting a first host node of the first plurality of potential nodes; and

configuring the first host node in accordance with the one or more additional requirements.

11. The method of claim 1 , further comprising:

hosting the VM at a first eligible node of the first cluster, wherein

the hosting is performed after the comparing the VM configuration and the first cluster configuration;

accessing the VM configuration of the VM;

determining one or more operational indicators, wherein

the one or more operational indicators indicate operational characteristics of one or more of

the first eligible node, or

the first cluster; and

comparing one or more operational elements and the one or more operational indicators.

12. The method of claim 11 , further comprising:

accessing a first potential node of the first cluster;

accessing the VM configuration for one or more currently-hosted VMs that are hosted by the first potential node;

determining whether one or more of the currently-hosted VMs are operating within the respective operational characteristics, wherein

the determining whether one or more of the currently-hosted VMs are operating within the respective specified operational characteristics comprises

performing the accessing of the VM configuration for at least some of the one or more currently-hosted VMs,

performing the determining the operational indicators of the first eligible node, and

performing the comparing of the one or more operational elements and the operational indicators.

13. The method of claim 11 , wherein

the comparing the one or more operational elements and the operational indicators is performed for at least a subset of the currently-hosted VMs.

14. The method of claim 11 , wherein

the comparing the one or more operational elements and the operational indicators is performed in response to receiving a notification that at least one of the operational indicator(s) has changed.

15. The method of claim 11 , wherein

the accessing the VM configuration of the VM comprises

accessing a database of a plurality of configuration information for a plurality of virtual machines (VMs),

the plurality of VMs are hosted by the first plurality of potential nodes in the first cluster, and

the plurality of VMs comprise the VM.

16. The method of claim 11 , wherein

the accessing the VM configuration of the VM comprises

accessing a database of a plurality of configuration information for a plurality of virtual machines (VMs),

the plurality of VMs are hosted by the first plurality of potential nodes,

the first plurality of potential nodes are comprised in a plurality of clusters,

the plurality of VMs comprise the VM, and

the plurality of clusters comprise the first cluster.

17. The method of claim 11 , wherein the comparing the VM configuration and the one or more operational indicators comprises

determining a deviation by performing an analysis, and

determining whether the deviation is within a range.

18. The method of claim 17 , further comprising

in response to a determination that the deviation is outside the range, generating an alert.

19. The method of claim 17 , wherein

the range is predetermined prior to the determining the deviation.

20. The method of claim 17 , wherein

the range is dynamically determined.

21. The method of claim 11 , wherein

the hosting of the VM is based on the VM configuration.

22. A system comprising:

one or more processors,

a first cluster configuration of a first cluster, wherein

an n-ary tree comprises a first leaf level and a second leaf level,

the first leaf level comprises at least a root node of the first cluster,

the second leaf level comprises a first plurality of potential nodes (second leaf nodes) of the first cluster,

the first plurality of second leaf nodes are operable to host at least one virtual machine (VM), and

the first cluster configuration comprises configuration information for one or more nodes of the first plurality of second leaf nodes, wherein

each node of the one or more nodes generates configuration information corresponding to the each second leaf node;

a VM configuration, wherein

the VM configuration comprises one or more requirements that are necessary for hosting the VM;

a comparison module, wherein

the comparison module is configured to compare the configuration information corresponding to the each second leaf node with the VM configuration, wherein

the each second leaf node is configured to perform a comparison of the VM configuration with the configuration information corresponding to itself,

the comparison determines whether the each second leaf node is capable of satisfying the one or more requirements that are necessary for hosting the VM,

the each second leaf node is configured to transmit a result of its respective comparison to the root node, and

the result is one of a set of such results, and

the comparison module is configured to be executed using the one or more processors; and

a provisioning module configured to provision the VM to be hosted at one of the second leaf nodes, wherein

the provisioning is based, at least in part, on the set of such results.

23. The system of claim 22 , wherein

the one or more requirements comprise one or more additional requirements, wherein

the one or more additional requirements comprise one or more data protection requirements that indicate one or more data protection elements needed in a node in order to host the VM.

24. The system of claim 22 , wherein

the comparison module is further configured to

compare the VM configuration and a second cluster configuration,

a second cluster comprises a second plurality of potential nodes,

the second plurality of potential nodes are configured to host at least one VM, and

the second cluster configuration comprises configuration information for one or more of the second plurality of potential nodes.

25. The system of claim 24 , further comprising:

a determination module, wherein

the determination module is configured to determine a cluster out of the first and second cluster, and

the determination module is configured to perform a determination based at least on

the comparison of the VM configuration with the first cluster configuration, and

the comparison of the VM configuration with the second cluster configuration.

26. The system of claim 23 , wherein

the comparison module is configured to

determine whether the one or more additional requirements match one or more operational elements of the first plurality of potential nodes.

27. The system of claim 23 , further comprising:

a selection module, wherein

the selection module is configured to

select a first eligible node of the first plurality of potential nodes; and

a configuration module, wherein

the configuration module is configured to

configure the first eligible node in accordance with the one or more additional requirements.

28. The system of claim 22 , further comprising:

an operational indicator module, wherein

the operational indicator module is operable to determine one or more operational indicators,

the one or more operational indicators indicate operational characteristics of one or more of

a first potential node, or

the first cluster;

the first potential node is configured to host the VM after the comparison module compares the VM configuration with the first cluster configuration; and

the comparison module is further configured to compare one or more operational elements with the operational indicators of the first potential node.

29. The system of claim 28 , further comprising:

a determination module, wherein

the determination module is configured to determine whether one or more of the VMs are operating within respective operating characteristics,

the operational indicator module is further operable to determine operational indicators of the first potential node, and

the comparison module is further operable to compare the one or more operational elements and the operational indicators of the first potential node.

30. The system of claim 28 , further comprising:

a database, wherein

the database stores a plurality of configuration information for a plurality of virtual machines (VMs),

the plurality of VMs are hosted by the first plurality of potential nodes in the first cluster,

the first plurality of potential nodes are comprised in a plurality of clusters,

the plurality of VMs comprise the VM, and

the plurality of potential clusters comprise the first cluster.

31. The system of claim 28 , further comprising:

a determination module, wherein

the determination module is operable to

determine an deviation by performing an analysis, and

determine whether the deviation is within a range.

32. A computer program product comprising:

a plurality of instructions, comprising

a first set of instructions, executable on a computer system, configured to

access a virtual machine (VM) configuration of a virtual machine, wherein

the VM is to be hosted by a host node, and

the VM configuration comprises one or more requirements that are necessary for hosting the VM,

a second set of instructions, executable on the computer system, configured to

access a first cluster configuration of a first cluster, wherein

an n-ary tree comprises a first leaf level and a second leaf level,

the first leaf level comprises at least a root node of the first cluster,

the second leaf level comprises a first plurality of potential nodes (second leaf nodes) of the first cluster,

the first plurality of second leaf nodes are configured to host at least one VM, and

the first cluster configuration comprises configuration information for one or more nodes of the first plurality of second leaf nodes, wherein

 each second leaf node of the one or more second leaf nodes generates configuration information corresponding to the each second leaf node, and

a third set of instructions, executable on the computer system, configured to compare the configuration information corresponding to the each second leaf node with the VM configuration, wherein

the each second leaf node is configured to perform a comparison of the VM configuration with the configuration information corresponding to itself,

the comparison determines whether the each second leaf node is capable of satisfying the one or more requirements that are necessary for hosting the VM,

the each second leaf node is configured to transmit a result of its respective comparison to the root node, and

the result is one of a set of such results;

a fourth set of instructions, executable on the computer system, configured to provision the VM to be hosted at one of the second leaf nodes, wherein

the VM is provisioned, at least in part, based upon the set of such results; and

a non-transitory storage media, wherein the instructions are encoded in the non-transitory storage media.

33. The computer program product of claim 32 , wherein

the one or more requirements comprise one or more additional requirements, wherein

the one or more additional requirements comprise

one or more data protection requirements that indicate one or more data protection elements needed in a potential node in order to host the VM.

34. The computer program product of claim 32 , wherein the instructions further comprise:

a fifth set of instructions, executable on the computer system, configured to access a second cluster configuration of a second cluster, wherein

the second cluster comprises a second plurality of potential nodes,

the second plurality of potential nodes are configured to host at least one VM, and

the second cluster configuration comprises configuration information for one or more of the second plurality of potential nodes; and

a sixth set of instructions, executable on the computer system, configured to compare the VM configuration with the second cluster configuration.

35. The computer program product of claim 33 , wherein the instructions further comprise:

a fifth set of instructions, executable on the computer system, configured to select a first host node of the first plurality of potential nodes; and

a sixth set of instructions, executable on the computer system, configured to configure the first host node in accordance with the one or more additional requirements.

36. The computer program product of claim 32 , wherein the instructions further comprise:

a fifth set of instructions, executable on the computer system, configured to host the VM at a first eligible node of the first cluster, wherein

the hosting is performed after the comparing the VM configuration and the first cluster configuration;

a sixth set of instructions, executable on the computer system, configured to access the VM configuration of the VM;

a seventh set of instructions, executable on the computer system, configured to determine one or more operational indicators, wherein

the one or more operational indicators indicate operational characteristics of one or more of

the first eligible node, or

the first cluster; and

an eighth set of instructions, executable on the computer system, configured to compare one or more operational elements and the one or more operational indicators.

37. The computer program product of claim 36 , wherein the instructions further comprise:

a ninth set of instructions, executable on the computer system, configured to access a first potential node of the first cluster;

a tenth set of instructions, executable on the computer system, configured to access the VM configuration for one or more currently-hosted VMs that are hosted by the first potential node;

an eleventh set of instructions, executable on the computer system, configured to determine whether one or more of the currently-hosted VMs are operating within the respective operational characteristics, wherein

determining whether one or more of the currently-hosted VMs are operating within the respective specified operational characteristics comprises

accessing the VM configuration for at least some of the one or more currently-hosted VMs,

performance of the determining the operational indicators of the first eligible node, and

performance of the comparing of the one or more operational elements and the operational indicators.

38. The computer program product of claim 36 , wherein the comparison of the one or more operational elements and the operational indicators performed in response to receiving a notification that at least one of the operational indicator(s) has changed.

39. The computer program product of claim 36 , wherein the instructions further comprise:

a ninth set of instructions, executable on the computer system, configured to determine an deviation by performing an analysis; and

a tenth set of instructions, executable on the computer system, configured to determine whether the deviation is within a range.

40. The computer program product of claim 36 , wherein the hosting of the VM is based on the VM configuration.

Assignments (14)
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 →
SECURITY INTEREST Recorded Mar 17, 2025
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070530/0497 →
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 29, 2012
From: PENDHARKAR, NIRANJAN S.; SATISH, VENKEEPURAM R.; SINGHVI, JAYA
To: SYMANTEC CORPORATION
Reel/Frame 027783/0877 →