# US 12,222,827 B2 · Cost-effective, failure-aware resource allocation and reservation in the cloud

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

- Number: US 12,222,827 B2
- Document ID: US12222827B2
- Status: Granted
- Kind: B2
- Application number: 17/898,824
- Filed: 2022-08-30
- Published: 2024-02-29
- Granted: 2025-02-11
- Earliest claimed: 2022-08-30
- Assignees: NetApp, Inc.
- Applicants: NetApp, Inc.
- Inventors: Ardalan Kangarlou
- Web page: https://patentgrep.com/patent/US12222827B2

## CPC

- G06F 11/2025: {using centralised failover control functionality}
- G06F 9/5072: {Grid computing}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/1484: {involving virtual machines}
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/203: {using migration}
- G06F 11/2069: {Management of state, configuration or failover}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 2201/815: Virtual
- G06F 2209/503: Resource availability
- G06F 2209/505: Clust
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for an improved High-Availability (HA) resource reservation approach are provided. According to one embodiment, for a given cluster of greater than two nodes in which a number (f) of concurrent node failures are to be tolerated, more efficient utilization of resources for an HA system may be achieved by distributing HA reserved capacity across more than f nodes of the cluster rather than naively concentrating the HA reserved capacity in f nodes. As node failures are not a common occurrence, those of the nodes of the cluster having HA reserved capacity may allow for some bursting of one or more units of compute executing thereon unless or until f concurrent node failures occur, thereby promoting more efficient utilization of node resources.

## Claims

### Claim 1

A non-transitory machine readable medium storing instructions, which when executed by a scheduler of a container orchestration platform, cause the scheduler to:
receive information indicative of a number (n) of a plurality of nodes that are part of a high-availability (HA) cluster and an amount (p) of resources to support a given unit of compute of a plurality of units of compute to be scheduled for execution by the HA cluster, wherein n is greater than 2;
for a number (f) of concurrent node failures to be tolerated by the HA cluster, create a schedule for the HA cluster that accommodates concurrent execution of all of the plurality of units of compute by the HA cluster while reserving resource capacity within the HA cluster for failover by, for each unit of compute of the plurality of units of compute:
assigning the unit of compute to a primary node of the plurality of nodes on which the unit of compute will be deployed; and
earmarking a plurality of units of HA reserve each having p resources by replicating an HA reservation for a given unit of HA reserve across f different secondary nodes of the plurality of nodes to accommodate failover of the unit of compute in event of a failure of the primary node, wherein the given unit of HA reserve is earmarked for no other unit of compute of the plurality of units of compute assigned to the primary node; and
schedule the plurality of units of compute on the plurality of nodes in accordance with the schedule.

### Claim 2 (depends on 1)

The non-transitory machine readable medium of claim 1, wherein the instructions further cause the scheduler to derive a value of f based on a desired uptime of a service represented by the plurality of units of compute.

### Claim 3 (depends on 2)

The non-transitory machine readable medium of claim 2, wherein the value of fis derived by performing a mean time between failures (MTBF) analysis or a mean time to failure (MTTF) analysis.

### Claim 4 (depends on 1)

The non-transitory machine readable medium of claim 1, wherein each of the plurality of units of HA reserve is limited to being associated with at most n-f units of compute.

### Claim 5 (depends on 4)

The non-transitory machine readable medium of claim 4, wherein each unit of HA reserve of the plurality of units of HA reserve is atomically earmarked with f−1 other units of HA reserve across f distinct nodes of the plurality of nodes of the HA cluster.

### Claim 6 (depends on 1)

The non-transitory machine readable medium of claim 1, wherein the resources include (i) one or more of central processing unit (CPU) resources or portions thereof and (ii) memory resources.

### Claim 7 (depends on 1)

The non-transitory machine readable medium of claim 1, wherein each unit of compute of the plurality of units of compute comprises a pod, a container, a virtual machine, or a process.

### Claim 8 (depends on 1)

The non-transitory machine readable medium of claim 1, wherein the schedule provides burst capacity on each of the plurality of nodes by spreading the units of HA reserve among the plurality of nodes.

### Claim 9

A computer-implemented method comprising:
receiving information indicative of a number (n) of a plurality of nodes that are part of a cluster and an amount (p) of resources to support a given unit of compute of a plurality of units of compute to be scheduled for execution by the cluster, wherein n is greater than 2;
for a number (f) of concurrent node failures to be tolerated by the cluster, creating a schedule for the cluster that accommodates concurrent execution of all of the plurality of units of compute by the cluster while reserving resource capacity within the cluster for failover by, for each unit of compute of the plurality of units of compute:
assigning the unit of compute to a primary node of the plurality of nodes on which the unit of compute will be deployed; and
earmarking a plurality of units of HA reserve each having p resources by replicating an HA reservation for a given unit of HA reserve across f different secondary nodes of the plurality of nodes to accommodate failover of the unit of compute in event of a failure of the primary node, wherein the given unit of HA reserve is earmarked for no other unit of compute of the plurality of units of compute assigned to the primary node; and
scheduling the plurality of units of compute on the plurality of nodes in accordance with the schedule.

### Claim 10 (depends on 9)

The method of claim 9, further comprising deriving a value of f based on a desired uptime of a service represented by the plurality of units of compute.

### Claim 11 (depends on 10)

The method of claim 10, wherein said deriving a value of f includes performing a mean time between failures (MTBF) analysis or a mean time to failure (MTTF) analysis.

### Claim 12 (depends on 9)

The method of claim 9, wherein each of the plurality of units of HA reserve is limited to being associated with n-f units of compute.

### Claim 13 (depends on 12)

The method of claim 12, wherein each unit of HA reserve of the plurality of units of HA reserve is atomically earmarked with f−1 other units of HA reserve across f distinct nodes of the plurality of nodes of the HA cluster, wherein atomically earmarked units of HA reserve remain the exact replicas of each other going forward.

### Claim 14 (depends on 9)

The method of claim 9, wherein the resources include (i) one or more of central processing unit (CPU) resources or portions thereof and (ii) memory resources.

### Claim 15 (depends on 9)

The method of claim 9, wherein each unit of compute of the plurality of units of compute comprises a pod, a container, or a virtual machine.

### Claim 16 (depends on 9)

The method of claim 9, wherein each unit of compute of the plurality of units of compute comprises a process.

### Claim 17 (depends on 9)

The method of claim 9, wherein the schedule provides burst capacity on each of the plurality of nodes by spreading the units of HA reserve among the plurality of nodes.

### Claim 18

A high-availability (HA) system comprising:
one or more processing resources; and
instructions that when executed by the one or more processing resources cause the HA system or a scheduler associated therewith to:
receive information indicative of a number (n) of a plurality of nodes that are part of a cluster and an amount (p) of resources to support a given unit of compute of a plurality of units of compute to be scheduled for execution by the cluster, wherein n is greater than 2;
for a number (f) of concurrent node failures to be tolerated by the cluster, create a schedule for the cluster that accommodates concurrent execution of all of the plurality of units of compute by the cluster while reserving resource capacity within the cluster for failover by, for each unit of compute of the plurality of units of compute:
assigning the unit of compute to a primary node of the plurality of nodes on which the unit of compute will be deployed; and
earmarking a plurality of units of HA reserve each having p resources by replicating an HA reservation for a given unit of HA reserve across f different secondary nodes of the plurality of nodes to accommodate failover of the unit of compute in event of a failure of the primary node, wherein the given unit of HA reserve is earmarked for no other unit of compute of the plurality of units of compute that are assigned to the primary node; and
scheduling the plurality of units of compute on the plurality of nodes in accordance with the schedule.

### Claim 19 (depends on 18)

The HA system of claim 18, wherein each unit of HA reserve of the units of HA reserve is atomically earmarked with f−1 other units of HA reserve across f distinct nodes of the plurality of nodes of the HA cluster, wherein atomically earmarked units of HA reserve remain the exact replicas of each other going forward.

### Claim 20 (depends on 18)

The HA system of claim 18, wherein each unit of compute of the plurality of units of compute comprises a pod, a container, a virtual machine, or a process and wherein the schedule provides burst capacity on each of the plurality of nodes by spreading the units of HA reserve among the plurality of nodes.
