# US 2023/0054773 A1 · Verifying and Migrating Data Slices in a Storage Network

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

- Number: US 2023/0054773 A1
- Document ID: US20230054773A1
- Status: Published application
- Kind: A1
- Application number: 18/048,604
- Filed: 2022-10-21
- Published: 2023-02-23
- Earliest claimed: 2012-10-08
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Ahmad Alnafoosi; Andrew D. Baptist; Greg R. Dhuse; Jason K. Resch; Ilya Volvovski
- Web page: https://patentgrep.com/patent/US20230054773A1

## CPC

- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units 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 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06T 9/00: Image coding (bandwidth or redundancy reduction for static pictures H04N1/41; coding or decoding of static colour picture signals H04N1/64; methods or arrangements for coding, decoding, compressing or decompressing digital video signals H04N19/00)
- H04L 43/0852: Delays
- H04L 47/70: Admission control; Resource allocation
- 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/61: taking into account QoS or priority requirements
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 63/101: {Access control lists [ACL]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for execution by a storage network includes receiving a request pertaining to a data object. Metadata associated with the data object is determined and used to identify data segments associated with the data object and a set of storage units associated with the data segments. Based on a set of query requests, a response is received from a storage unit from the set of storage units. When the response indicates a storage environment that is unfavorable as compared to predetermined performance metrics, the storage network facilitates migration of encoded data slices associated with the storage unit to another storage unit.

## Claims

### Claim 1

A method for execution in a storage network, the method comprising:
receiving a request pertaining to a data object;
determining metadata associated with the data object;
based on the metadata, identifying one or more data segments associated with the data object;
determining, a set of storage units associated with each of the one or more data segments;
based on a set of query requests, receiving a response from a storage unit of the set of storage units;
determining whether the response indicates an unfavorable storage environment, wherein an unfavorable storage environment is a storage environment that compares unfavorably to predetermined performance metrics; and
when the storage environment compares unfavorably to the predetermined performance metrics, facilitating migration of one or more encoded data slices associated with the storage unit to another storage unit.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating the set of query requests for a data segment of the one or more data segments; and
sending the set of query requests to the set of storage units associated with the data segment.

### Claim 3 (depends on 1)

The method of claim 1, wherein the metadata includes a data identifier for slice location.

### Claim 4 (depends on 1)

The method of claim 1, wherein the metadata is determined based on at least one of receiving the metadata via the storage network, initiating a query, extracting the metadata from an error message, and receiving a user request.

### Claim 5 (depends on 1)

The method of claim 1, wherein the set of storage units associated with each of the one or more data segments is determined based on a list adapted to map metadata to physical storage locations.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
generating a set of slice identifiers for each of the one or more data segments.

### Claim 7 (depends on 6)

The method of claim 6, wherein a slice identifier includes information sufficient to determine a physical storage location for a slice.

### Claim 8 (depends on 7)

The method of claim 7, wherein the physical storage location is determined based on a list adapted to map the slice identifier to a physical storage location.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
generating a storage record for the one or more encoded data slices.

### Claim 10 (depends on 9)

The method of claim 9, wherein information pertaining to the storage record is graphically displayed on a display device associated with a user.

### Claim 11

A processing system of a storage network client module comprises:
at least one processor;
a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to perform operations including:
receiving a request pertaining to a data object;
determining metadata associated with the data object;
based on the metadata, identifying one or more data segments associated with the data object;
determining, a set of storage units associated with each of the one or more data segments;
based on a set of query requests, receiving a response from a storage unit of the set of storage units;
determining whether the response indicates an unfavorable storage environment, wherein an unfavorable storage environment is a storage environment that compares unfavorably to predetermined performance metrics; and
when the storage environment compares unfavorably to the predetermined performance metrics, facilitating migration of one or more encoded data slices associated with the storage unit to another storage unit.

### Claim 12 (depends on 11)

The processing system of claim 11, further comprising:
generating the set of query requests for a data segment of the one or more data segments; and
sending the set of query requests to the set of storage units associated with the data segment.

### Claim 13 (depends on 11)

The processing system of claim 11, wherein the metadata includes a data identifier for slice location.

### Claim 14 (depends on 11)

The processing system of claim 11, wherein the metadata is determined based on at least one of receiving the metadata via the storage network, initiating a query, extracting the metadata from an error message, and receiving a user request.

### Claim 15 (depends on 11)

The processing system of claim 11, wherein the set of storage units associated with each of the one or more data segments is determined based on a list adapted to map metadata to physical storage locations.

### Claim 16 (depends on 11)

The processing system of claim 11, further comprising:
generating a set of slice identifiers for each of the one or more data segments.

### Claim 17 (depends on 16)

The processing system of claim 16, wherein a slice identifier includes information sufficient to determine a physical storage location for a slice.

### Claim 18 (depends on 17)

The processing system of claim 17, wherein the physical storage location is determined based on a list adapted to map the slice identifier to a physical storage location.

### Claim 19 (depends on 11)

The processing system of claim 11, further comprising:
generating a storage record for the one or more encoded data slices.

### Claim 20

A computer readable storage medium comprises:
at least one memory section that stores operational instructions that, when executed by a processing system of a storage network that includes a processor and a memory, causes the processing system to:
receive a request pertaining to a data object;
determine metadata associated with the data object;
based on the metadata, identify one or more data segments associated with the data object;
determine, a set of storage units associated with each of the one or more data segments;
based on a set of query requests, receive a response from a storage unit of the set of storage units;
determine whether the response indicates an unfavorable storage environment, wherein an unfavorable storage environment is a storage environment that compares unfavorably to predetermined performance metrics; and
when the storage environment compares unfavorably to the predetermined performance metrics, facilitate migration of one or more encoded data slices associated with the storage unit to another storage unit.
