Method, system, apparatus, and computer-readable medium for improving disk array performance
First Claim
1. A method for writing metadata to a mass storage array comprising two or more mass storage devices, the array being divided into stripes having two or more blocks, the method comprising:
- maintaining metadata relating to the array in a memory;
creating changed metadata from existing metadata stored on the array;
reading a parity block from a stripe of the array where the changed metadata is to be stored;
calculating a new parity for the stripe using only the existing metadata, the changed metadata, and the parity read from the array;
storing the changed metadata on the array; and
storing the new parity on the array.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system, apparatus, and computer-readable medium are provided for improving storage in a disk array are provided. According to aspects of the invention, a redundant disk array is combined with a mechanism for thin provisioning of the array. Thin provisioning refers to a process of allocating physical capacity to logical volumes on an as-needed basis. Data structures containing a mapping between the logical location of stored data and its actual location on a physical device are maintained. Through the use of the thin provisioning mechanism, physical storage space can be allocated sequentially, regardless of the order of logical writes. In this manner, the data stored on the array grows in a linear manner. The data structures maintained by the thin provisioning mechanism can be used to identify the portions of a device or an array that have been previously written. This information allows redundant arrays, such as RAID arrays, to perform initialization, rebuild, and data migration operations only on portions that been written, and not on areas that have not been utilized by a higher layer.
-
Citations
3 Claims
-
1. A method for writing metadata to a mass storage array comprising two or more mass storage devices, the array being divided into stripes having two or more blocks, the method comprising:
-
maintaining metadata relating to the array in a memory; creating changed metadata from existing metadata stored on the array; reading a parity block from a stripe of the array where the changed metadata is to be stored; calculating a new parity for the stripe using only the existing metadata, the changed metadata, and the parity read from the array; storing the changed metadata on the array; and storing the new parity on the array. - View Dependent Claims (2, 3)
-
Specification