IP Library Granted Patent US 10,289,441
Granted Patent B1
US 10,289,441 · App. 15/796,455 · Granted May 14, 2019

Intelligent scale-out federated restore

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 10,289,441
App. No.
15/796,455
Granted
May 14, 2019
Kind
B1
Abstract

A request is received to restore a set of virtual machines (VMs) to a cluster of nodes. The nodes are profiled to collect, for each node, a current load and health status. A participating node list is generated by excluding from the list any node having a current load that exceeds a threshold or having a health status of unavailable. For each participating node, a determination is made of a recommended number of VMs to assign to a node based on a current load of the node. A participating node and VM to restore is selected. The selected VM is assigned to the selected participating node. The selection and assignment is repeated until each participating node has been assigned its respective number of VMs to restore or all VMs to restore have been assigned. The participating nodes are instructed to begin restoring their assigned VMs.

Claims (64)

1. A method comprising:

receiving a request to restore a plurality of virtual machines (VMs) to a cluster of nodes, each node comprising a plurality of resources for hosting one or more VMs;

profiling the cluster to collect, for each node, a current load on the plurality of resources and a health status;

generating a participating node list by excluding from the list any node having a current load that exceeds a threshold or having a health status of unavailable;

determining, for each node in the list, a recommended number of VMs to assign for restore based on a particular current load of a corresponding particular node;

selecting a node from the participating node list and a VM from the plurality of VMs to restore;

assigning the selected VM to the selected node to restore;

repeating the selecting and assigning until each node in the list has been assigned its respective recommended number of VMs to restore or all VMs from the plurality of VMs to restore have been assigned; and

instructing the nodes in the list to begin restoring their assigned VMs.

2. The method of claim 1 wherein the current load comprises memory usage, central processor unit (CPU) usage, and network usage.

3. The method of claim 1 wherein the determining, for each node in the list, a recommended number of VMs to assign for restore based on a particular current load of a corresponding particular node comprises:

calculating a remaining load capacity of the particular node as a function of memory usage, central processor unit (CPU) usage, and network usage of the particular node; and

calculating a particular recommended number of VMs to assign to the particular node as a function of the remaining load capacity of the particular node and a load demand of a VM,

wherein memory usage is assigned a higher weighted value than CPU usage and network usage, and CPU usage is assigned a higher weighted value than network usage.

4. The method of claim 1 comprising:

receiving from a first node in the participating node list an indication that the first node has completed restoration of VMs assigned to the first node; and

redistributing at least a subset of VMs initially assigned to a second node in the participating node list to restore to the first node to restore.

5. The method of claim 1 wherein a subset of nodes from the plurality of nodes to restore remain unassigned because each node in the participating node list has been assigned its respective recommended number of VMs to restore and the method comprises:

receiving from a first node in the participating node list an indication that the first node has completed restoration of VMs initially assigned to the first node; and

assigning to the first node at a least some of the subset of nodes to restore.

6. The method of claim 1 wherein nodes in the participating node list restore their assigned VMs in parallel with each other.

7. A system for performing federated restores, the system comprising:

a processor-based computer system configured to:

receive a request to restore a plurality of virtual machines (VMs) to a cluster of nodes, each node comprising a plurality of resources for hosting one or more VMs;

profile the cluster to collect, for each node, a current load on the plurality of resources and a health status;

generate a participating node list by excluding from the list any node having a current load that exceeds a threshold or having a health status of unavailable;

determine, for each node in the list, a recommended number of VMs to assign for restore based on a particular current load of a corresponding particular node;

select a node from the list and a VM from the plurality of VMs to restore;

assign the selected VM to the selected node to restore;

repeat the selection and assignment until each node in the list has been assigned its respective recommended number of VMs to restore or all VMs from the plurality of VMs to restore have been assigned; and

instruct the nodes in the list to begin restoring their assigned VMs.

8. The system of claim 7 wherein the current load comprises memory usage, central processor unit (CPU) usage, and network usage.

9. The system of claim 7 wherein the processor-based computer system is configured to:

calculate a remaining load capacity of the particular node as a function of memory usage, central processor unit (CPU) usage, and network usage of the particular node; and

calculate a particular recommended number of VMs to assign to the particular node as a function of the remaining load capacity of the particular node and a load demand of a VM,

wherein memory usage is assigned a higher weighted value than CPU usage and network usage, and CPU usage is assigned a higher weighted value than network usage.

10. The system of claim 7 wherein the processor-based computer system is configured to:

receive from a first node in the participating node list an indication that the first node has completed restoration of VMs assigned to the first node; and

redistribute at least a subset of VMs initially assigned to a second node in the participating node list to restore to the first node to restore.

11. The system of claim 7 wherein a subset of nodes from the plurality of nodes to restore remain unassigned because each node in the participating node list has been assigned its respective recommended number of VMs to restore and the processor-based computer system is configured to:

receive from a first node in the participating node list an indication that the first node has completed restoration of VMs initially assigned to the first node; and

assign to the first node at a least some of the subset of nodes to restore.

12. The system of claim 7 wherein nodes in the participating node list restore their assigned VMs in parallel with each other.

13. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:

receiving a request to restore a plurality of virtual machines (VMs) from backup to a cluster of nodes, each node comprising a plurality of resources for hosting one or more VMs;

profiling the cluster to collect, for each node, a current load on the plurality of resources and a health status;

generating a participating node list by excluding from the list any node having a current load that exceeds a threshold or having a health status of unavailable;

determining, for each node in the list, a recommended number of VMs to assign for restore based on a particular current load of a corresponding particular node;

selecting a node from the participating node list and a VM from the plurality of VMs to restore;

assigning the selected VM to the selected node to restore;

repeating the selecting and assigning until each node in the list has been assigned its respective recommended number of VMs to restore or all VMs from the plurality of VMs to restore have been assigned; and

instructing the nodes in the list to begin restoring their assigned VMs.

14. The computer program product of claim 13 wherein the current load comprises memory usage, central processor unit (CPU) usage, and network usage.

15. The computer program product of claim 13 wherein the determining, for each node in the list, a recommended number of VMs to assign for restore based on a particular current load of a corresponding particular node comprises:

calculating a remaining load capacity of the particular node as a function of memory usage, central processor unit (CPU) usage, and network usage of the particular node; and

calculating a particular recommended number of VMs to assign to the particular node as a function of the remaining load capacity of the particular node and a load demand of a VM,

wherein memory usage is assigned a higher weighted value than CPU usage and network usage, and CPU usage is assigned a higher weighted value than network usage.

16. The computer program product of claim 13 wherein the method comprises:

receiving from a first node in the participating node list an indication that the first node has completed restoration of VMs assigned to the first node; and

redistributing at least a subset of VMs initially assigned to a second node in the participating node list to restore to the first node to restore.

17. The computer program product of claim 13 wherein a subset of nodes from the plurality of nodes to restore remain unassigned because each node in the participating node list has been assigned its respective recommended number of VMs to restore and the method comprises:

receiving from a first node in the participating node list an indication that the first node has completed restoration of VMs initially assigned to the first node; and

assigning to the first node at a least some of the subset of nodes to restore.

18. The computer program product of claim 13 wherein nodes in the participating node list restore their assigned VMs in parallel with each other.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2017
From: CHOPRA, SHELESH; YADAV, SUNIL; BEHERA, AMARENDRA; HEBBUR, HAREEJ G
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043974/0714 →
Cited By (4)
US 12,204,947 US 12,229,574 US 12,353,290 US 12,487,843