Flash optimized, log-structured layer of a file system
First Claim
1. A system comprising:
- a central processing unit (CPU) of a node;
one or more storage arrays of solid state drives (SSDs) coupled to the node, each storage array including a first set of segments and a second set of segments, each segment having a contiguous free space on the SSDs, the SSDs organized as one or more redundant array of independent disks (RAID) groups; and
a memory coupled to the CPU and configured to store a layered file system of a storage input/output (I/O) stack, the layered file system including a log-structured layer configured to provide sequential log-structured layout of data and metadata on the SSDs, the data organized as variable-length extents of one or more logical units (LUNs) served by the node, the log-structured layer configured to perform segment cleaning to clean a selected segment from the first set of segments by reading the extents of the selected segment that contain valid data and writing the read extents to one or more different segments so as to maintain a first fraction of free space in the selected segment to enable writing of additional extents as a sequence of contiguous range write operations to the selected segment with temporal locality to reduce data relocation within the SSDs as a result of the write operations, wherein the second set of segments is maintained at a second fraction of free space different from the first fraction of free space.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, storage arrays of solid state drives (SSDs) coupled to a node are organized as redundant array of independent disks (RAID) groups. Each storage array includes one or more segments. Each segment has contiguous free space on the SSDs. Data and metadata is organized on the SSDs with a sequential log-structured layout, with the data organized as variable-length extents of one or more logical units (LUNs). Segment cleaning is performed to clean a selected segment by moving the extents of the selected segment that contain valid data to one or more different segments so as to free the selected segment. Additional extents are written as a sequence of contiguous range write operations to the entire free segment with temporal locality to reduce data relocation within the SSDs as a result of the write operations.
90 Citations
20 Claims
-
1. A system comprising:
-
a central processing unit (CPU) of a node; one or more storage arrays of solid state drives (SSDs) coupled to the node, each storage array including a first set of segments and a second set of segments, each segment having a contiguous free space on the SSDs, the SSDs organized as one or more redundant array of independent disks (RAID) groups; and a memory coupled to the CPU and configured to store a layered file system of a storage input/output (I/O) stack, the layered file system including a log-structured layer configured to provide sequential log-structured layout of data and metadata on the SSDs, the data organized as variable-length extents of one or more logical units (LUNs) served by the node, the log-structured layer configured to perform segment cleaning to clean a selected segment from the first set of segments by reading the extents of the selected segment that contain valid data and writing the read extents to one or more different segments so as to maintain a first fraction of free space in the selected segment to enable writing of additional extents as a sequence of contiguous range write operations to the selected segment with temporal locality to reduce data relocation within the SSDs as a result of the write operations, wherein the second set of segments is maintained at a second fraction of free space different from the first fraction of free space. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
organizing one or more storage arrays of solid state drives (SSDs) coupled to a node as one or more redundant array of independent disks (RAID) groups, each storage array including a first set of segments and a second set segments, each segment having a contiguous free space on the SSDs; organizing, by the node, data and metadata on the SSDs with a sequential log-structured layout, the data organized as variable-length extents of one or more logical units (LUNs) served by the node; mapping LUN offsets to keys associated with the extents; performing segment cleaning to clean a selected segment by reading the extents of the selected segment from the first set of segments that contain valid data and writing the read extents to one or more different segments so as to maintain a first fraction of free space in the selected segment; and writing additional extents as a sequence of contiguous range write operations to the selected segment with temporal locality, wherein the second set of segments is maintained at a second fraction of free space different from the first fraction of free space. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium including program instructions for execution on one or more processors, the program instructions when executed operable to:
-
organize one or more storage arrays of solid state drives (SSDs) as one or more redundant array of independent disks (RAID) groups, each storage array including a first set of segments and a second set of segments, each segment having a contiguous free space on the SSDs; organize data and metadata on the SSDs with a sequential log-structured layout, the data organized as variable-length extents of one or more logical units (LUNs); perform segment cleaning to clean a selected segment from the first set of segments by reading the extents of the selected segment that contain valid data and writing the read extents to one or more different segments so as to maintain a first fraction of free space in the selected segment; maintain the second set of segments at a second fraction of free space different from the first fraction of free space; and write additional extents as a sequence of contiguous range write operations to the selected segment with temporal locality. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification