# US 10,769,020 B2 · Sharing private space among data storage system data rebuild and data deduplication components to minimize private space overhead

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

- Number: US 10,769,020 B2
- Document ID: US10769020B2
- Status: Granted
- Kind: B2
- Application number: 16/263,347
- Filed: 2019-01-31
- Published: 2020-08-06
- Granted: 2020-09-08
- Earliest claimed: 2019-01-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Vamsi K. Vankamamidi; Philippe Armangau; Steven A. Morley; Shuyu Lee; Daniel E. Cummins
- Web page: https://patentgrep.com/patent/US10769020B2

## CPC

- G06F 11/1435: {using file system or storage system metadata}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0614: {Improving the reliability of storage systems}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0641: {De-duplication techniques}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1469: {Backup restoration techniques}
- 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/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 2201/82: Solving problems relating to consistency
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for sharing private space among storage system components. The techniques include determining an amount of private space for each of a rebuild component, an FSCK component, and a deduplication component, reserving private space equal to the sum of (i) the amount determined for the rebuild component and (ii) the maximum of the amounts determined for the FSCK and deduplication components, and allocating the remaining amount of storage space as user space. If a storage device fails, then the rebuild component rebuilds the failed drive data on a hot spare drive in the private space reserved for the rebuild component. If data files become corrupted, then the FSCK component performs offline recovery operations using the private space for the hot spare drive. If such private space for the hot spare drive is unavailable, then the FSCK component performs offline recovery operations using the private space reserved for the deduplication component.

## Claims

### Claim 1

A method of sharing private storage space among storage system components of a data storage system, comprising:
determining a first amount of private storage space for use by a data rebuild component of a data storage system;
determining a second amount of private storage space for use by a file system checking (FSCK) component of the data storage system;
determining a third amount of private storage space for use by a data deduplication component of the data storage system;
determining a sum of (i) the first amount of private storage space determined for use by the data rebuild component and (ii) a maximum of (a) the second amount of private storage space determined for use by the FSCK component and (b) the third amount of private storage space determined for use by the data deduplication component;
allocating, in the data storage system, an amount of private storage space equal to the determined sum; and
sharing the allocated amount of private storage space among the data rebuild component, the FSCK component, and the data deduplication component of the data storage system.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
initially provisioning the first amount, the second amount, and the third amount of private storage space for fewer than all of the data rebuild component, the FSCK component, and the data deduplication component on at least one storage drive of the data storage system, at least one of the data rebuild component, the FSCK component, and the data deduplication component having a determined amount of private storage space not initially provisioned on the at least one storage drive.

### Claim 3 (depends on 2)

The method of claim 2 wherein the initially provisioning of the first amount, the second amount, and the third amount of private storage space includes initially provisioning, as a deduplication index in the allocated amount of the private storage space, the third amount of private storage space determined for use by the data deduplication component.

### Claim 4 (depends on 3)

The method of claim 3 wherein the initially provisioning of the first amount, the second amount, and the third amount of private storage space includes initially provisioning, as a hot spare drive in the allocated amount of the private storage space, the first amount of private storage space determined for use by the data rebuild component in the allocated amount of the private storage space.

### Claim 5 (depends on 4)

The method of claim 4 further comprising:
detecting a failure of a failed storage drive of the data storage system; and
performing, by the data rebuild component, a data rebuild operation to rebuild data of the failed storage drive on the hot spare drive.

### Claim 6 (depends on 4)

The method of claim 4 wherein the data storage system includes a file system, and wherein the method further comprises:
detecting corruption of a data file of the file system; and
having detected the corruption of the data file, taking the data storage system offline.

### Claim 7 (depends on 6)

The method of claim 6 further comprising:
re-provisioning the first amount of private storage space initially provisioned as the hot spare drive for use by the FSCK component; and
performing, by the FSCK component, an FSCK recovery operation to recover inconsistent metadata of the file system to a consistent state using the re-provisioned first amount of private storage space.

### Claim 8 (depends on 6)

The method of claim 6 further comprising:
determining that the hot spare drive is unavailable; and
re-provisioning the third amount of private storage space initially provisioned as the deduplication index for use by the FSCK component.

### Claim 9 (depends on 8)

