Method and system for replicating and using grid level metadata in a storage system
First Claim
Patent Images
1. A method for storing data comprising:
- (a) generating a first plurality of labels each comprising a first program/erase (P/E) count for a first zone in a RAID grid and first bad location information for the first zone, wherein the first zone comprises a first set of RAID grid locations and a second set of RAID grid locations, wherein the first zone is divided into a first side and a second side, wherein the first side comprises the first set of RAID grid locations and the second side comprises the second set of RAID grid locations, wherein the first set of RAID grid locations corresponds to at least a page in a first storage device of a storage array and a second page in a second storage device of the storage array;
(b) erasing each of the first set of RAID grid locations;
(c) writing one of the first plurality of labels to at least one page in each of the first set of RAID grid locations;
(d) erasing each of the second set of RAID grid locations, wherein (b) and (c) are performed before (d);
(e) generating a second plurality of labels each comprising a second program/erase (P/E) count for the first zone in the RAID grid and second bad location information for the first zone, wherein content in the second plurality of labels is based, at least in part, on (b) and (d);
(f) writing one of the second plurality of labels to at least one page in each of the second set of RAID grid locations; and
(g) writing user data to each of the first set of RAID grid locations and each of the second set of RAID grid locations, wherein the user data comprises client data, block-level metadata, and parity data, wherein after (g), at least one of the first set of RAID grid locations comprises a block, wherein at least one page in the block comprises user data and at least one page in the block comprises one of the first plurality of labels.
9 Assignments
0 Petitions
Accused Products
Abstract
In general, embodiments of the technology relate to a method and system protecting data in persistent storage. More specifically, various embodiments of the technology relate to using different replication schemes to protect different types of data within the persistent storage.
-
Citations
20 Claims
-
1. A method for storing data comprising:
-
(a) generating a first plurality of labels each comprising a first program/erase (P/E) count for a first zone in a RAID grid and first bad location information for the first zone, wherein the first zone comprises a first set of RAID grid locations and a second set of RAID grid locations, wherein the first zone is divided into a first side and a second side, wherein the first side comprises the first set of RAID grid locations and the second side comprises the second set of RAID grid locations, wherein the first set of RAID grid locations corresponds to at least a page in a first storage device of a storage array and a second page in a second storage device of the storage array; (b) erasing each of the first set of RAID grid locations; (c) writing one of the first plurality of labels to at least one page in each of the first set of RAID grid locations; (d) erasing each of the second set of RAID grid locations, wherein (b) and (c) are performed before (d); (e) generating a second plurality of labels each comprising a second program/erase (P/E) count for the first zone in the RAID grid and second bad location information for the first zone, wherein content in the second plurality of labels is based, at least in part, on (b) and (d); (f) writing one of the second plurality of labels to at least one page in each of the second set of RAID grid locations; and (g) writing user data to each of the first set of RAID grid locations and each of the second set of RAID grid locations, wherein the user data comprises client data, block-level metadata, and parity data, wherein after (g), at least one of the first set of RAID grid locations comprises a block, wherein at least one page in the block comprises user data and at least one page in the block comprises one of the first plurality of labels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to:
-
(a) generate a first plurality of labels each comprising a first program/erase (P/E) count for a first zone in a RAID grid and first bad location information for the first zone, wherein the first zone comprises a first set of RAID grid locations and a second set of RAID grid locations, wherein the first zone is divided into a first side and a second side, wherein the first side comprises the first set of RAID grid locations and the second side comprises the second set of RAID grid locations, wherein the first set of RAID grid locations corresponds to at least a page in a first storage device of a storage array and a second page in a second storage device of the storage array; (b) erase each of the first set of RAID grid locations; (c) write one of the first plurality of labels to at least one page in each of the first set of RAID grid locations; (d) erase each of the second set of RAID grid locations, wherein (b) and (c) are performed before (d); (e) generate a second plurality of labels each comprising a second program/erase (P/E) count for the first zone in the RAID grid and second bad location information for the first zone, wherein content in the second plurality of labels is based, at least in part, on (b) and (d); (f) write one of the second plurality of labels to at least one page in each of the second set of RAID grid locations; and (g) write user data to each of the first set of RAID grid locations and each of the second set of RAID grid locations, wherein the user data comprises client data, block-level metadata, and parity data, wherein after (g), at least one of the first set of RAID grid locations comprises a block, wherein at least one page in the block comprises user data and at least one page in the block comprises one of the first plurality of labels. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A system, comprising:
-
a controller; a non-transitory medium operatively connected to the controller; persistent storage operatively connected to the controller and comprising a plurality of storage modules, wherein each of the plurality of storage modules comprises solid state memory; wherein the non-transitory computer readable medium comprises instructions which when executed by the controller performs a method, the method comprising; (a) generating a first plurality of labels each comprising a first program/erase (P/E) count for a first zone in a RAID grid and first bad location information for the first zone, wherein the first zone comprises a first set of RAID grid locations and a second set of RAID grid locations, wherein the first zone is divided into a first side and a second side, wherein the first side comprises the first set of RAID grid locations and the second side comprises the second set of RAID grid locations, wherein the first set of RAID grid locations corresponds to at least a page in a first storage device of a storage array and a second page in a second storage device of the storage array; (b) erasing each of the first set of RAID grid locations; (c) writing one of the first plurality of labels to at least one of each of the first set of RAID grid locations; (d) erasing each of a second set of RAID grid locations, wherein (b) and (c) are performed before (d); (e) generating a second plurality of labels each comprising a second program/erase (P/E) count for the first zone in the RAID grid and second bad location information for the first zone, wherein content in the second plurality of labels is based, at least in part, on (b) and (d); (f) writing one of the second plurality of labels to at least one page in each of the second set of RAID grid locations; and (g) writing user data to each of the first set of RAID grid locations and each of the second set of RAID grid locations, wherein the user data comprises client data, block-level metadata, and parity data, wherein after (g), at least one of the first set of RAID grid locations comprises a block, wherein at least one page in the block comprises user data and at least one page in the block comprises one of the first plurality of labels, and wherein each of the blocks is located on one of the plurality of storage modules.
-
Specification