# US 10,503,428 B2 · System and method for concurrent multipoint backup

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,428 B2
- Document ID: US10503428B2
- Status: Granted
- Kind: B2
- Application number: 15/964,103
- Filed: 2018-04-27
- Published: 2019-10-31
- Granted: 2019-12-10
- Earliest claimed: 2018-04-27
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Shelesh Chopra; Manish Sharma; Sunil Yadav
- Web page: https://patentgrep.com/patent/US10503428B2

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0664: {at device level, e.g. emulation of a storage device or system}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0671: {In-line storage system}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A remote backup agent that provides support services includes a persistent storage storing a bad host map and a processor that obtains a first support request for a virtual machine of the virtual machines; obtains a capacity analysis of the backup storages in response to the request; makes a first determination, using the capacity analysis, that the backup storages do not have sufficient capacity to service the support request; in response to the first determination: predicts a future capacity of the backup storages and makes a second determination, using the predicted future capacity, that the backup storages have sufficient capacity to service the support request at a future point in time; in response to the second determination: initiates a support session between the remote backup agent and the virtual machine using the bad host map at the future point in time to service the first support request.

## Claims

### Claim 1

A remote backup agent that provides support services to virtual machines using backup storages, comprising:
a persistent storage comprising a bad host map; and
a processor programmed to:
obtain a first support request for a virtual machine of the virtual machines;
obtain a capacity analysis of the backup storages in response to the request;
make a first determination, using the capacity analysis, that the backup storages do not have sufficient capacity to service the support request;
in response to the first determination:
predict a future capacity of the backup storages;
make a second determination, using the predicted future capacity, that the backup storages have sufficient capacity to service the support request at a future point in time; and
in response to the second determination:
initiate a support session between the remote backup agent and the virtual machine using the bad host map at the future point in time to service the first support request.

### Claim 2 (depends on 1)

The remote backup agent of claim 1, wherein the support session comprises:
storing data of the virtual machine in the backup storages.

### Claim 3 (depends on 1)

The remote backup agent of claim 1, wherein the support session comprises:
performing a restoration of the virtual machine using data stored in the backup storages.

### Claim 4 (depends on 1)

The remote backup agent of claim 1, wherein obtaining the capacity analysis of the backup storages comprises:
identify service request time specified by the support request; and
comparing the identified service request time to availability of computing resources of the backup storage.

### Claim 5 (depends on 4)

The remote backup agent of claim 4, wherein the computing resources of the backup storage comprise:
an available communication bandwidth between the backup servers and a production host that hosts the virtual machine.

### Claim 6 (depends on 4)

The remote backup agent of claim 4, wherein the computing resources of the backup storage comprise:
an available cache of the backup service.

### Claim 7 (depends on 4)

The remote backup agent of claim 4, wherein the computing resources of the backup storage comprise:
an available storage throughput of the backup service.

### Claim 8 (depends on 1)

The remote backup agent of claim 1, wherein the processor is further programmed to:
obtain a second support request for a virtual machine of the virtual machines;
make a third determination, using the capacity analysis, that the backup storages do not have sufficient capacity to service the second support request;
in response to the third determination:
make a fourth determination, using the predicted future capacity, that the backup storages have do not sufficient capacity to service the support request at a future point in time; and
in response to the fourth determination:
deny a second support session between the remote backup agent and the virtual machine to service the second support request.

### Claim 9 (depends on 1)

The remote backup agent of claim 1, wherein predicting the future capacity of the backup storages comprises:
identifying a portion of the virtual machines scheduled to have sessions with the backup servers at a prediction time of the future capacity;
estimating a workload of each virtual machine of the portion of the virtual machines;
aggregating the estimate workloads; and
comparing the aggregated workloads to a total computing resources of the backup storages to generate the prediction.

### Claim 10 (depends on 1)

The remote backup agent of claim 1, wherein the remote backup agent is separate from the virtual machines.

### Claim 11 (depends on 1)

The remote backup agent of claim 1, wherein the virtual machines are hosted by production hosts separate from the remote backup agent.

### Claim 12 (depends on 1)

The remote backup agent of claim 1, wherein the processor is further programmed to:
obtain a group support request for a portion of the virtual machines;
in response to the group support request, initiate sequential sessions with each virtual machine of the portion of the virtual machines;
make a third determination, that the sequential sessions did not complete; and
in response to the third determination:
identify a subportion of the portion of the virtual machines for which session were not initiated as part of the sequential session;
updating the bad host map to reflect a production host that hosted a virtual machine for which any session of the sequential sessions failed; and
initiate second sequential sessions with each virtual machine of the subportion of the portion of the virtual machines.

### Claim 13

A method of providing support services to virtual machines, comprising:
obtaining a first support request for a virtual machine of the virtual machines;
obtaining a capacity analysis of the backup storages in response to the request;
making a first determination, using the capacity analysis, that the backup storages do not have sufficient capacity to service the support request;
in response to the first determination:
predicting a future capacity of the backup storages;
making a second determination, using the predicted future capacity, that the backup storages have sufficient capacity to service the support request at a future point in time; and
in response to the second determination:
initiating a support session between the remote backup agent and the virtual machine using the bad host map at the future point in time to service the first support request.

### Claim 14 (depends on 13)

The method of claim 13, wherein the support session comprises:
storing data of the virtual machine in the backup storages.

### Claim 15 (depends on 13)

The method of claim 13, wherein the support session comprises:
performing a restoration of the virtual machine using data stored in the backup storages.

### Claim 16 (depends on 13)

The method of claim 13, wherein obtaining the capacity analysis of the backup storages comprises:
identifying service request time specified by the support request; and
comparing the identified service request time to availability of computing resources of the backup storage.

### Claim 17

A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for providing support services to virtual machines, the method comprising:
obtaining a first support request for a virtual machine of the virtual machines;
obtaining a capacity analysis of the backup storages in response to the request;
making a first determination, using the capacity analysis, that the backup storages do not have sufficient capacity to service the support request;
in response to the first determination:
predicting a future capacity of the backup storages;
making a second determination, using the predicted future capacity, that the backup storages have sufficient capacity to service the support request at a future point in time; and
in response to the second determination:
initiating a support session between the remote backup agent and the virtual machine using the bad host map at the future point in time to service the first support request.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the support session comprises:
storing data of the virtual machine in the backup storages.

### Claim 19 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the support session comprises:
performing a restoration of the virtual machine using data stored in the backup storages.

### Claim 20 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein obtaining the capacity analysis of the backup storages comprises:
identifying service request time specified by the support request; and
comparing the identified service request time to availability of computing resources of the backup storage.
