Dynamic parity distribution technique
First Claim
1. A system adapted to distribute redundant information across disks of an array, the system comprising:
- a storage operating system configured to invoke storage operations executed by a storage system, the storage operating system further configured to manage storage of information, including the redundant information and data, on blocks of the disks in response to disk access operations, the storage operating system including a storage module adapted to compute the redundant information in response to placement of the data in stripes across the disks, the storage operating system maintaining at least one unallocated block per stripe for use by the storage module to store the computed redundant information, wherein the at least one unallocated block used to store the redundant information is located in any disk and wherein the location of the at least one unallocated block use to store the redundant information can change over time.
1 Assignment
0 Petitions
Accused Products
Abstract
A dynamic parity distribution system and technique distributes parity across disks of an array. The dynamic parity distribution system includes a storage operating system that integrates a file system with a RAID system. In response to a request to store (write) data on the array, the file system determines which disks contain free blocks in a next allocated stripe of the array. There may be multiple blocks within the stripe that do not contain file system data (i.e., unallocated data blocks) and that could potentially store parity. One or more of those unallocated data blocks can be assigned to store parity, arbitrarily. According to the dynamic parity distribution technique, the file system determines which blocks hold parity each time there is a write request to the stripe. The technique alternately allows the RAID system to assign a block to contain parity when each stripe is written.
143 Citations
33 Claims
-
1. A system adapted to distribute redundant information across disks of an array, the system comprising:
a storage operating system configured to invoke storage operations executed by a storage system, the storage operating system further configured to manage storage of information, including the redundant information and data, on blocks of the disks in response to disk access operations, the storage operating system including a storage module adapted to compute the redundant information in response to placement of the data in stripes across the disks, the storage operating system maintaining at least one unallocated block per stripe for use by the storage module to store the computed redundant information, wherein the at least one unallocated block used to store the redundant information is located in any disk and wherein the location of the at least one unallocated block use to store the redundant information can change over time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
22. A method for distributing redundant information across disks of an array, the method comprising the steps of:
-
dividing each disk into blocks, the blocks being organized into stripes such that each stripe contains one block from each disk;
selecting any blocks in the stripe not used to contain data to contain the redundant information, wherein the block used to contain the redundant information is located in any disk and wherein the location of the block use to contain the redundant information can change over time; and
computing the redundant information based on contents of all other blocks in the stripe, regardless of whether the blocks contain data. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. Apparatus for distributing redundant information across disks of an array, the apparatus comprising:
-
means for dividing each disk into stripes, with each stripe containing one block from each disk;
means for selecting any blocks in the stripe not used to contain data to contain redundant information, wherein the block used to contain the redundant information is located in any disk and wherein the location of the block use to contain the redundant information can change over time; and
means for computing the redundant information based on contents of all other blocks in the stripe, regardless of whether the blocks contain data. - View Dependent Claims (32)
-
-
33. A computer readable medium containing executable program instructions for distributing parity across disks of an array, the executable instructions comprising one or more program instructions for:
-
dividing each disk into stripes, with each stripe containing one block from each disk;
selecting any blocks in the stripe not used to contain data to contain parity, wherein the block used to contain the parity is located in any disk and wherein the location of the block use to contain the parity can change over time; and
computing the parity based on contents of all other blocks in the stripe, regardless of whether the blocks contain data.
-
Specification