# US 2017/0286239 A1 · Migrating data slices within a dispersed storage network

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

- Number: US 2017/0286239 A1
- Document ID: US20170286239A1
- Status: Published application
- Kind: A1
- Application number: 15/254,269
- Filed: 2016-09-01
- Published: 2017-10-05
- Earliest claimed: 2016-03-29
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Andrew D. Baptist; Manish Motwani; Jason K. Resch
- Web page: https://patentgrep.com/patent/US20170286239A1

## CPC

- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- 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/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/064: {Management of blocks}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0653: {Monitoring storage devices or systems}
- 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 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- 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/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3692: {for test results analysis}
- H03M 13/1515: {Reed-Solomon codes}
- H03M 13/616: {Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations}
- 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 2201/805: Real-time
- G06F 2201/82: Solving problems relating to consistency
- H03M 13/373: {with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and apparatus for use in a dispersed storage network (DSN) to facilitate migrating encoded data slices in the DSN. In one example, when detecting a failing memory within a dispersed storage unit, an encoded data slice can be encrypted so as to create a migrated data slice with migrated data slice is forward for storage within an alternate dispersed storage unit. A signing key can be further applied to the migrated data slice and/or a nonce can be included within the migrated data slice. In response to a request for the encoded data slice that has been migrated, the dispersed storage unit can receive the migrated data slice from the alternate dispersed storage unit and decrypt the migrated data slice to recover the encoded data slice which can then be forwarded to the requesting entity.

## Claims

### Claim 1

A method for storing data in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage units, the method comprising:
subsequent to detecting a failing memory in a first dispersed storage unit, encrypting a first encoded data slice using an encryption key to produce a migrated data slice;
forwarding the migrated data slice from the first dispersed storage unit for receipt by a second dispersed storage unit;
creating a mapping of the migrated data slice;
receiving a read request for the first encoded data slice; and
using the mapping to request the migrated data slice from the second dispersed storage unit; and
receiving the migrated data slice at the first dispersed storage unit from the second dispersed storage unit.

### Claim 2 (depends on 1)

The method of claim 1, further including receiving the migrated data slice from the second dispersed storage unit and decrypting the received migrated data slice.

### Claim 3 (depends on 1)

The method of claim 1, further including applying a signing key to the migrated data slice to produce a signature prior to forwarding the migrated data slice from the first dispersed storage unit and forwarding the signature from the first dispersed storage unit for receipt by the second dispersed storage unit.

### Claim 4 (depends on 3)

The method of claim 3, wherein the signing key is a keyed-hash message authentication code.

### Claim 5 (depends on 3)

The method of claim 3, further including receiving the migrated data slice from the second dispersed storage unit, decrypting the received migrated data slice and verifying the received migrated data slice using the signing key.

### Claim 6 (depends on 1)

The method of claim 1, further comprising including a nonce within the migrated data slice.

### Claim 7 (depends on 6)

The method of claim 6, further including receiving the migrated data slice from the second dispersed storage unit, decrypting the received migrated data slice and verifying the received migrated data slice by extracting the nonce.

### Claim 8 (depends on 1)

The method of claim 1 further comprising determining whether the first encoded data slice stored in first memory of the first dispersed storage unit can be stored in second memory of the first dispersed storage unit prior to forwarding the migrated data slice from the first dispersed storage unit.

### Claim 9 (depends on 1)

The method of claim 1, further comprising determining whether the second dispersed storage unit has sufficient memory capacity for storing the first encoded data slice prior to forwarding the migrated data slice from the first dispersed storage unit.

### Claim 10 (depends on 1)

The method of claim 1, wherein creating a mapping of the migrated data slice includes creating a mapping of at least one namespace range to the second dispersed storage unit.

### Claim 11

A first dispersed storage unit for storing data in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage units, the first dispersed storage unit comprising:
a communications interface;
a memory; and
a processor;
wherein the memory includes instructions for causing the processor to:
subsequent to detecting a failing memory in the first dispersed storage unit, encrypt a first encoded data slice using an encryption key to produce a migrated data slice;
forward the migrated data slice from the first dispersed storage unit for receipt by a second dispersed storage unit;
create a mapping of the migrated data slice;
receive a read request for the first encoded data slice; and
use the mapping to request the migrated data slice from the second dispersed storage unit; and
receive the migrated data slice at the first dispersed storage unit from the second dispersed storage unit.

### Claim 12 (depends on 11)

The first dispersed storage unit of claim 11, wherein the memory further includes instructions for causing the processor to receive the migrated data slice from the second dispersed storage unit and decrypt the received migrated data slice.

### Claim 13 (depends on 11)

The first dispersed storage unit of claim 11, wherein the memory further includes instructions for causing the processor to apply a signing key to the migrated data slice to produce a signature prior to forwarding the migrated data slice from the first dispersed storage unit and forward the signature from the first dispersed storage unit for receipt by the second dispersed storage unit.

### Claim 14 (depends on 13)

The first dispersed storage unit of claim 13, wherein the signing key is a keyed-hash message authentication code.

### Claim 15 (depends on 13)

The first dispersed storage unit of claim 13, wherein the memory further includes instructions for causing the processor to receive the migrated data slice from the second dispersed storage unit, decrypt the received migrated data slice, and verify the received migrated data slice using the signing key.

### Claim 16 (depends on 11)

The first dispersed storage unit of claim 11, wherein the memory further includes instructions for causing the processor to include a nonce within the migrated data slice.

### Claim 17 (depends on 16)

The first dispersed storage unit of claim 16, wherein the memory further includes instructions for causing the processor to receive the migrated data slice from the second dispersed storage unit, decrypt the receiving migrated data slice and verify the received migrated data slice by extracting the nonce.

### Claim 18 (depends on 11)

The first dispersed storage unit of claim 11, wherein the memory further includes instructions for causing the processor to determine whether the first encoded data slice stored in first memory of the first dispersed storage unit can be stored in second memory of the first dispersed storage unit prior to forwarding the migrated data slice from the first dispersed storage unit.

### Claim 19 (depends on 11)

The first dispersed storage unit of claim 11, wherein the memory further includes instructions for causing the processor to determine whether the second dispersed storage unit has sufficient memory capacity for storing the first encoded data slice prior to forwarding the migrated data slice from the first dispersed storage unit.

### Claim 20 (depends on 11)

The first dispersed storage unit of claim 11, wherein the memory further includes instructions for causing the processor to create a mapping of the migrated data slice including a mapping of at least one namespace range to the second dispersed storage unit.
