Optimized boot operations within a flash storage array
First Claim
1. An apparatus for identifying and accessing available memory blocks in a flash storage system, the apparatus configured to:
- build a management set that identifies a subset of the memory blocks of the free block list, one or more transitional memory blocks, one or more unincorporated memory blocks, and one or more speculative memory blocks;
before shutdown of the flash storage system, generate a free block list of the memory blocks that are available on the flash storage system; and
during bootup of the flash storage system;
for each memory block on the free block list, determine if the memory block has been correctly listed as available or has been allocated; and
identify all currently available memory blocks in dependence upon determining if the memory block has been correctly listed as available or has been allocated.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for efficiently starting up a plurality of solid-state storage devices. A computing system includes one or more storage devices storing data in multiple allocation units (AUs). In a boot region, a data storage controller maintains an AU management set that identifies a state of various AUs in the system. In various embodiments, the management set includes an identification of a subset of free AUs, transitional AU, unincorporated AUs, and speculative AUs. At various times, information corresponding to the AU management set is stored to non-volatile storage. During a boot sequence, the AU management set information is accessed and the identified AUs are searched to identify allocated AUs rather than performing a search of all of the AUs in the system.
-
Citations
18 Claims
-
1. An apparatus for identifying and accessing available memory blocks in a flash storage system, the apparatus configured to:
-
build a management set that identifies a subset of the memory blocks of the free block list, one or more transitional memory blocks, one or more unincorporated memory blocks, and one or more speculative memory blocks; before shutdown of the flash storage system, generate a free block list of the memory blocks that are available on the flash storage system; and during bootup of the flash storage system; for each memory block on the free block list, determine if the memory block has been correctly listed as available or has been allocated; and identify all currently available memory blocks in dependence upon determining if the memory block has been correctly listed as available or has been allocated. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for identifying and accessing available memory blocks in a flash storage system, the method comprising:
-
building a management set that identifies a subset of the memory blocks of the free block list, one or more transitional memory blocks, one or more unincorporated memory blocks, and one or more speculative memory blocks; before shutdown of the flash storage system, generating a free block list of the memory blocks that are available on the flash storage system; and during bootup of the flash storage system; for each memory block on the free block list, determining if the memory block has been correctly listed as available or has been allocated; and identifying all currently available memory blocks in dependence upon determining if the memory block has been correctly listed as available or has been allocated. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable storage medium for identifying and accessing available memory blocks in a flash storage system, the storage medium storing program instructions executable by a processor to:
-
build a management set that identifies a subset of the memory blocks of the free block list, one or more transitional memory blocks, one or more unincorporated memory blocks, and one or more speculative memory blocks; before shutdown of the flash storage system, generate a free block list of the memory blocks that are available on the flash storage system; and during bootup of the flash storage system; for each memory block on the free block list, determine if the memory block has been correctly listed as available or has been allocated; and identify all currently available memory blocks in dependence upon determining if the memory block has been correctly listed as available or has been allocated. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification