# US 10,768,822 B2 · Increasing storage capacity in heterogeneous storage arrays

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

- Number: US 10,768,822 B2
- Document ID: US10768822B2
- Status: Granted
- Kind: B2
- Application number: 16/261,076
- Filed: 2019-01-29
- Published: 2020-07-30
- Granted: 2020-09-08
- Earliest claimed: 2019-01-29
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Lokesh M. Gupta; Karl A. Nielsen; Matthew G. Borlick; Kevin J. Ash
- Web page: https://patentgrep.com/patent/US10768822B2

## CPC

- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0629: {Configuration or reconfiguration of storage systems}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- 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 11/1088: {Reconstruction on already foreseen single or plurality of spare disks}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for increasing effective storage capacity in a heterogeneous storage array is disclosed. In one embodiment, such a method determines a number of smaller-capacity storage drives and a number of larger-capacity storage drives in a storage array. The method further determines which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives. Using this information, the method establishes a first set of RAID arrays in the storage array that will be composed exclusively of the larger-capacity storage drives and a second set of RAID arrays that may contain the smaller-capacity storage drives. The method then initiates a process to swap the smaller-capacity storage drives in the first set with the larger-capacity storage drives in the second set until the first set of RAID arrays is composed exclusively of the larger-capacity storage drives. A corresponding system and computer program product are also disclosed.

## Claims

### Claim 1

A method for increasing effective storage capacity in a heterogeneous storage array, the method comprising:
determining a number of larger-capacity storage drives that are utilized in a storage array, the storage array containing the larger-capacity storage drives and a quantity of smaller-capacity storage drives;
taking into account the number, determining which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives;
establishing a first set of RAID arrays in the storage array that will be composed exclusively of the larger-capacity storage drives and a second set of RAID arrays that may contain the smaller-capacity storage drives; and
initiating a process to swap the smaller-capacity storage drives in the first set with the larger-capacity storage drives in the second set until the first set of RAID arrays is composed exclusively of the larger-capacity storage drives.

### Claim 2 (depends on 1)

The method of claim 1, wherein initiating the process comprises initiating the process at designated intervals.

### Claim 3 (depends on 1)

The method of claim 1, wherein initiating the process comprises initiating the process when new storage drives are added to the storage array.

### Claim 4 (depends on 1)

The method of claim 1, wherein initiating the process comprises initiating the process when a storage drive in the storage array fails.

### Claim 5 (depends on 1)

The method of claim 1, wherein determining which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives comprises taking into account the number of larger-capacity storage drives in the storage array and a number of storage drives that are contained in each of the RAID arrays.

### Claim 6 (depends on 1)

The method of claim 1, further comprising increasing an effective storage capacity of a particular RAID array in the storage array once it is composed exclusively of the larger-capacity storage drives.

### Claim 7 (depends on 6)

The method of claim 6, further comprising notifying a user that the effective storage capacity of the particular RAID array has increased.

### Claim 8

A computer program product for increasing effective storage capacity in a heterogeneous storage array, the computer program product comprising a computer-readable medium having computer-usable program code embodied therein, the computer-usable program code configured to perform the following when executed by at least one processor:
determine a number of larger-capacity storage drives that are utilized in a storage array, the storage array containing the larger-capacity storage drives and a quantity of smaller-capacity storage drives;
taking into account the number, determine which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives;
establish a first set of RAID arrays in the storage array that will be composed exclusively of the larger-capacity storage drives and a second set of RAID arrays that may contain the smaller-capacity storage drives; and
initiate a process to swap the smaller-capacity storage drives in the first set with the larger-capacity storage drives in the second set until the first set of RAID arrays is composed exclusively of the larger-capacity storage drives.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein initiating the process comprises initiating the process at designated intervals.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein initiating the process comprises initiating the process when new storage drives are added to the storage array.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein initiating the process comprises initiating the process when a storage drive in the storage array fails.

### Claim 12 (depends on 8)

The computer program product of claim 8, wherein determining which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives comprises taking into account the number of larger-capacity storage drives in the storage array and a number of storage drives that are contained in each of the RAID arrays.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein the computer-usable program code is further configured to increase an effective storage capacity of a particular RAID array in the storage array once it is composed exclusively of the larger-capacity storage drives.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the computer-usable program code is further configured to notify a user that the effective storage capacity of the particular RAID array has increased.

### Claim 15

A system for increasing effective storage capacity in a heterogeneous storage array, the system comprising:
at least one processor;
at least one memory device coupled to the at least one processor and storing instructions for execution on the at least one processor, the instructions causing the at least one processor to:
determine a number of larger-capacity storage drives that are utilized in a storage array, the storage array containing the larger-capacity storage drives and a quantity of smaller-capacity storage drives;
taking into account the number, determine which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives;
establish a first set of RAID arrays in the storage array that will be composed exclusively of the larger-capacity storage drives and a second set of RAID arrays that may contain the smaller-capacity storage drives; and
initiate a process to swap the smaller-capacity storage drives in the first set with the larger-capacity storage drives in the second set until the first set of RAID arrays is composed exclusively of the larger-capacity storage drives.

### Claim 16 (depends on 15)

The system of claim 15, wherein initiating the process comprises initiating the process at designated intervals.

### Claim 17 (depends on 15)

The system of claim 15, wherein initiating the process comprises initiating the process when new storage drives are added to the storage array.

### Claim 18 (depends on 15)

The system of claim 15, wherein initiating the process comprises initiating the process when a storage drive in the storage array fails.

### Claim 19 (depends on 15)

The system of claim 15, wherein determining which RAID arrays in the storage array may be composed exclusively of the larger-capacity storage drives comprises taking into account the number of larger-capacity storage drives in the storage array and a number of storage drives that are contained in each of the RAID arrays.

### Claim 20 (depends on 15)

The system of claim 15, wherein the instructions further cause the at least one processor to increase an effective storage capacity of a particular RAID array in the storage array once it is composed exclusively of the larger-capacity storage drives.
