# US 11,442,669 B1 · Orchestrating a virtual storage system

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

- Number: US 11,442,669 B1
- Document ID: US11442669B1
- Status: Granted
- Kind: B1
- Application number: 16/842,427
- Filed: 2020-04-07
- Granted: 2022-09-13
- Earliest claimed: 2018-03-15
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Yuval Frandzel; Naveen Neelakantam
- Web page: https://patentgrep.com/patent/US11442669B1

## CPC

- G06F 3/0664: {at device level, e.g. emulation of a storage device or system}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 9/5022: {Mechanisms to release resources}
- 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: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of orchestrating a virtual storage system, the method comprising: determining a change to one or more resource demands; determining, based on the change to the one or more resource demands, one or more modifications to one or more virtual components included as part of a virtual storage system architecture of a virtual storage system within a cloud computing environment; and initiating, responsive to the change to the one or more resource demands, the one or more modifications to the one or more virtual components included as part of the virtual storage system architecture of the virtual storage system.

## Claims

### Claim 1

A method comprising:
determining a change to one or more resource demands on a virtual storage system that is operating under one or more resource constraints in a first virtual storage configuration;
comparing a first cost of maintaining the virtual storage system in the first virtual storage configuration to a second cost of switching the virtual storage system to a second virtual storage configuration;
determining, based on the comparison, one or more modifications to one or more virtual components included as part of a virtual storage system architecture of the virtual storage system within a cloud computing environment; and
initiating, responsive to the change to the one or more virtual storage resource demands, the one or more modifications to the one or more virtual storage components included as part of the virtual storage system architecture of the virtual storage system.

### Claim 2 (depends on 1)

The method of claim 1, wherein orchestrating the virtual storage system is performed at a local computer system, and wherein the cloud computing environment is implemented within a remote site of a cloud services provider.

### Claim 3 (depends on 2)

The method of claim 2, wherein the local computer system provides a virtual computing environment.

### Claim 4 (depends on 2)

The method of claim 2, wherein the local computer system is a physical storage system.

### Claim 5 (depends on 1)

The method of claim 1, wherein the change to the one or more compute resource demands is a decrease in demand for storage resources, computing resources, or both storage and computing resources.

### Claim 6 (depends on 5)

The method of claim 5, wherein, based on the decrease in demand, the one or more modifications include one or more of: suspending some of the virtual components of the virtual storage system; suspending all of the virtual components of the virtual storage system; decommissioning one or more of the virtual components of the virtual storage system; or replacing one or more of the virtual components of the virtual storage system with one or more replacement virtual components with one or more lower performance and/or storage capacity characteristics relative to the one or more virtual components being replaced.

### Claim 7 (depends on 1)

The method of claim 1, wherein the change to the one or more compute resource demands is an increase in demand for storage resources, computing resources, or both storage and computing resources.

### Claim 8 (depends on 7)

The method of claim 7, wherein, based on the increase in demand, the one or more modifications includes one or more of: resuming some of the virtual components of the virtual storage system; resuming all of the virtual components of the virtual storage system; commissioning one or more of the virtual components of the virtual storage system; or replacing one or more of the virtual components of the virtual storage system with one or more replacement virtual components with one or more higher performance and/or storage capacity characteristics relative to the one or more virtual components being replaced.

### Claim 9 (depends on 1)

The method of claim 1, wherein the one or more modifications to one or more virtual components included as part of a virtual storage system architecture include a modification to one or more architectural elements of the virtual storage system, and wherein the modification to the one or more architectural elements include adding or removing a tier of storage or adding or removing storage controllers.

### Claim 10 (depends on 1)

The method of claim 1, wherein the one or more modifications to one or more virtual components included as part of a virtual storage system architecture include changing from using a first type of storage class to using a second type of storage class.

### Claim 11

An apparatus for orchestrating a virtual storage system, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
determining a change to one or more resource demands on a virtual storage system that is operating under one or more resource constraints in a first virtual storage configuration;
comparing a first cost of maintaining the virtual storage system in the first virtual storage configuration to a second cost of switching the virtual storage system to a second virtual storage configuration;
determining, based on the comparison, one or more modifications to one or more virtual components included as part of a virtual storage system architecture of the virtual storage system within a cloud computing environment; and
initiating, responsive to the change to the one or more virtual storage resource demands, the one or more modifications to the one or more virtual storage components included as part of the virtual storage system architecture of the virtual storage system.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein orchestrating the virtual storage system is performed at a local computer system, and wherein the cloud computing environment is implemented within a remote site of a cloud services provider.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the local computer system provides a virtual computing environment.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the local computer system is a physical storage system.

### Claim 15 (depends on 11)

The apparatus of claim 11, wherein the change to the one or more compute resource demands is a decrease in demand for storage resources, computing resources, or both storage and computing resources.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein, based on the decrease in demand, the one or more modifications include one or more of: suspending some of the virtual components of the virtual storage system; suspending all of the virtual components of the virtual storage system; decommissioning one or more of the virtual components of the virtual storage system; or replacing one or more of the virtual components of the virtual storage system with one or more replacement virtual components with one or more lower performance and/or storage capacity characteristics relative to the one or more virtual components being replaced.

### Claim 17 (depends on 11)

The apparatus of claim 11, wherein the change to the one or more compute resource demands is an increase in demand for storage resources, computing resources, or both storage and computing resources.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein, based on the increase in demand, the one or more modifications includes one or more of: resuming some of the virtual components of the virtual storage system; resuming all of the virtual components of the virtual storage system; commissioning one or more of the virtual components of the virtual storage system; or replacing one or more of the virtual components of the virtual storage system with one or more replacement virtual components with one or more higher performance and/or storage capacity characteristics relative to the one or more virtual components being replaced.

### Claim 19 (depends on 11)

The apparatus of claim 11, wherein the one or more modifications to one or more virtual components included as part of a virtual storage system architecture include a modification to one or more architectural elements of the virtual storage system, and wherein the modification to the one or more architectural elements include adding or removing a tier of storage or adding or removing storage controllers.

### Claim 20

A non-transitory computer program product for orchestrating a virtual storage system, the non-transitory computer program product disposed upon a computer readable medium, the non-transitory computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
determining a change to one or more resource demands on a virtual storage system that is operating under one or more resource constraints in a first virtual storage configuration;
comparing a first cost of maintaining the virtual storage system in the first virtual storage configuration to a second cost of switching the virtual storage system to a second virtual storage configuration;
determining, based on the comparison, one or more modifications to one or more virtual components included as part of a virtual storage system architecture of the virtual storage system within a cloud computing environment; and
initiating, responsive to the change to the one or more virtual storage resource demands, the one or more modifications to the one or more virtual storage components included as part of the virtual storage system architecture of the virtual storage system.
