Enhanced file system failure tolerance
First Claim
1. A computer storage system, comprising:
- a plurality of disk drives for storing parity groups, each parity group comprising storage blocks, said storage blocks comprising one or more data blocks and a parity block associated with said one or more data blocks, each of said storage blocks stored on a separate disk drive such that no two storage blocks from a given parity group reside on the same disk drive; and
a recovery module to dynamically recover data lost when at least a portion of one disk drive in said plurality of disk drives becomes unavailable, said recovery module configured to produce a reconstructed block by using information in the remaining storage blocks of a parity group corresponding to an unavailable storage block, store said reconstructed block on a functioning drive in said plurality of disk drives, and update file system metadata to indicate where said reconstructed block is stored.
12 Assignments
0 Petitions
Accused Products
Abstract
An enhanced file system with failure tolerance is described. The enhanced file system includes a plurality of disk drives for storing parity groups, each parity group comprising storage blocks. The storage blocks include one or more data blocks and a parity block associated with the data blocks. Each of the storage blocks is stored on a separate disk drive such that no two storage blocks from a given parity group reside on the same disk drive. A recovery module dynamically recovers data lost when a disk drive becomes unavailable. The recovery module produces a reconstructed block by using information in the remaining storage blocks of a parity group corresponding to an unavailable storage block, and stores the reconstructed block on a functioning drive. The file system metadata is updated to indicate where the reconstructed block is stored.
-
Citations
11 Claims
-
1. A computer storage system, comprising:
-
a plurality of disk drives for storing parity groups, each parity group comprising storage blocks, said storage blocks comprising one or more data blocks and a parity block associated with said one or more data blocks, each of said storage blocks stored on a separate disk drive such that no two storage blocks from a given parity group reside on the same disk drive; and
a recovery module to dynamically recover data lost when at least a portion of one disk drive in said plurality of disk drives becomes unavailable, said recovery module configured to produce a reconstructed block by using information in the remaining storage blocks of a parity group corresponding to an unavailable storage block, store said reconstructed block on a functioning drive in said plurality of disk drives, and update file system metadata to indicate where said reconstructed block is stored. - View Dependent Claims (2, 3, 4, 6)
-
-
5. The computer storage system of claim 23, wherein said recovery module runs in a background process during file system operations.
-
7. A method for storing data in a computer network, comprising:
-
determining a size of a parity group in response to a write request, said size describing a number of data blocks in said parity group;
arranging at least a portion of data from said write request according to said data blocks;
computing a parity block for said parity group;
storing each of said data blocks on a separate disk drive such that no two data blocks from said parity group reside on the same disk drive;
storing said parity block on a separate disk drive that does not contain any of said data blocks;
detecting a storage failure that renders a storage block unavailable as an unavailable storage block;
reconstructing lost data by using information in the remaining storage blocks of a parity group corresponding to said unavailable storage block to produce a reconstructed parity group. - View Dependent Claims (8, 9, 10)
-
-
11. A computer storage system, comprising:
-
a plurality of disk drives for storing parity groups, each parity group comprising storage blocks, said storage blocks comprising one or more data blocks and a parity block associated with said one or more data blocks, each of said storage blocks stored on a separate disk drive such that no two storage blocks from a given parity group reside on the same disk drive; and
means for detecting a storage failure;
means for recovering data lost due to said storage failure by reconstructing a lost storage block of a parity group using information in the available storage blocks of said parity group to produce a reconstructed block, storing said reconstructed block and updating file system metadata to indicate where said reconstructed block is stored.
-
Specification