Efficient flash management for multiple controllers
AssigneePure Storage, Inc.
InventorsNidhi Pankaj Doshi, Eric D. Seppanen, Neil Buda Vachharajani
Life of this patent
Estimating the term…
Abstract
A storage controller coupled to a storage array comprising one or more storage devices receive a request to write data to one of the storage devices. The storage controller determines a first data block on the storage device comprising a list of deallocated data blocks on the storage device, the list comprising a block number of each deallocated data block and an access operation count value at which each deallocated data block was deallocated. The storage controller identifies a second data block from the list of deallocated data blocks on the storage device based on a corresponding access operation count value from the list and writes the data to the second data block.
Claims20
A system comprising:
- a storage array comprising a solid state drive;
- and
- a storage controller coupled to the storage array, the storage controller comprising a processing device, the processing device to:
- receive a request to write data to the solid state drive;
- determine a first data block on the solid state drive comprising a list of deallocated data blocks on the solid state drive, the list comprising a block number of each deallocated data block and an access operation count value at which each deallocated data block was deallocated;
- identify a second data block from the list of deallocated data blocks on the solid state drive based on a corresponding access operation count value from the list;
- and
- write the data to the second data block.
A method comprising:
- detecting a restart of a storage device comprising a plurality of non-volatile data blocks and a volatile memory;
- scanning the plurality of data blocks on the storage device to identify block metadata stored in each of the plurality of data blocks;
- and
- storing, by a processing device in the storage device, the block metadata in a data structure stored in the volatile memory on the storage device, wherein the data structure is accessible by a storage controller coupled to the storage device.
A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:
- access a data structure stored in memory on a storage device, the data structure comprising block metadata for each data block on the storage device;
- determine, from the data structure, a first data block on the storage device comprising a list of deallocated data blocks on the storage device, the list comprising a block number of each deallocated data block and an access operation count value at which each deallocated data block was deallocated;
- and
- compare, by the processing device, a first access operation count value associated with each of the deallocated data blocks from the data structure to a second access operation count value associated with each of the deallocated data blocks from the list of deallocated data blocks.
Dependencies are inferred from the claim text.