# US 12,111,728 B2 · Data recovery method, system, and apparatus in 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,111,728 B2
- Document ID: US12111728B2
- Status: Granted
- Kind: B2
- Application number: 17/883,708
- Filed: 2022-08-09
- Published: 2023-03-09
- Granted: 2024-10-08
- Earliest claimed: 2018-10-25
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Guiyou Pu
- Web page: https://patentgrep.com/patent/US12111728B2

## CPC

- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present disclosure provide a data recovery method in a storage system. A solid state disk is divided into a plurality of fault domains, and each fault domain is used to provide a physical address for a specific range of logical addresses of an SSD, so that when a fault domain of the solid state disk is faulty, it is unnecessary to reconstruct data in the entire SSD.

## Claims

### Claim 1

A configuration method for Solid State Disks (SSDs), comprising:
dividing a storage medium of a first SSD and a second SSD into a plurality of fault domains wherein at least one fault domain is non-contiguous, the first SSD and the second SSD each comprising a plurality of the fault domains, the storage system comprising a chunk group formed based on an erasure code algorithm, and the chunk group comprising a first chunk and a second chunk, an address of the first chunk mapped to a physical address provided by a first fault domain of the first SSD, an address of the second chunk mapped to a physical address provided by a second fault domain of the second SSD, and at least one chunk group mapped to multiple fault domains;
associating a namespace with each fault domain;
receiving fault information of the first SSD, wherein the fault information indicates that the first fault domain is faulty; and
in response to the fault information, recovering, based on the erasure code algorithm, data stored at the address of the first chunk in the chunk group;
wherein each fault domain has its own performance characteristic; and
wherein each fault domain comprises at least one of a channel, a die package, a flash memory chip, a die, and a flash memory plane.

### Claim 2 (depends on 1)

The method of claim 1, wherein the method further comprises:
reporting a logic address in the namespace to a host.

### Claim 3 (depends on 1)

The method of claim 1, wherein the SSD supports an open channel.

### Claim 4 (depends on 1)

The method of claim 1, wherein the SSD has terabyte level capacity.

### Claim 5

A system comprising a first Solid State Disk (SSD) and a second SSD, comprising:
a storage medium; and
an SSD controller coupled to the storage medium and configured to:
divide a storage medium of the first SSD and the second SSD into a plurality of fault domains wherein at least one fault domain is non-contiguous, the first SSD and the second SSD each comprising a plurality of the fault domains, the storage system comprising a chunk group formed based on an erasure code algorithm, and the chunk group comprising a first chunk and a second chunk, an address of the first chunk mapped to a physical address provided by a first fault domain of the first SSD, an address of the second chunk mapped to a physical address provided by a second fault domain of the second SSD, and at least one chunk group mapped to multiple fault domains;
associate a namespace with each fault domain;
receiving fault information of the first SSD, wherein the fault information indicates that the first fault domain is faulty; and
in response to the fault information, recovering, based on the erasure code algorithm, data stored at the address of the first chunk in the chunk group;
wherein each fault domain has its own performance characteristic; and
wherein each fault domain comprises at least one of a channel, a die package, a flash memory chip, a die, and a flash memory plane.

### Claim 6 (depends on 5)

The SSD of claim 5, wherein the SSD controller is further configured to:
report a logic address in the name space to a host.

### Claim 7 (depends on 5)

The SSD of claim 5, wherein the SSD supports an open channel.

### Claim 8 (depends on 5)

The SSD of claim 5, wherein the SSD has terabyte-level capacity.

### Claim 9

A non-transitory computer storage medium, comprising computer instructions configured to cause a processor to perform the following method:
dividing a storage medium of a first solid state drive (SSD) and a second SSD into a plurality of fault domains wherein at least one fault domain is non-contiguous, the first SSD and the second SSD each comprising a plurality of the fault domains, the storage system comprising a chunk group formed based on an erasure code algorithm, and the chunk group comprising a first chunk and a second chunk, an address of the first chunk mapped to a physical address provided by a first fault domain of the first SSD, an address of the second chunk mapped to a physical address provided by a second fault domain of the second SSD, and at least one chunk group mapped to multiple fault domains;
associating a namespace for each fault domain;
receiving fault information of the first SSD, wherein the fault information indicates that the first fault domain is faulty; and
in response to the fault information, recovering, based on the erasure code algorithm, data stored at the address of the first chunk in the chunk group;
wherein each fault domain has its own performance characteristic; and
wherein each fault domain comprises at least one of a channel, a die package, a flash memory chip, a die, and a flash memory plane.

### Claim 10 (depends on 9)

The computer storage medium of claim 9, wherein the computer instructions are further configured to cause the processor to perform:
reporting a logic address in the name space to a host.

### Claim 11 (depends on 9)

The computer storage medium of claim 9, wherein the SSD is an open channel enabled SSD.

### Claim 12 (depends on 9)

The computer storage medium of claim 9, wherein the SSD is an SSD of terabyte-level capacity.
