# US 9,436,560 B2 · Increasing disaster resiliency by having a pod backed up to other peer pods in a site or beyond

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

- Number: US 9,436,560 B2
- Document ID: US9436560B2
- Status: Granted
- Kind: B2
- Application number: 14/243,405
- Filed: 2014-04-02
- Published: 2015-10-08
- Granted: 2016-09-06
- Earliest claimed: 2014-04-02
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Manish Gupta; Richard E. Harper
- Web page: https://patentgrep.com/patent/US9436560B2

## CPC

- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/1456: {Hardware arrangements for backup}
- G06F 11/1458: {Management of the backup or restore process}
- G06F 2201/805: Real-time
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Increasing disaster resiliency in one aspect may comprise running an optimization algorithm that simultaneously solves for at least a first objective to increase a spread of a backup of virtual machines from a given site onto other sites in proportion to an amount of available space for backup at each site, a second objective to increase a number of backups at one or more of the other sites with low probability of system crash while reducing backups at one or more of the other sites with higher probability of system crash, and a third objective to minimize a violation of recovery time objectives of the virtual machines during recovery. One or more backup sites and one or more recovery sites in an event the given site crashes may be determined based on a solution of the optimization algorithm.

## Claims

### Claim 1

A method of increasing disaster resiliency in computer systems, comprising:
executing, by a processor, an optimization algorithm that solves simultaneously for at least a first objective to increase a spread of a backup of virtual machines from a given site onto other sites in proportion to an amount of available space for backup at each site, a second objective to increase a number of backups at one or more of the other sites with low probability of system crash while reducing backups at one or more of the other sites with higher probability of system crash, and a third objective to minimize a violation of recovery time objectives of the virtual machines during recovery; and
determining one or more backup sites and one or more recovery sites, in an event the given site crashes, based on a solution of the optimization algorithm.

### Claim 2 (depends on 1)

The method of claim 1, wherein the given site and the other sites comprise points of delivery that comprise hosting environments where the virtual machines belonging to one or more applications run.

### Claim 3 (depends on 1)

The method of claim 1, wherein the optimization algorithm is solved subject to a processing capacity constraint associated with at least the other sites, storage capacity constraint associated with at least the other sites, and data privacy constraints associated with at least the virtual machines to be backed up.

### Claim 4 (depends on 1)

The method of claim 1, further comprising constructing a schedule of backups for the virtual machines on one or more of the other sites based on a solution of the optimization algorithm.

### Claim 5 (depends on 1)

The method of claim 1, further comprising constructing a schedule of recovery for the virtual machines on one or more of the other sites based on a solution of the optimization algorithm.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first objective is formulated as:
minimize
⁢
⁢
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
A
s
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
A
r
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
A
r
+
A
s
)
2
,
wherein
sites comprising the given site and the other sites are indexed by iε{1, 2, . . . , N},
ni represents a number of VM instances hosted at site i,
sij represents a rate of backup flow for VM j hosted at site i,
Ai represents available space at site i for keeping backups from other sites,
Xkij=1 if VM j hosted at site i is backed up at site k, otherwise 0.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first objective is formulated as:
minimize
minimize
⁢
⁢
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
)
,
wherein
sites comprising the given site and the other sites are indexed by iε{1, 2, . . . , N},
ni represents a number of VM instances hosted at site i,
sij represents a rate of backup flow for VM j hosted at site i,
xkij=1 if VM j hosted at site i is backed up at site k, otherwise 0.

### Claim 8 (depends on 1)