The method of claim 8 further comprising:
performing, by the FSCK component, an FSCK recovery operation to recover inconsistent metadata of the file system to a consistent state using the re-provisioned third amount of private storage space.

### Claim 10 (depends on 9)

The method of claim 9 further comprising:
having performed the FSCK recovery operation, re-provisioning the third amount of private storage space provisioned for use by the FSCK component as another deduplication index; and
bringing the data storage system back online.

### Claim 11

A data storage system, comprising:
at least one storage drive;
a memory; and
storage processing circuitry configured to execute a computer program out of the memory:
to determine a first amount of private storage space for use by a data rebuild component of a data storage system;
to determine a second amount of private storage space for use by a file system checking (FSCK) component of the data storage system;
to determine a third amount of private storage space for use by a data deduplication component of the data storage system;
to determine a sum of (i) the first amount of private storage space determined for use by the data rebuild component and (ii) a maximum of (a) the second amount of private storage space determined for use by the FSCK component and (b) the third amount of private storage space determined for use by the data deduplication component;
to allocate, in the data storage system, an amount of private storage space equal to the determined sum; and
to share the allocated amount of private storage space among the data rebuild component, the FSCK component, and the data deduplication component of the data storage system.

### Claim 12 (depends on 11)

The data storage system of claim 11 wherein the storage processing circuitry is further configured to execute the computer program out of the memory to initially provision the first amount, the second amount, and the third amount of private storage space for fewer than all of the data rebuild component, the FSCK component, and the data deduplication component on at least one storage drive of the data storage system, at least one of the data rebuild component, the FSCK component, and the data deduplication component having a determined amount of private storage space not initially provisioned on the at least one storage drive.

### Claim 13 (depends on 12)

The data storage system of claim 12 wherein the storage processing circuitry is further configured to execute the computer program out of the memory:
to initially provision, as a deduplication index in the allocated amount of the private storage space, the third amount of private storage space determined for use by the data deduplication component; and
to initially provision, as a hot spare drive in the allocated amount of the private storage space, the first amount of private storage space determined for use by the data rebuild component in the allocated amount of the private storage space.

### Claim 14 (depends on 13)

The data storage system of claim 13 wherein the data storage system includes a file system, and wherein the storage processing circuitry is further configured to execute the computer program out of the memory:
to detect corruption of a data file of the file system;
having detected the corruption of the data file, to take the data storage system offline;
to re-provision the first amount of private storage space initially provisioned as the hot spare drive for use by the FSCK component; and
to perform, by the FSCK component, an FSCK recovery operation to recover inconsistent metadata of the file system to a consistent state using the re-provisioned first amount of private storage space.

### Claim 15 (depends on 13)

The data storage system of claim 13 wherein the storage processing circuitry is further configured to execute the computer program out of the memory:
to determine that the hot spare drive is unavailable;
to re-provision the third amount of private storage space initially provisioned as the deduplication index for use by the FSCK component; and
to perform, by the FSCK component, an FSCK recovery operation to recover inconsistent metadata of the file system to a consistent state using the re-provisioned third amount of private storage space.

### Claim 16 (depends on 15)

The data storage system of claim 15 wherein the storage processing circuitry is further configured to execute the computer program out of the memory:
having performed the FSCK recovery operation, to re-provision the third amount of private storage space provisioned for use by the FSCK component as another deduplication index; and
to bring the data storage system back online.

### Claim 17

A computer program product including a set of non-transitory, computer-readable media having instructions that, when executed by processing circuitry of a computerized apparatus, cause the processing circuitry to perform a method of sharing private storage space among storage system components of a data storage system, the method comprising:
determining a first amount of private storage space for use by a data rebuild component of a data storage system;
determining a second amount of private storage space for use by a file system checking (FSCK) component of the data storage system;
determining a third amount of private storage space for use by a data deduplication component of the data storage system;
determining a sum of (i) the first amount of private storage space determined for use by the data rebuild component and (ii) a maximum of (a) the second amount of private storage space determined for use by the FSCK component and (b) the third amount of private storage space determined for use by the data deduplication component;
allocating, in the data storage system, an amount of private storage space equal to the determined sum; and
sharing the allocated amount of private storage space among the data rebuild component, the FSCK component, and the data deduplication component of the data storage system.
