High reliability, high performance disk array storage system

Electrical computers and digital processing systems: memory – Addressing combined with specific memory configuration or... – Dynamic-type storage device

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S006130

Reexamination Certificate

active

06513093

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to block service storage disk arrays, and more particularly to systems and methods for promoting the reliability and performance of block service computer storage disk arrays.
2. Description of the Related Art
Disk array systems such as reliable arrays of independent disks (RAID) are used to reliably store data by essentially spreading the data over plural disk drives operating in concert. When the below-mentioned technique known as “parity” is used among the data stored on the disks, one disk drive can malfunction but the data temporally lost thereby can nevertheless be recovered.
The following discussion, particularly related to a first embodiment of the present invention, illuminates how disk arrays promote reliability and data recoverability. When data is written to the array, it is not written to a single drive in the array. Instead, the data is “striped” across the array. During manufacturing, each drive is divided (in logic) into sequentially numbered blocks, and when the drives are configured into an array, blocks of the drives having the same logical numbers comprise a “stripe”. A mathematical operation referred to as “XOR” is performed on the blocks of a stripe to yield a parity strip. Should one of the drives subsequently malfunction, each lost strip of data can be recovered by executing an XOR operation on the remaining data blocks of its stripe, along with the parity strip that had been derived from the stripe, to thereby recover the lost data. In addition to the above consideration of reliability, striping data across the drives of a disk drive array can enhance performance by promoting efficient and rapid data access.
As recognized by the present invention, prior art array systems address reliability concerns either by requiring external user applications to act to ensure reliability, or by entering changes to data in special-purpose, high-performance persistent storage, in addition to physically making the changes. Requiring user applications to undertake the reliability function is onerous on the applications, while entering (in persistent storage) all data to be written, as well as physically writing the data to disk, is duplicative. In other words, as recognized herein, maintaining duplicate records of the data—one logically, and one physically—requires the presence of persistent storage, and can degrade performance.
Database systems that store data on disks address the reliability issue by inserting flags in the data as it is stored. This is possible for database systems to do, because database systems typically format the data to be stored in accordance with their own internal formatting protocol. In the event of a subsequent malfunction, the flags can be used to ensure internal data consistency and integrity.
On the other hand, in the case of a block service, to which the present invention is directed, it is impractical to insert such flags in the data. This is because a block service typically does not reformat data received from, e.g., an operating system for storage. Rather, a block service stores the data as received from the operating system, which generally assumes that the block service will store data in 512 byte sectors. Consequently, were database-like flags to be used by a block service, an entire new sector would be required to store the flags, resulting in wasted space and degraded performance attributable to increased input/output (I/O) operations. Fortunately, the present invention recognizes that it is possible to minimize recording data to improve performance while ensuring data recoverability in the event that one drive of an array malfunctions in a block service device.
With further respect to current RAID systems as considered by a second embodiment of the invention, a so-called RAID 1 storage is designed to efficiently execute small writes to the storage medium, whereas a so-called RAID 5 storage is designed with reliability and efficient execution of large reads and Writes in mind. In RAID-1 storage, also referred to as “mirror set” storage, two identical copies of data are maintained on a disk array, whereas in RAID-5 storage, also referred to as “strip set with parity”, data is striped across the disks of an array as described above.
The present invention recognizes, however, that it is not sufficient or trivial to simply combine RAID 1 principles with RAID 5 principles in a single system, without also accounting for heretofore unrecognized hurdles in doing so. For example, in the “Autoraid” system marketed by Hewlett-Packard, elements of RAID-1 storage are combined with elements of RAID-5 storage, but because writes to the RAID-5 storage is undertaken using log-structured write principles to promote efficiency, the writes are always relatively large and are always appended to the end of a log. Unfortunately, as recognized herein, this requires significant post-processing (colloquially referred to as “garbage collection”) and can also destroy the data layout semantics, resulting in degraded performance during subsequent reads. The present invention understands these drawbacks and provides the solutions below.
SUMMARY OF THE INVENTION
The invention is a general purpose computer programmed according to the inventive steps herein to update a block service disk array with new data, reliably and with high performance. “Reliability” includes fault tolerance. The invention can also be embodied as an article of manufacture—a machine component—that is used by a digital processing apparatus and which tangibly embodies a program of instructions that are executable by the digital processing apparatus to execute the present logic. This invention is realized in a critical machine component that causes a digital processing apparatus to perform the inventive method steps herein.
Accordingly, a general purpose computer includes at least one memory and at least one computer usable medium that has computer usable code means for storing data on a data storage device having an old data set stored thereon. As disclosed further below, the computer usable code means includes computer readable code means for receiving an update of at least a portion of the old data set. Also, computer readable code means modify, in memory, the old data set using the update, to render a modification. Moreover, computer readable code means write at least a commit record of the modification to a log, and computer readable code means write at least a portion of the modification to the data storage device.
In a first preferred embodiment, the data storage device is used as a block service, and it includes at least one disk array on which data is stored in strides. The strides establish respective data sets, with each stride defining plural strips. Also, the portion of the old data is at least one old strip and the update is at least one new strip, and computer readable code means generate at least one delta parity strip using the old strip and an old parity strip. Furthermore, computer readable code means generate a new parity strip using the delta parity strip and the modification.
In one implementation of the first preferred embodiment, the means for writing the commit record to the log also writes the modification and the new parity strip to the log. Further, the new parity strip and modification are written to the data storage device, with the modification being written to the physical location of the old data set. The parity strips and the modification can be discarded from memory after the parity strips and the modification have been written to the data storage device.
In a second implementation of the first preferred embodiment, the modification is written to a new physical location on the data storage device that is different from the physical location of the old data set. As intended herein, the new physical location is determined using a stride mapping table. In this implementation, the portion of the old data includes plural old strips of a stride, the update is established

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

High reliability, high performance disk array storage system does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with High reliability, high performance disk array storage system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and High reliability, high performance disk array storage system will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3001312

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.