The method of claim 1, wherein the second objective is formulated as:
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
f
⁡
(
p
r
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
f
⁡
(
p
s
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
f
⁡
(
p
r
)
+
f
⁡
(
p
s
)
)
2
,
wherein
function f represents a crash probability function,
sites comprising the given site and the other sites are indexed by iε{1, 2, . . . , N},
ni represents a number of VM instances hosted at site i,
sij represents a rate of backup flow for VM j hosted at site i,
xkij=1 if VM j hosted at site i is backed up at site k, otherwise 0.

### Claim 9 (depends on 1)

The method of claim 1, wherein the third objective is formulated as:
max
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
max
r
=
1
⁢
⁢
…
⁢
⁢
N
,
r
≠
i
⁢
∑
c
=
1
⁢
⁢
…
⁢
⁢
M
⁢
p
i
⁢
ψ
c
⁡
(
v
ric
)
,
wherein
ψc(.) is a normalized penalty function for recover time objective violation of application c,
sites comprising the given site and the other sites are indexed by iε{1, 2, . . . , N},
pi represents probability that site i crashes,
ni represents a number of VM instances hosted at site i,
sij represents a rate of backup flow for VM j hosted at site i,
xkij=1 if VM j hosted at site i is backed up at site k, otherwise 0.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first objective further comprises a first weight value associated with the first objective, the second objective further comprises a second weight value associated with the second objective, or the third objective further comprises a third weight value associated with the third objective, or combinations thereof.

### Claim 11 (depends on 1)

The method of claim 1, wherein the optimization algorithm comprises:
minimize
⁢
⁢
w
1
⁢
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
A
s
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
A
r
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
A
r
+
A
s
)
2
+
w
⁢
⁢
2
⁢
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
f
⁡
(
p
r
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
f
⁡
(
p
s
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
f
⁡
(
p
r
)
+
f
⁡
(
p
s
)
)
2
+
w
⁢
⁢
3
⁢
max
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
max
r
=
1
⁢
⁢
…
⁢
⁢
N
,
r
≠
i
⁢
∑
c
=
1
⁢
⁢
…
⁢
⁢
M
⁢
p
i
⁢
ψ
c
⁡
(
v
ric
)
,
⁢
wherein
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
A
s
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
A
r
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
A
r
+
A
s
)
2
represents the first objective and w1 represents a configurable weight associated with the first objective,
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
f
⁡
(
p
r
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
f
⁡
(
p
s
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
f
⁡
(
p
r
)
+
f
⁡
(
p
s
)
)
2
represents the second objective and w2 represents a configurable weight associated with the second objective, and
max
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
max
r
=
1
⁢
⁢
…
⁢
⁢
N
,
r
≠
i
⁢
∑
c
=
1
⁢
⁢
…
⁢
⁢
M
⁢
p
i
⁢
ψ
c
⁡
(
v
ric
)
represents the third objective and w3 represents a configurable weight associated with the third objective.

### Claim 12

A non-transitory computer readable storage device storing a program of instructions executable by a machine to perform a method of increasing disaster resiliency in computer systems, comprising:
executing, by a processor, an optimization algorithm that solves simultaneously for at least a first objective to increase a spread of a backup of virtual machines from a given site onto other sites in proportion to an amount of available space for backup at each site, a second objective to increase a number of backups at one or more of the other sites with low probability of system crash while reducing backups at one or more of the other sites with higher probability of system crash, and a third objective to minimize a violation of recovery time objectives of the virtual machines during recovery; and
determining one or more backup sites and one or more recovery sites in an event the given site crashes based on a solution of the optimization algorithm.

### Claim 13 (depends on 12)

The non-transitory computer readable storage device of claim 12, wherein the given site and the other sites comprise points of delivery that comprise hosting environments where the virtual machines belonging to one or more applications run.

### Claim 14 (depends on 12)

The non-transitory computer readable storage device of claim 12, wherein the optimization algorithm is solved subject to a processing capacity constraint associated with at least the other sites, storage capacity constraint associated with at least the other sites, and data privacy constraints associated with at least the virtual machines to be backed up.

### Claim 15 (depends on 12)

The non-transitory computer readable storage device of claim 12, further comprising constructing a schedule of backups for the virtual machines on one or more of the other sites based on a solution of the optimization algorithm.

### Claim 16 (depends on 12)

The non-transitory computer readable storage device of claim 12, further comprising constructing a schedule of recovery for the virtual machines on one or more of the other sites based on a solution of the optimization algorithm.

### Claim 17

A system for increasing disaster resiliency in computer systems, comprising:
an optimization model that solves simultaneously for at least a first objective to increase a spread of a backup of virtual machines from a given site onto other sites in proportion to an amount of available space for backup at each site, a second objective to increase a number of backups at one or more of the other sites with low probability of system crash while reducing backups at one or more of the other sites with higher probability of system crash, and a third objective to minimize a violation of recovery time objectives of the virtual machines during recover; and
a hardware processor operable to execute the optimization model to determine one or more backup sites and one or more recovery sites in an event the given site crashes based on a solution of the optimization model.

### Claim 18 (depends on 17)

The system of claim 17, further comprising:
a memory storing the optimization model, wherein the optimization model solves:
minimize
⁢
⁢
w
1
⁢
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
A
s
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
A
r
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
A
r
+
A
s
)
2
+
w
⁢
⁢
2
⁢
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
f
⁡
(
p
r
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
f
⁡
(
p
s
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
f
⁡
(
p
r
)
+
f
⁡
(
p
s
)
)
2
+
w
⁢
⁢
3
⁢
⁢
max
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
⁢
max
r
=
1
⁢
⁢
…
⁢
⁢
N
,
r
≠
i
⁢
∑
c
=
1
⁢
⁢
…
⁢
⁢
M
⁢
p
i
⁢
ψ
c
⁡
(
v
ric
)
,
⁢
wherein
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
A
s
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
A
r
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
A
r
+
A
s
)
2
represents the first objective and w1 represents a configurable weight associated with the first objective,
∑
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
∑
(
r
,
s
)
,
r
≠
s
≠
i
,
r
,
s
∈
{
1
⁢
⁢
…
⁢
⁢
N
}
⁢
(
f
⁡
(
p
r
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
rij
-
f
⁡
(
p
s
)
⁢
∑
j
=
1
⁢
⁢
…
⁢
⁢
n
i
⁢
x
sij
f
⁡
(
p
r
)
+
f
⁡
(
p
s
)
)
2
represents the second objective and w2 represents a configurable weight associated with the second objective, and
max
i
=
1
⁢
⁢
…
⁢
⁢
N
⁢
max
r
=
1
⁢
⁢
…
⁢
⁢
N
,
r
≠
i
⁢
∑
c
=
1
⁢
⁢
…
⁢
⁢
M
⁢
p
i
⁢
ψ
c
⁡
(
v
ric
)
represents the third objective and w3 represents a configurable weight associated with the third objective.
