# US 12,001,726 B2 · Creating a cloud-based storage system

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

- Number: US 12,001,726 B2
- Document ID: US12001726B2
- Status: Granted
- Kind: B2
- Application number: 17/933,674
- Filed: 2022-09-20
- Published: 2023-01-12
- Granted: 2024-06-04
- Earliest claimed: 2018-11-18
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Sergey Zhuravlev; Naveen Neelakantam; Gregory McNutt; Yuval Frandzel
- Web page: https://patentgrep.com/patent/US12001726B2

## CPC

- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0617: {in relation to availability}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0662: {Virtualisation aspects}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5005: {to service a request}
- G06F 9/545: {where tasks reside in different layers, e.g. user- and kernel-space}
- G06F 11/2071: {using a plurality of controllers}
- G06F 11/2092: {Techniques of failing over between control units}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; 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], H04L67/1097)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3447: {Performance evaluation by modeling}
- G06F 16/9035: Filtering based on additional data, e.g. user or group profiles
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- 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]
- G06F 3/0658: {Controller construction arrangements}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Cloning storage systems in a cloud computing environment, including: receiving a request to create a cloud-based storage system; retrieving, from cloud-based object storage, one or more objects to include in the cloud-based storage system; and creating the cloud-based storage system, including storing, in block storage of the cloud-based storage system, data contained in the one or more objects retrieved from the cloud-based object storage.

## Claims

### Claim 1

A method comprising:
creating a cloud-based storage system including assigning at least one cloud computing resource implementing a storage controller application and one or more cloud-based storage devices to the cloud-based storage system;
retrieving, from a cloud-based storage resource, data elements using information that associates the data elements written to the cloud-based storage resource with one or more other cloud-based storage systems wherein the data elements were previously written to the cloud-based storage resource as part of servicing modifying operations directed to the one or more other cloud-based storage systems; and
storing, in the one or more cloud-based storage devices, data contained in the data elements retrieved from the cloud-based storage resource.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining that at least some portion of a dataset stored by the one or more other cloud-based storage systems has not been committed to the cloud-based storage; and
delaying retrieval, from the cloud-based storage resource, of at least one data element to include in the cloud-based storage system.

### Claim 3 (depends on 1)

The method of claim 1, wherein creating the cloud-based storage system includes replicating configuration related information associated with one of the one or more other cloud-based storage systems.

### Claim 4 (depends on 3)

The method of claim 3, wherein the configuration related information comprises information describing connectivity between the one of the one or more other cloud-based storage systems and one or more hosts that issue I/O requests to the one of the one or more other cloud-based storage systems.

### Claim 5 (depends on 1)

The method of claim 1, wherein retrieving data elements to include in the cloud-based storage system comprises retrieving, from the cloud-based storage resource, data elements that contain valid data for the cloud-based storage system.

### Claim 6 (depends on 1)

The method of claim 1, further comprising receiving a request to create the cloud-based storage system, wherein the request to create the cloud-based storage system includes information describing a previous point-in-time, and
wherein retrieving data elements to include in the cloud-based storage system comprises retrieving, from the cloud-based storage resource, data elements that contain data that was valid for the one or more other cloud-based storage systems at the previous point-in-time.

### Claim 7 (depends on 1)

The method of claim 1, wherein invalid data elements associated with the one or more cloud-based storage system are retained in dependence upon a predetermined retention policy.

### Claim 8 (depends on 1)

The method of claim 1, wherein retrieving, from the cloud-based storage resource, data elements to include in the cloud-based storage system includes verifying that each write to the data elements has been acknowledged.

### Claim 9 (depends on 1)

The method of claim 1, further comprising receiving a request to create the cloud-based storage system, wherein the request to create the cloud-based storage system comprises a request to clone one of the one or more other cloud-based storage systems.

### Claim 10

An 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:
creating a cloud-based storage system including assigning at least one cloud computing resource implementing a storage controller application and one or more cloud-based storage devices to the cloud-based storage system;
retrieving, from a cloud-based storage resource, data elements using information that associates the data elements written to the cloud-based storage resource with one or more other cloud-based storage systems wherein the data elements were previously written to the cloud-based storage resource as part of servicing modifying operations directed to the one or more other cloud-based storage systems; and
storing, in the one or more cloud-based storage devices, data contained in the data elements retrieved from the cloud-based storage resource.

### Claim 11 (depends on 10)

The apparatus of claim 10, further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
determining that at least some portion of a dataset stored by the one or more other cloud-based storage systems has not been committed to the cloud-based storage resource; and
delaying retrieval, from the cloud-based storage resource, of at least one data element to include in the cloud-based storage system.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein creating the cloud-based storage system includes replicating configuration related information associated with one of the one or more other cloud-based storage systems.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the configuration related information comprises information describing connectivity between the one of the one or more other cloud-based storage systems and one or more hosts that issue I/O requests to the one of the one or more other cloud-based storage systems.

### Claim 14 (depends on 10)

The apparatus of claim 10, wherein retrieving data elements to include in the cloud-based storage system comprises retrieving, from the cloud-based storage resource, data elements that contain valid data for the cloud-based storage system.

### Claim 15 (depends on 10)

The apparatus of claim 10, further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of receiving a request to create the cloud-based storage system, wherein the request to create the cloud-based storage system includes information describing a previous point-in-time, and
wherein retrieving data elements to include in the cloud-based storage system comprises retrieving, from the cloud-based storage resource, data elements that contain data that was valid for the one or more other cloud-based storage systems at the previous point-in-time.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein invalid data elements associated with the one or more cloud-based storage system are retained in dependence upon a predetermined retention policy.

### Claim 17 (depends on 10)

The apparatus of claim 10, wherein retrieving, from the cloud-based storage resource, data elements to include in the cloud-based storage system includes verifying that each write to the data elements has been acknowledged.

### Claim 18

A computer program product disposed upon a non-transitory computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
creating a cloud-based storage system including assigning at least one cloud computing resource implementing a storage controller application and one or more cloud-based storage devices to the cloud-based storage system;
retrieving, from a cloud-based storage resource, data elements using information that associates the data elements written to the cloud-based storage resource with one or more other cloud-based storage systems wherein the data elements were previously written to the cloud-based storage resource as part of servicing modifying operations directed to the one or more other cloud-based storage systems; and
storing, in the one or more cloud-based storage devices, data contained in the data elements retrieved from the cloud-based storage resource.
