Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
First Claim
Patent Images
1. A method of avoiding permanent data loss due to a defect in an information storage system, comprising:
- designating a first storage device to store data and not metadata, and a second storage device to store metadata;
determining if the first storage device is a new storage device;
if the first storage device is not a new storage device, determining a number of defective blocks in the first storage device and setting an index to the number of defective blocks in the first storage device; and
if the first storage device is a new storage device, foregoing determining the number of defective blocks in the first storage device and setting the index to zero;
detecting a defective block on the first storage device;
incrementing the index upon detection of the defective block, wherein the index corresponds to a number of defective blocks identified on the first storage device, wherein the first storage device is identified as critical if the index reaches a predetermined value;
in response to detecting the defective block, reconstructing data that was stored at the defective block to a different block on the first storage device, wherein reconstructing data comprises recreating the data originally stored in the defective block without using data from the defective block; and
mapping the defective block to the different block with mapping metadata and storing the mapping metadata in the second storage device, wherein the mapping metadata identifies the defective block, the different block and the logical connection between the defective block and different block, wherein the data that was stored at the defective block is associated with a stripe of data comprising a number of blocks including at least one non-defective block and wherein the at least one non-defective block is not reconstructed.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for preventing permanent data loss due to a single failure in an array of storage devices are described. In particular, a defective memory block is detected and data that was on the now defective memory block is reconstructed using backup data in the array. The reconstructed data is stored in a replacement memory block, without requiring the rewriting of data in non-defective memory blocks. The information mapping the defective memory block to the replacement memory block may be stored as metadata on a storage device.
48 Citations
21 Claims
-
1. A method of avoiding permanent data loss due to a defect in an information storage system, comprising:
-
designating a first storage device to store data and not metadata, and a second storage device to store metadata; determining if the first storage device is a new storage device; if the first storage device is not a new storage device, determining a number of defective blocks in the first storage device and setting an index to the number of defective blocks in the first storage device; and if the first storage device is a new storage device, foregoing determining the number of defective blocks in the first storage device and setting the index to zero; detecting a defective block on the first storage device; incrementing the index upon detection of the defective block, wherein the index corresponds to a number of defective blocks identified on the first storage device, wherein the first storage device is identified as critical if the index reaches a predetermined value; in response to detecting the defective block, reconstructing data that was stored at the defective block to a different block on the first storage device, wherein reconstructing data comprises recreating the data originally stored in the defective block without using data from the defective block; and mapping the defective block to the different block with mapping metadata and storing the mapping metadata in the second storage device, wherein the mapping metadata identifies the defective block, the different block and the logical connection between the defective block and different block, wherein the data that was stored at the defective block is associated with a stripe of data comprising a number of blocks including at least one non-defective block and wherein the at least one non-defective block is not reconstructed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An information storage system, comprising:
-
a first section of a first storage device for storing data that is user accessible, wherein the first section does not store metadata, wherein if the first storage device is not a new storage device, an index is set to a number of defective memory blocks in the first section of the first storage device, wherein if the first storage device is a new storage device, forego setting the index to the number of defective memory blocks in the first section of the first storage device and set the index to zero, wherein the first storage device is identified as critical if the index is at or above a predetermined value; a second section of the first storage device for storing data that is not user accessible, wherein the second section does not store metadata; and a second storage device for storing metadata, wherein metadata stored on the second storage device is a nested link which provides an indication of a relationship between a first memory block in at least one of the first and second sections, a second memory block, and a third memory block, wherein a maximum size of the metadata in the second storage device is configured such that when the second storage device is at capacity the second storage device is identified as critical, wherein the first and second memory blocks are defective memory blocks and the third memory block is a memory block where reconstructed data from the first memory block is stored, wherein reconstructed data comprises data originally stored in the defective block recreated without using data from the defective block. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An information storage system, comprising:
-
an array of storage means comprising at least a first and second storage means, wherein the first storage means stores data and the second storage means stores metadata, wherein the first storage means does not store metadata; and a means for controlling the array of storage means, wherein the means for controlling the array of storage means determines if the first storage means is a new storage means, wherein if the first storage means is not a new storage means the means for controlling the array of storage means sets an index to a number of defective memory blocks in the first storage means, wherein if the first storage means is a new storage means the means for controlling the array of storage means foregoes setting the index to the number of defective memory blocks in the first storage means and sets the index to zero, wherein the first storage means is identified as critical if the index is at or above a predetermined value; wherein the first storage means has a defective block, wherein data stored on the defective block is originally reconstructed by the means for controlling the array of storage means from backup data on storage means other than the second storage means and stored on first alternate block on storage means other than the second storage means, wherein reconstructed data comprises recreating the data originally stored in the defective block without using data from the defective block, wherein the first alternate block is later identified as defective and data originally stored on the defective block is reconstructed on a second alternate block on storage means other than the second storage means, wherein mapping information identifying a relationship between the defective block, the first alternate block, and the third alternate block is stored on the second storage means in connection with the defective block, wherein the data stored on the defective block is associated with a stripe of data comprising a number of blocks including at least one non-defective block, wherein the at least one non-defective block is not reconstructed, and wherein at least one of the first and second alternate blocks and the defective block resides on a different storage means. - View Dependent Claims (18, 19, 20, 21)
-
Specification