Block consolidation in a direct-mapped flash storage system
First Claim
1. A storage system comprising:
- a plurality of embedded storage devices, wherein each embedded storage device of the plurality of embedded storage devices comprises a direct-mapped solid state drive (SSD) storage portion, wherein the direct-mapped SSD storage has erase blocks mapped as directly addressable storage of the SSD; and
a plurality of storage system controllers, operatively coupled to the plurality of embedded storage devices via a bus, the plurality of storage system controllers to;
maintain a list of a plurality of available allocation units across the respective direct-mapped SSD storage portions of the plurality of embedded storage devices;
receive data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple volumes or file systems and associated metadata;
determine a plurality of shards of the data such that each shard of the plurality of shards is capable of being written in parallel with the remaining shards;
map the plurality of shards to a subset of the plurality of available allocation units, respectively; and
write the plurality of shards to the subset of the plurality of available allocation units in parallel.
1 Assignment
0 Petitions
Accused Products
Abstract
In one implementation, a method includes maintaining a list of available allocation units across a plurality of flash devices of a flash storage system, wherein the flash devices map erase blocks as directly addressable storage, and wherein erase blocks are categorized by the flash storage system as available for use, in use, or unusable, and wherein at least a portion of an erase block can be assigned as an allocation unit. The method further includes receiving data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple file systems and associated metadata. The method further includes determining a plurality of subsets of the data such that each subset is capable of being written in parallel with the remaining subsets, mapping each subset of the plurality of subsets to an available allocation unit, and writing the plurality of subsets in parallel.
-
Citations
20 Claims
-
1. A storage system comprising:
-
a plurality of embedded storage devices, wherein each embedded storage device of the plurality of embedded storage devices comprises a direct-mapped solid state drive (SSD) storage portion, wherein the direct-mapped SSD storage has erase blocks mapped as directly addressable storage of the SSD; and a plurality of storage system controllers, operatively coupled to the plurality of embedded storage devices via a bus, the plurality of storage system controllers to; maintain a list of a plurality of available allocation units across the respective direct-mapped SSD storage portions of the plurality of embedded storage devices; receive data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple volumes or file systems and associated metadata; determine a plurality of shards of the data such that each shard of the plurality of shards is capable of being written in parallel with the remaining shards; map the plurality of shards to a subset of the plurality of available allocation units, respectively; and write the plurality of shards to the subset of the plurality of available allocation units in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A storage system comprising:
-
a plurality of embedded storage devices, wherein each embedded storage device of the plurality of embedded storage devices comprises a direct-mapped solid state drive (SSD) storage portion, wherein the direct-mapped SSD storage has erase blocks mapped as directly addressable storage of the SSD; and a storage system controller, operatively coupled to the plurality embedded storage devices via a bus, the storage system controller to; maintain a list of a plurality of available allocation nits across the respective direct-mapped SSD storage portions of the plurality of embedded storage devices; receive data to be stored to the plurality of available allocation units; determine a plurality of groups of the data such that each group of the plurality of groups is capable of being written in parallel with the remaining groups; map the plurality of groups to a subset of the plurality of available allocation units, respectively; and write the plurality of groups to the subset of the plurality of available allocation units in parallel. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
receive data to be stored to a plurality of available allocation units across a corresponding plurality of direct-mapped solid-state drive (SSD) portions of a plurality of storage devices, wherein the direct-mapped SSD storage has erase blocks mapped as directly addressable storage of the SSD; determine, by a processing device of a storage controller associated with the plurality of storage devices, a plurality of groups of the data such that each group of the plurality of groups is capable of being written in parallel with the remaining groups; map, by the processing device, the plurality of groups to a subset of the plurality of available allocation units, respectively; and write the plurality of groups to the subset of the plurality of available allocation units in parallel. - View Dependent Claims (17, 18, 19, 20)
-
Specification