IP Library › Granted Patent US 10,642,633
Granted Patent B1
US 10,642,633 · App. 14/869,787 · Granted May 5, 2020

Intelligent backups with dynamic proxy in virtualized environment

Inventors: Shelesh Chopra (Bangalore, IN); Vladimir Mandic (San Jose, CA); Michael Jones (Lake Stevens, WA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F9/45533G06F9/45558G06F11/1451G06F11/1464G06F2009/45595G06F2201/815
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,642,633
App. No.
14/869,787
Filed
Sep 29, 2015
Granted
May 5, 2020
Kind
B1
Examiner
CHEN, ZHI
Art Unit
2196
USPC
718/1
Abstract

Embodiments are described for dynamically spawning and/or decommissioning backup proxy nodes in a virtual infrastructure. A backup server can include a polling agent that polls the virtual infrastructure to determine a list of virtual machines whose data is to be backed up, and a list if virtual proxy nodes that facilitate backups of virtual machine data. A proxy map can be generated that describes the mapping of virtual machines to backup proxy nodes in the virtual infrastructure. Rules can be applied to the proxy map to determine whether a new proxy node should be spawned or an existing proxy node should be decommissioned. A new virtual proxy can be generated by accessing a database of preconfigured template virtual proxies to quickly generate the new virtual proxy. One or more virtual machines can be remapped to the newly created virtual proxy to ensure optimal throughput of backup data.

Claims (55)

1. A computer-implemented method comprising:

setting a polling timer interval for initiating polling;

periodically polling a virtual machine host according to the polling timer interval to determine a plurality of virtual machines configured on the virtual machine host and attributes about each of the plurality of virtual machines, including at least one of a size of the virtual machine or a size of the data to be backed up for the virtual machine;

determining a number of backup proxies configured for backing up the data of each of the plurality of virtual machines on the virtual machine host and a mapping ratio of virtual machines to the number of backup proxies;

generating a new backup proxy based on the plurality of virtual machines and the number of backup proxies, in response to a rule in a set of one or more rules indicating that the mapping ratio of the plurality of virtual machines to backup proxies exceeds a threshold value, or only one backup proxy is configured for backing up the plurality of virtual machines;

automatically provisioning the new backup proxy based on a predetermined proxy template in response to the one or more rules indicating that the new backup proxy should be generated;

automatically, decommissioning one or more of the backup proxies in response to determining that a backup proxy is older than a threshold value of time, or a backup proxy uses an operating system that is outdated by a threshold number of revisions;

spawning a replacement backup proxy to replace each backup proxy decommissioned due to being old or outdated in response to determining that the replacement backup proxy is needed; and

in response to a change in the plurality of virtual machines, generation of one or more new backup proxies, or decommissioning of one or more old/outdated backup proxies, storing an updated list of the virtual machines and the backup proxies and an updated mapping of the virtual machines to the backup proxies in a configuration database; and

updating the polling timer interval by:

determining a configuration change occurred more than once during a last polling; and

decreasing the polling timer interval to a minimum time interval value between two configuration changes during the last polling, wherein the configuration change comprises the change in the plurality of virtual machines, generation of one or more backup proxies or decommissioning of one or more old/outdated backup proxies.

2. The method of claim 1 , wherein polling the virtual machine host comprises calling an application programming interface to a virtual machine manager on the virtual machine host to receive a list of virtual machines configured on the virtual machine host.

3. The method of claim 1 , further comprising:

analyzing the attributes of the plurality of virtual machines to be backed up, a mapping of the plurality of virtual machines to be backed up, and the backup proxies to determine at least one of: whether to add a new backup proxy or delete a backup proxy.

4. The method of claim 1 , further comprising automatically remapping one or more of the plurality of virtual machines from one of the backup proxies to the new backup proxy.

5. The method of claim 1 , wherein a rule indicates that the new backup proxy should be generated when there is insufficient parallelism in the backup system.

6. The method of claim 1 , wherein a rule indicates that the new backup proxy should be generated when a backup of a particular virtual machine is forecast to take longer than is allowed by a backup service level agreement.

7. A non-transitory computer-readable medium programmed with executable instructions that, when executed by a processing system having at least one hardware processor; perform operations comprising:

setting a polling timer interval for initiating polling;

periodically polling a virtual machine host according to the polling timer interval to determine a plurality of virtual machines configured on the virtual machine host and attributes about each of the plurality of virtual machines, including at least one of size of the virtual machine or a size of the data to be backed up for the virtual machine;

determining a number of backup proxies configured for backing up the data of each of the plurality of virtual machines on the virtual machine host;

generating a new backup proxy based on the plurality of virtual machines and the number of backup proxies, in response to a rule in a set of one or more rules indicating that the mapping ratio of the plurality of virtual machines to backup proxies exceeds a threshold value, or only one backup proxy is configured for backing up the plurality of virtual machines;

automatically provisioning the new backup proxy based on a predetermined proxy template in response to the one or more rules indicating that the new backup proxy should be generated;

automatically decommissioning one or more of the backup proxies in response to determining that a backup proxy is older than a threshold value of time, or a backup proxy uses an operating system that is outdated by a threshold number of revisions;

spawning a replacement backup proxy to replace each backup proxy decommissioned due to being old or outdated in response to determining that the replacement backup proxy is needed;

in response to a change in the plurality of virtual machines, generation of one or more new backup proxies, or decommissioning of one or more old/outdated backup proxies, storing an updated list of the virtual machines and the backup proxies and an updated mapping of the virtual machines to the backup proxies in a configuration database; and

updating the polling timer interval by:

determining a configuration change occurred more than once during a last polling; and

decreasing the polling tinier interval to a minimum time interval value between two configuration changes during the last polling, wherein the configuration change comprises the change in the plurality of virtual machines, generation of one or more backup proxies or decommissioning of one or more old/outdated backup proxies.

8. The medium of claim 7 , wherein polling the virtual machine host comprises calling an application programming interface to a virtual machine manager on the virtual machine host to receive a list of virtual machines configured on the virtual machine host.

9. The medium of claim 7 , further comprising:

analyzing the attributes of the plurality of virtual machines to be backed up, a mapping of the plurality of virtual machines to be backed up, and the backup proxies to determine at least one of: whether to add a new backup proxy or delete a backup proxy.

10. The medium of claim 7 , further comprising automatically remapping one or more of the plurality of virtual machines from one of the backup proxies to the new backup proxy.

11. The medium of claim 7 , wherein a rule indicates that the new backup proxy should be generated when there is insufficient parallelism in the backup system.

12. The medium of claim 7 , wherein a rule indicates that the new backup proxy should be generated when a backup of a particular virtual machine is forecast to take longer than is allowed by a backup service level agreement.

13. A system comprising:

a processing system having at least one hardware processor, the processing system coupled to a memory programmed with executable instructions that, when executed by the processing system, perform operations comprising:

setting a polling timer interval for initiating polling;

periodically polling a virtual machine host according to the polling timer interval to determine a plurality of virtual machines configured on the virtual machine host and attributes about each of the plurality of virtual machines, including at least one of a size of the virtual machine or a size of the data to be backed up for the virtual machine;

determining a number of backup proxies configured for backing up the data of each of the plurality of virtual machines on the virtual machine host and a mapping ratio of virtual machines to the number of backup proxies;

generating a new backup proxy based on the plurality of virtual machines and the number of backup proxies, in response to a rule in a set of one or more rules indicating that the mapping ratio of the plurality of virtual machines to backup proxies exceeds a threshold value, or only one backup proxy is configured for backing up the plurality of virtual machines;

automatically provisioning the new backup proxy based on a predetermined proxy template in response to the one or more rules indicating that the new backup proxy should be generated;

automatically decommissioning one or more of the backup proxies in response to determining that a backup proxy is older than a threshold value of time, or a backup proxy uses an operating system that is outdated by a threshold number of revisions;

spawning a replacement backup proxy to replace each backup proxy decommissioned due to being old or outdated in response to determining that the replacement backup proxy is needed; and

in response to a change in the plurality of virtual machines, generation of one or more new backup proxies, or decommissioning of one or more old; outdated backup proxies, storing an updated list of the virtual machines and the backup proxies and an updated mapping of the virtual machines to the backup proxies in a configuration database; and

updating the polling, timer interval by:

determining a configuration change occurred more than once during a last polling; and

decreasing the polling timer interval to a minimum time interval value between two configuration changes during the last polling, wherein the configuration change comprises the change in the plurality of virtual machines, generation of one or more backup proxies or decommissioning of one or more old/outdated backup proxies.

14. The system of claim 13 , wherein polling the virtual machine host comprises calling an application programming interface to a virtual machine manager on the virtual machine host to receive a list of virtual machines configured on the virtual machine host.

15. The system of claim 13 , further comprising:

analyzing the attributes of the plurality of virtual machines to be backed up, a mapping of the plurality of virtual machines to be backed up, and the backup proxies to determine at least one of: whether to add a new backup proxy or delete a backup proxy.

16. The system of claim 13 , further comprising automatically remapping one or more of the plurality of virtual machines from one of the backup proxies to the new backup proxy.

17. The system of claim 13 , wherein a rule indicates that the new backup proxy should be generated when there is insufficient parallelism in the backup system.

18. The system of claim 13 , wherein a rule indicates that the new backup proxy should be generated when a backup of a particular virtual machine is forecast to take longer than is allowed by a backup service level agreement.

Assignments (9)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2015
From: CHOPRA, SHELESH; MANDIC, VLADIMIR; JONES, MICHAEL
To: EMC CORPORATION
Reel/Frame 036927/0415 →
Cited By (59)
US 12,185,946 US 12,207,820 US 12,207,835 US 12,213,666 US 12,213,671 US 12,220,126 US 12,226,099 US 12,226,100 US 12,232,723 US 12,232,724 US 12,239,316 US 12,245,764 US 12,245,901 US 12,256,930 US 12,256,931 US 12,261,471 US 12,262,888 US 12,274,438 US 12,274,442 US 12,274,445 US 12,285,166 US 12,285,171 US 12,290,259 US 12,290,261 US 12,324,579 US 12,324,580 US 12,324,581 US 12,324,585 US 12,329,381 US 12,336,705 US 12,336,709 US 12,343,013 US 12,357,309 US 12,369,909 US 12,369,911 US 12,369,912 US 12,383,259 US 12,383,267 US 12,414,768 US 12,432,790 US 12,433,584 US 12,433,627 US 12,440,208 US 12,440,209 US 12,440,213 US 12,446,877 US 12,453,557 US 12,458,455 US 12,465,363 US 12,471,982 US 12,502,171 US 12,508,025 US 12,521,116 US 12,527,571 US 12,527,575 US 12,533,126 US 12,533,127 US 12,636,006 US 12,714,425