# US 11,112,990 B1 · Managing storage device evacuation

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

- Number: US 11,112,990 B1
- Document ID: US11112990B1
- Status: Granted
- Kind: B1
- Application number: 16/736,486
- Filed: 2020-01-07
- Granted: 2021-09-07
- Earliest claimed: 2016-04-27
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Andrew Bernat; John Colgrove; Taher Vohra; Andrew Kleinerman; Xiaohui Wang; Benjamin Scholbrock
- Web page: https://patentgrep.com/patent/US11112990B1

## CPC

- G06F 3/0647: {Migration mechanisms}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/0617: {in relation to availability}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G11C 11/4074: Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
- G11C 11/4096: Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
- G11C 11/005: {comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells}
- G11C 16/105: {Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

Managing storage device evacuation that includes a plurality of storage devices, including: detecting, by the storage system, an occurrence of a storage device evacuation event associated with a source storage device within a write group, wherein the write group is a subset of storage devices storing a data set; responsive to detecting the occurrence of the storage device evacuation event, identifying, by the storage system, a target storage device for receiving data stored on the source storage device; and migrating, by the storage system, the data stored on the source storage device to the target storage device.

## Claims

### Claim 1

A method comprising:
detecting, by the storage system, an occurrence of a storage device evacuation event associated with a source storage device within a write group, wherein the write group is a subset of storage devices storing a data set and the storage device evacuation event indicates removal of the source storage device;
responsive to detecting the occurrence of the storage device evacuation event, identifying, by the storage system, a target storage device for receiving data stored on the source storage device;
migrating, by the storage system, the data stored on the source storage device to the target storage device;
combining the write group and a second write group into a third write group spanning the set of storage devices; and
rebuilding segments of the third write group to accommodate a number of storage devices in the set of storage devices, including rebuilding, by a garbage collection process, each segment into a wider segment.

### Claim 2 (depends on 1)

The method of claim 1 wherein the target storage device is one of the subset of storage devices within the write group.

### Claim 3 (depends on 1)

The method of claim 1 wherein migrating, by the storage system, the data stored on the source storage device to the target storage device comprises allocating additional segments within the write group.

### Claim 4 (depends on 1)

The method of claim 1 wherein the source storage device is evacuated without evacuating remaining storage devices in the subset of storage devices within the write group.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining that the write group is a first write group within a set of storage devices comprising the first write group and the second write group.

### Claim 6 (depends on 1)

The method of claim 1 wherein the storage system comprises a plurality of sets of storage devices, and wherein the method further comprises concurrently evacuating at least two of the plurality of sets of storage devices.

### Claim 7

An apparatus comprising a computer processor and a computer memory, the computer memory including computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
detecting, by the storage system, an occurrence of a storage device evacuation event associated with a source storage device within a write group, wherein the write group is a subset of storage devices storing a data set and the storage device evacuation event indicates removal of the source storage device;
responsive to detecting the occurrence of the storage device evacuation event, identifying, by the storage system, a target storage device for receiving data stored on the source storage device;
migrating, by the storage system, the data stored on the source storage device to the target storage device;
combining the write group and a second write group into a third write group spanning the set of storage devices; and
rebuilding segments of the third write group to accommodate a number of storage devices in the set of storage devices, including rebuilding, by a garbage collection process, each segment into a wider segment.

### Claim 8 (depends on 7)

The apparatus of claim 7 wherein the target storage device is one of the subset of storage devices within the write group.

### Claim 9 (depends on 7)

The apparatus of claim 7 wherein migrating, by the storage system, the data stored on the source storage device to the target storage device comprises allocating additional segments within the write group.

### Claim 10 (depends on 7)

The apparatus of claim 7 wherein the source storage device is evacuated without evacuating remaining storage devices in the subset of storage devices within the write group.

### Claim 11 (depends on 7)

The apparatus of claim 7, wherein the computer program instructions further cause the apparatus to carry out the step of:
determining that the write group is a first write group within a set of storage devices comprising the first write group and the second write group.

### Claim 12 (depends on 7)

The apparatus of claim 7 wherein the storage system comprises a plurality of sets of storage devices, and wherein the method further comprises concurrently evacuating at least two of the plurality of sets of storage devices.

### Claim 13

A computer program product disposed on a computer readable storage medium, the computer program product including computer program instructions that, when executed by a computer processor, cause the computer processor to carry out the steps of:
detecting, by the storage system, an occurrence of a storage device evacuation event associated with a source storage device within a write group, wherein the write group is a subset of storage devices storing a data set and the storage device evacuation event indicates removal of the source storage device;
responsive to detecting the occurrence of the storage device evacuation event, identifying, by the storage system, a target storage device for receiving data stored on the source storage device;
migrating, by the storage system, the data stored on the source storage device to the target storage device;
combining the write group and a second write group into a third write group spanning the set of storage devices; and
rebuilding segments of the third write group to accommodate a number of storage devices in the set of storage devices, including rebuilding, by a garbage collection process, each segment into a wider segment.

### Claim 14 (depends on 13)

The computer program product of claim 13 wherein the target storage device is one of the subset of storage devices within the write group.

### Claim 15 (depends on 13)

The computer program product of claim 13 wherein migrating, by the storage system, the data stored on the source storage device to the target storage device comprises allocating additional segments within the write group.

### Claim 16 (depends on 13)

The computer program product of claim 13 wherein the source storage device is evacuated without evacuating remaining storage devices in the subset of storage devices within the write group.

### Claim 17 (depends on 13)

The computer program product of claim 13, wherein the computer program instructions further cause the computer to carry out the step of:
determining that the write group is a first write group within a set of storage devices comprising the first write group and the second write group.
