Multiple-stage data lifetime management for storage devices
First Claim
1. A method of managing data lifetime in a multi-device storage environment, the method comprising:
- at a main controller communicatively coupled to a plurality of storage devices, each of the plurality of storage devices having a respective controller and a respective plurality of memory blocks;
determining an initial set of memory block candidates, including receiving, from each respective controller of the plurality of storage devices, information identifying one or more memory block candidates, wherein each memory block candidate of the identified memory block candidates (i) is located in a respective plurality of memory blocks of a respective storage device of the plurality of storage devices and (ii) has been determined by the respective controller to be a candidate for a management operation;
determining a set of related memory blocks, related to the initial set of memory block candidates in accordance with predefined groups of memory blocks sharing redundant data or error correction data, including a first related memory block located in a storage device distinct from a storage device in which a corresponding memory block candidate is located;
receiving usage information for the initial set of memory block candidates and the set of related memory blocks;
selecting a target group of memory blocks of the predefined groups of memory blocks based on the received usage information for the initial set of memory block candidates and set of related memory blocks; and
initiating performance of the management operation on the selected target group of memory blocks.
5 Assignments
0 Petitions
Accused Products
Abstract
A main controller in a data storage system having multiple storage devices determines an initial set of memory block candidates for data lifetime operations by receiving from each of a plurality of the storage devices information identifying one or more potential memory block candidates, with respective received memory blocks having been classified by respective storage devices as potential candidates. The main controller determines a set of related memory blocks, and, based on received usage information for the candidate memory blocks and the related memory blocks, selects a target group of memory blocks and initiates performance of the data lifetime operations on the memory blocks of the selected target group.
-
Citations
21 Claims
-
1. A method of managing data lifetime in a multi-device storage environment, the method comprising:
at a main controller communicatively coupled to a plurality of storage devices, each of the plurality of storage devices having a respective controller and a respective plurality of memory blocks; determining an initial set of memory block candidates, including receiving, from each respective controller of the plurality of storage devices, information identifying one or more memory block candidates, wherein each memory block candidate of the identified memory block candidates (i) is located in a respective plurality of memory blocks of a respective storage device of the plurality of storage devices and (ii) has been determined by the respective controller to be a candidate for a management operation; determining a set of related memory blocks, related to the initial set of memory block candidates in accordance with predefined groups of memory blocks sharing redundant data or error correction data, including a first related memory block located in a storage device distinct from a storage device in which a corresponding memory block candidate is located; receiving usage information for the initial set of memory block candidates and the set of related memory blocks; selecting a target group of memory blocks of the predefined groups of memory blocks based on the received usage information for the initial set of memory block candidates and set of related memory blocks; and initiating performance of the management operation on the selected target group of memory blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A system for managing data lifetime in a multi-device storage environment, the system comprising:
-
a storage device interface for sending commands to and receiving responses from a plurality of storage devices, each of the plurality of storage devices having a respective controller and a respective plurality of memory blocks; controller system memory; and one or more processors configured to execute one or more programs stored in the controller system memory, the one or more programs including instructions for; determining an initial set of memory block candidates, including receiving, via the storage device interface, from each respective controller of the plurality of storage devices, information identifying one or more memory block candidates, wherein each memory block candidate of the identified memory block candidates (i) is located in a respective plurality of memory blocks of a respective storage device of the plurality of storage devices and (ii) has been determined by the respective controller to be a candidate for a management operation; determining a set of related memory blocks, related to the initial set of memory block candidates in accordance with predefined groups of memory blocks sharing redundant data or error correction data, including a first related memory block located in a storage device distinct from a storage device in which a corresponding memory block candidate is located; receiving, via the storage device interface, usage information for the initial set of memory block candidates and the set of related memory blocks; selecting a target group of memory blocks of the predefined groups of memory blocks based on the received usage information for the initial set of memory block candidates and set of related memory blocks; and initiating performance of the management operation on the selected target group of memory blocks. - View Dependent Claims (18, 19, 20)
-
-
21. A system for managing data lifetime in a multi-device storage environment, the system comprising:
-
interface means for sending commands to and receiving responses from a plurality of storage devices, each of the plurality of storage devices having a respective controller and a respective plurality of memory blocks; means for determining an initial set of memory block candidates, including receiving, via the interface means, from each respective controller of the plurality of storage devices, information identifying one or more memory block candidates, wherein each memory block candidate of the identified memory block candidates (i) is located in a respective plurality of memory blocks of a respective storage device of the plurality of storage devices and (ii) has been determined by the respective controller to be a candidate for a management operation; means for determining a set of related memory blocks, related to the initial set of memory block candidates in accordance with predefined groups of memory blocks sharing redundant data or error correction data, including a first related memory block located in a storage device distinct from a storage device in which a corresponding memory block candidate is located; means for receiving, via the interface means, usage information for the initial set of memory block candidates and the set of related memory blocks; means for selecting a target group of memory blocks of the predefined groups of memory blocks based on the received usage information for the initial set of memory block candidates and set of related memory blocks; and means for initiating performance of the management operation on the selected target group of memory blocks.
-
Specification