# US 11,121,980 B2 · Dynamic provisioning of storage 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 11,121,980 B2
- Document ID: US11121980B2
- Status: Granted
- Kind: B2
- Application number: 16/734,019
- Filed: 2020-01-03
- Published: 2020-05-07
- Granted: 2021-09-14
- Earliest claimed: 2016-08-15
- Assignees: AT&T Intellectual Property I, L.P.
- Applicants: AT&T Intellectual Property I, L.P.
- Inventors: Moo-Ryong Ra; Hee Won Lee
- Web page: https://patentgrep.com/patent/US11121980B2

## CPC

- H04L 47/70: Admission control; Resource allocation
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 47/781: {Centralised allocation of resources}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/562: Brokering proxy services
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system may dynamically provision an underlying storage implementation for cloud storage, such as cloud block storage services. They system allows for deferral of the storage provisioning process to the time at which a tenant actually requests a storage space.

## Claims

### Claim 1

An apparatus comprising:
a processor; and
a memory coupled with the processor, the memory comprising executable instructions that when executed by the processor cause the processor to effectuate operations comprising:
receiving a first request of a plurality of requests associated with a cloud storage;
selecting a first node of a plurality of nodes based on information associated with the first request;
configuring the first node based on information associated with the first request to create a first storage implementation on the first node to support the first request;
receiving a second request of the plurality of requests associated with the cloud storage;
selecting the first node based on information associated with the second request; and
configuring the first node based on information associated with the second request to create a second storage implementation on the first node to support the second request.

### Claim 2 (depends on 1)

The apparatus of claim 1, further operations comprising:
determining whether the first storage implementation or the second storage implementation are a software-RAID based storage implementation;
monitoring the first storage implementation or the second storage implementation to determine whether a service level agreement (SLA) violation has been observed in the first storage implementation or the second storage implementation; and
in response to an SLA violation being observed for the first storage implementation or the second storage implementation, throttling storage traffic sharing the first storage implementation or the second storage implementation.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the first storage implementation and the second storage implementation are different.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the information associated with the first request comprises a type of volume needed and a storage requirement.

### Claim 5 (depends on 1)

The apparatus of claim 1, the operations further comprising:
receiving a third request;
determining information associated with the first node, wherein the information associated with the first node comprises at least one of: a number of disks for the first node, disk types for the first node, and mediums for the first node;
determining whether the first node meets criteria for the third request based on the information associated with the first node and the information associated with the first request and the information associated with the second request; and
in response to determining that the first node meets the criteria for the third request, configuring the first node based on information associated with the third request to create a third storage implementation on the first node to support the third request.

### Claim 6 (depends on 1)

The apparatus of claim 1, the operations further comprising:
receiving a third request;
determining information associated with the first node, wherein the information associated with the first node comprises at least one of: a number of disks for the first node, disk types for the first node, and mediums for the first node;
determining whether the first node meets criteria for the third request based on the information associated with the first node and the information associated with the first request and the second request; and
in response to determining that the first node cannot meet the criteria for the third request, configuring a second node based on information associated with the third request to create a first storage implementation on the second node to support the third request.

### Claim 7 (depends on 1)

The apparatus of claim 1, further operations comprising:
determining whether the first storage implementation or the second storage implementation are a containerized storage implementation; and
responsive to the first storage implementation or the second storage implementation being a containerized storage implementation, inserting a pre-computed performance budget into a file inside the containerized storage implementation.

### Claim 8 (depends on 1)

The apparatus of claim 1, further operations comprising:
determining the first storage implementation or the second storage implementation are a containerized storage implementation; and
instantiating a dynamic throttling service in each container of the containerized storage implementation.

### Claim 9

A system comprising:
a provisioning device, the provisioning device comprising:
a processor; and
a memory coupled with the processor, the memory comprising executable instructions that when executed by the processor cause the processor to effectuate operations comprising:
receiving a first request of a plurality of requests associated with a cloud storage;
selecting a first node of a plurality of nodes based on information associated with the first request;
configuring the first node based on information associated with the first request to create a first storage implementation on the first node to support the first request;
receiving a second request of the plurality of requests associated with the cloud storage;
selecting the first node based on information associated with the second request; and
configuring the first node based on information associated with the second request to create a second storage implementation on the first node to support the second request.

### Claim 10 (depends on 9)

The system of claim 9, further operations comprising:
determining whether the first storage implementation or the second storage implementation are a software-RAID based storage implementation;
monitoring the first storage implementation or the second storage implementation to determine whether a service level agreement (SLA) violation has been observed in the first storage implementation or the second storage implementation; and
in response to an SLA violation being observed for the first storage implementation or the second storage implementation, throttling storage traffic sharing the first storage implementation or the second storage implementation.

### Claim 11 (depends on 9)

The system of claim 9, wherein the first storage implementation and the second storage implementation are different.

### Claim 12 (depends on 9)

The system of claim 9, wherein the information associated with the first request comprises a type of volume needed and a storage requirement.

### Claim 13 (depends on 9)

The system of claim 9, the operations further comprising:
receiving a third request;
determining information associated with the first node, wherein the information comprises at least one of: a number of disks for the first node, disk types for the first node and mediums for the first node;
determining whether the first node meets criteria for the third request based on the information associated with the first node and the information associated with the first request and the second request; and
in response to determining that the first node meets the criteria for the third request, configuring the first node based on information associated with the third request to create a third storage implementation on the first node to support the third request.

### Claim 14 (depends on 13)

The system of claim 13, the operations further comprising, in response to determining that the first node cannot meet the criteria for the third request, configuring a second node based on information associated with the third request to create a first storage implementation on the second node to support the third request.

### Claim 15 (depends on 9)

The system of claim 9, further operations comprising:
determining whether the first storage implementation or the second storage implementation are a containerized storage implementation; and
inserting a pre-computed performance budget into a file inside the containerized storage implementation.

### Claim 16 (depends on 15)

The system of claim 15, further operations comprising instantiating a dynamic throttling service in each container of the containerized storage implementation.

### Claim 17

A method comprising:
receiving, by a provisioning device, a first request of a plurality of requests associated with a cloud storage;
selecting, by a storage broker or a storage manager, a first node of a plurality of nodes based on information associated with the first request;
configuring, by the storage broker or the storage manager, the first node based on information associated with the first request to create a first storage implementation on the first node to support the first request;
receiving, by the provisioning device, a second request of the plurality of requests associated with the cloud storage;
selecting, by the storage manager, the first node based on information associated with the second request; and
configuring, by the storage manager, the first node based on information associated with the second request to create a second storage implementation on the first node to support the second request.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
determining whether the first storage implementation or the second storage implementation are a software-RAID based storage implementation;
monitoring the first storage implementation or the second storage implementation to determine whether a service level agreement (SLA) violation has been observed in the first storage implementation or the second storage implementation; and
in response to an SLA violation being observed for the first storage implementation or the second storage implementation, throttling storage traffic sharing the first storage implementation or the second storage implementation.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
receiving a third request;
determining information associated with the first node, wherein the information comprises at least one of: a number of disks for the first node, disk types for the first node and mediums for the first node;
determining whether the first node meets criteria for the third request based on the information associated with the first node and the information associated with the first request and the second request; and
in response to determining that the first node meets the criteria for the third request, configuring the first node based on information associated with the third request to create a third storage implementation on the first node to support the third request.

### Claim 20 (depends on 17)

The method of claim 17, further comprising:
determining whether the first storage implementation or the second storage implementation are a containerized storage implementation; and
inserting a pre-computed performance budget into a file inside the containerized storage implementation.
