IP Library Granted Patent US 7,716,667
Granted Patent B2
US 7,716,667 · App. 11/674,559 · Granted May 11, 2010

Migrating virtual machines among computer systems to balance load caused by 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 7,716,667
App. No.
11/674,559
Granted
May 11, 2010
Kind
B2
Abstract

A cluster comprises a plurality of computer systems, wherein each of the plurality of computer systems is configured to execute one or more virtual machines. Each of the plurality of computer systems comprises hardware and a plurality of instructions. The plurality of instructions, when executed on the hardware, migrates at least a first virtual machine executing on a first computer system of the plurality of computer systems to a second computer system of the plurality of computer systems. The plurality of instructions migrates the first virtual machine responsive to a first load of the first computer system prior to the migration exceeding a second load of the second computer system prior to the migration.

Claims (31)

1. A computer accessible storage medium encoded with a plurality of instructions that, when executed perform the method of:

calculating a first load of a first virtual machine on a first computer system, wherein the first load is calculated as a first weighted combination of a plurality of load factors associated with the first virtual machine, wherein a first set of weights are used to calculate the first load on the first computer system, and wherein the first virtual machine is assigned to the first computer system for execution at the time the first load is calculated;

transmitting the plurality of load factors from the first computer system to a second computer system, wherein the second computer system is configured to calculate a second load of the first virtual machine on the second computer system as a second weighted combination of the plurality of load factors, and wherein a second set of weights are used on the second computer system, and wherein at least one of the second set of weights differs numerically from a corresponding one of the first set of weights, and wherein the second load is an expected load of the first virtual machine on the second computer system if the first virtual machine is migrated to the second computer system; and

migrating first virtual machine to the second computer system to be executed on the second computer system responsive to the first load exceeding the second load;

wherein the first virtual machine executes on the second computer system independent of the first computer system during use, even if the first virtual machine was initially launched on the first computer system.

2. The computer accessible storage medium as recited in claim 1 wherein the instructions, when executed:

determine a first total load on the first computer system and a second total load on the second computer system; and

migrate one or more virtual machines from the first computer system to the second computer system responsive to the first total load exceeding the second total load.

3. The computer accessible storage medium as recited in claim 1 wherein the plurality of instructions, when executed, select the second computer system to which the plurality of load factors are to be transmitted.

4. The computer accessible storage medium as recited in claim 3 wherein the selection is random.

5. A computer system comprising execution hardware configured to execute a plurality of instructions encoded in a computer accessible storage medium coupled to the execution hardware, wherein when the plurality of instructions are executed by the execution hardware to perform the method as recited in claim 1 .

6. A cluster comprising a plurality of computer systems, wherein each of the plurality of computer systems is configured to execute one or more virtual machines, and wherein a first computer system of the plurality of computer systems is configured to:

calculate a first load of a first virtual machine on a first computer system, wherein the first load is calculated as a first weighted combination of a plurality of load factors associated with the first virtual machine, wherein a first set of weights are used to calculate the first load on the first computer system, and wherein the first virtual machine is assigned to the first computer system for execution at the time the first load is calculated; and

transmit the plurality of load factors from the first computer system to a second computer system of the plurality of computer systems;

wherein the second computer system is configured to calculate a second load of the first virtual machine on the second computer system as a second weighted combination of the plurality of load factors, wherein a second set of weights are used to calculate the second load on the second computer system, and wherein at least one of the second set of weights differs numerically from a corresponding one of the first set of weights, and wherein the second load is an expected load of the first virtual machine on the second computer system if the first virtual machine is migrated to the second computer system; and

wherein the first computer system is configured to migrate the first virtual machine to the second computer system to be executed on the second computer system responsive to the first load exceeding the second load; and

wherein the first virtual machine executes on the second computer system independent of the first computer system during use, even if the first virtual machine was initially launched on the first computer system.

7. The cluster as recited in claim 6 wherein the first computer system is configured to determine a first total load on the first computer system, and wherein the second computer system is configured to determine a second total load on the second computer system, and wherein the first computer system is configured to migrate one or more virtual machines from the first computer system to the second computer system responsive to the first total load exceeding the second total load.

8. The cluster as recited in claim 6 wherein the first computer system is configured to select the second computer system to which the plurality of load factors are to be transmitted.

9. The cluster as recited in claim 8 wherein the selection is random.

10. A computer-implemented method comprising:

calculating a first load of a first virtual machine on a first computer system, wherein the first load is calculated as a first weighted combination a plurality of load factors associated with the first virtual machine, wherein a first set of weights are used to calculate the first load on the first computer system, and wherein the first virtual machine is assigned to the first computer system for execution at the time the first load is calculated;

transmitting the one or more load factors from the first computer system to a second computer system;

calculating a second load of the first virtual machine on the second computer system as a second weighted combination of the plurality of load factors, wherein a second set of weights are used to calculate the second load on the second computer system, and wherein at least one of the second set of weights differs numerically from a corresponding one of the first set of weights, and wherein the second load is an expected load of the first virtual machine on the second computer system if the first virtual machine is migrated to the second computer system; and

migrating the first virtual machine to the second computer system to be executed on the second computer system responsive to the first load exceeding the second load; and

wherein the first virtual machine executes on the second computer system independent of the first computer system during use, even if the first virtual machine was initially launched on the first computer system.

11. The method as recited in claim 10 further comprising:

determining a first total load on the first computer system and a second total load on the second computer system; and

migrating one or more virtual machines from the first computer system to the second computer system responsive to the first total load exceeding the second total load.

12. The method as recited in claim 10 further comprising selecting the second computer system to which the plurality of load factors are to be transmitted.

13. The method as recited in claim 12 wherein the selecting is random.

Assignments (11)
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →