Flash optimized, log-structured layer of a file system
First Claim
1. A method comprising:
- organizing a storage array of solid state drives (SSDs) coupled to a node as a redundant array of independent disks (RAID) group;
organizing data and metadata on the SSDs in a sequential log-structured layout, the data stored as extents of a logical unit (LUN) served by the node;
gathering the extents to form a stripe written as a write operation that spans all of the SSDs in the RAID group; and
controlling a frequency and a size of the write operation to sustain a streaming bandwidth to the SSDs and to override garbage collection in the SSDs.
0 Assignments
0 Petitions
Accused Products
Abstract
A flash-optimized, log-structured layer of a file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The log-structured layer of the file system provides sequential storage of data and metadata (i.e., a log-structured layout) on solid state drives (SSDs) of storage arrays in the cluster to reduce write amplification, while leveraging variable compression and variable length data features of the storage I/O stack. The data may be organized as an arbitrary number of variable-length extents of one or more host-visible logical units (LUNs) served by the nodes. The metadata may include mappings from host-visible logical block address ranges (i.e., offset ranges) of a LUN to extent keys, as well as mappings of the extent keys to SSD storage locations of the extents. The storage location of an extent on SSD is effectively “virtualized” by its mapped extent key (i.e., extent store layer mappings) such that relocation of the extent on SSD does require update to volume layer metadata (i.e., the extent key sufficiently identifies the extent).
70 Citations
20 Claims
-
1. A method comprising:
-
organizing a storage array of solid state drives (SSDs) coupled to a node as a redundant array of independent disks (RAID) group; organizing data and metadata on the SSDs in a sequential log-structured layout, the data stored as extents of a logical unit (LUN) served by the node; gathering the extents to form a stripe written as a write operation that spans all of the SSDs in the RAID group; and controlling a frequency and a size of the write operation to sustain a streaming bandwidth to the SSDs and to override garbage collection in the SSDs. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a processor connected to a memory; a storage array connected to the processor and having solid state drives (SSDs); a storage input/output (I/O) stack executing on the processor to; organize the SSDs as a redundant array of independent disks (RAID) group; organize data and metadata on the SSDs in a sequential log-structured layout, the data stored as extents of a logical unit (LUN) served by the storage I/O stack; gather the extents to form a stripe written as a write operation that spans all of the SSDs in the RAID group; and control a frequency and a size of the write operation to sustain a streaming bandwidth to the SSDs and to override garbage collection in the SSDs. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A non-transitory computer readable medium including program instructions for execution on a processor, the program instructions configured to:
-
organize a storage array of solid state drives (SSDs) coupled to a node a redundant array of independent disks (RAID) group; organize data and metadata on the SSDs in a sequential log-structured layout, the data stored as extents of a logical unit (LUN) served by the node; gather the extents to form a stripe written as a write operation that spans all of the SSDs in the RAID group; and control a frequency and a size of the write operation to sustain a streaming bandwidth to the SSDs and to override garbage collection in the SSDs. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification