File system driven raid rebuild technique
First Claim
1. A method comprising:
- receiving a write request directed towards a logical unit (LUN), the write request having data and processed at a node of a cluster, the node connected to a storage array of solid state drives (SSDs) forming a storage pool;
organizing a first set of the SSDs into a first redundancy group having a first redundancy configuration;
storing the data in a first segment associated with the first redundancy group, wherein the first segment has a log-structured layout, wherein the first segment spans the first redundancy group;
in response to a failed SSD in the first redundancy group, allocating a second segment associated with a second redundancy group, wherein the second segment has a log-structured layout, wherein the second redundancy group is organized from the first set of SSDs excluding the failed SSD, wherein the second segment spans the second redundancy group, wherein the second redundancy group has a second redundancy configuration; and
rebuilding redundancy in response to cleaning the first segment, the rebuilding to retire the failed SSD from use in an active redundancy configuration, the cleaning to consolidate fragmented free space of the storage pool by copying valid blocks of the data from the first segment that spans the first redundancy group organized from the first set of SSDs including the failed SSD to the second segment that spans the second redundancy group organized from the first set of SSDs excluding the failed SSD, according to the second redundancy configuration, while omitting any deleted or overwritten blocks of the data.
0 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a file system driven RAID rebuild technique is provided. A layered file system may organize storage of data as segments spanning one or more sets of storage devices, such as solid state drives (SSDs), of a storage array, wherein each set of SSDs may form a RAID group configured to provide data redundancy for a segment. The file system may then drive (i.e., initiate) rebuild of a RAID configuration of the SSDs on a segment-by-segment basis in response to cleaning of the segment (i.e., segment cleaning). Each segment may include one or more RAID stripes that provide a level of data redundancy (e.g., single parity RAID 5 or double parity RAID 6) as well as RAID organization (i.e., distribution of data and parity) for the segment. Notably, the level of data redundancy and RAID organization may differ among the segments of the array.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving a write request directed towards a logical unit (LUN), the write request having data and processed at a node of a cluster, the node connected to a storage array of solid state drives (SSDs) forming a storage pool; organizing a first set of the SSDs into a first redundancy group having a first redundancy configuration; storing the data in a first segment associated with the first redundancy group, wherein the first segment has a log-structured layout, wherein the first segment spans the first redundancy group; in response to a failed SSD in the first redundancy group, allocating a second segment associated with a second redundancy group, wherein the second segment has a log-structured layout, wherein the second redundancy group is organized from the first set of SSDs excluding the failed SSD, wherein the second segment spans the second redundancy group, wherein the second redundancy group has a second redundancy configuration; and rebuilding redundancy in response to cleaning the first segment, the rebuilding to retire the failed SSD from use in an active redundancy configuration, the cleaning to consolidate fragmented free space of the storage pool by copying valid blocks of the data from the first segment that spans the first redundancy group organized from the first set of SSDs including the failed SSD to the second segment that spans the second redundancy group organized from the first set of SSDs excluding the failed SSD, according to the second redundancy configuration, while omitting any deleted or overwritten blocks of the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
receiving a write request directed towards a logical unit (LUN), the write request having data and processed at a node of a cluster, the node connected to a storage array of solid state drives (SSDs); organizing a first set of the SSDs into a first redundancy group having a first redundancy configuration; storing the data in a first segment associated with the first redundancy group, wherein the first segment has a log-structured layout, wherein the first segment includes a first plurality of stripes according to the first redundancy configuration spanning the first redundancy group, wherein the first plurality of stripes includes a first fixed parity arrangement; and changing a parity arrangement used to store the data in response to cleaning the first segment, the cleaning to consolidate fragmented free space of the storage array by copying valid blocks of the data free the first segment to a second segment associated with a second redundancy group while omitting any deleted or overwritten blocks of the data, wherein the second segment has a log-structured layout, wherein the second segment includes a plurality of stripes according to the first redundancy configuration spanning the second redundancy group, wherein the second plurality of stripes includes a second fixed parity arrangement where parity is stored on one or more different SSDs than the first fixed parity arrangement.
-
-
11. A system comprising:
-
a storage system having a memory connected to a processor via a bus; a storage array coupled to the storage system and having one or more solid state drives (SSDs) forming a storage pool; a storage I/O stack executing on the processor of the storage system, the storage I/O stack when executed operable to; receive a write request having data directed towards a logical unit (LUN); organize a first set of SSDs into a first redundancy group having a first redundancy configuration; store the data in a first segment associated with the first redundancy group, wherein the first segment has a log-structured layout, wherein the first segment spans the first redundancy group; in response to a failed SSD in the first redundancy group, allocate a second segment associated with a second redundancy group, wherein the second segment has a log-structured layout, wherein the second redundancy group is organized from the first set of SSDs excluding the failed SSD, wherein the second segment spans the second redundancy group, wherein the second redundancy group has a second redundancy configuration; and rebuild redundancy in response to cleaning the first segment, the rebuilding to retire the failed SSD from use in an active redundancy configuration, the cleaning to consolidate fragmented free space of the storage pool by copying valid blocks of the data from the first segment that spans the first redundancy group organized from the first set of SSDs including the failed SSD to the second segment that spans the second redundancy group organized from the first set of SSDs excluding the failed SSD, according to the second redundancy configuration, while omitting any deleted or overwritten blocks of the data, wherein the second segment includes a set of chunks, each chunk stored on an SSD of the second redundancy group, wherein a first chunk is written as a contiguous range with temporal locality. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification