Patentable/Patents/US-8032782
US-8032782

System, method, and service for providing a generic RAID engine and optimizer

PublishedOctober 4, 2011
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A generic RAID engine system accepts an access request, accepts a metadata input comprising a layout description and, optionally, a plurality of resource optimization objectives, accepts a dynamic input comprising a dynamic state of an I/O stack comprising the generic RAID engine and a fault configuration of a plurality of storage devices in the I/O stack, and accepts RAID code input comprising information about the RAID code used by the I/O stack. The metadata input, the dynamic input, and the RAID code input are utilized to transform the access request into individual device reads and individual device writes such that RAID code relationships for the storage devices are maintained at all times. An optional optimizer module selects strategies that meet the resource optimization objectives.

Patent Claims
13 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A processor-implemented method of providing a RAID engine, comprising; accepting an access request comprising any of the following I/O operations: a read request, a write request, a file read request, a file write request, a block read request, a block write request, a stripe rebuild request, a stripe scrub request, and a stripe migrate request; accepting a metadata input comprising a layout description and, optionally, a plurality of resource optimization objectives; accepting a dynamic input comprising a dynamic state of an I/O stack comprising the RAID engine and a fault configuration of a plurality of storage devices in the I/O stack; accepting a generator matrix input comprising information about a RAID code used by one or more of the I/O operations; transforming the write request, wherein the transforming of the write request comprises: constructing a plurality of affected parity vectors, preparing a plurality of failure vectors as required by a degraded layout; computing a plurality of inverse matrices; generating a plurality of sub-plans by combining individual vectors, reblockinq the vectors as per the physical layout; and generating a write I/O plan comprising the inverse matrices for performing individual device reads, XORs and writes; transforming the read request, wherein the transforming of the read request comprises: determining if any faults exist in one or more of the storage devices that prevent a successful read, wherein if faults exist, performing the following steps: computing a pseudo-inverse matrix of the generator matrix input for the RAID code; translating the pseudo-inverse matrix for consideration to device reads and XORs; and generating a read I/O plan for performing individual device reads and XORs; implementing RAID scrubbing by generating a parity check matrix based on the generator matrix input for the RAID code and utilizing the parity check matrix to ensure that all elements in the RAID code maintain the necessary RAID relationship at all times; and providing an optimizer for optimizing I/O plans for available hardware resources.

2

2. The method of claim 1 , wherein the layout description comprises a description of a rotation, a stripe size, and an element size of each of a plurality of disks in the storage devices.

3

3. The method of claim 1 , wherein the resource optimization objectives comprise minimizing disk I/O and minimizing memory bus bandwidth for the access request.

4

4. The method of claim 1 , wherein the dynamic input comprises a description of a data cache of the I/O stack regarding a description of clean pages in the data cache, a description of dirty pages in the data cache, the clean pages and the dirty pages being in a W-neighborhood of a page to be any of read and written.

5

5. The method of claim 1 , wherein the fault configuration comprises a description of a plurality of known sector failures and a plurality of known disk failures.

6

6. The method of claim 1 , further comprising transforming the access request by any of executing a rebuild, and executing a migrate.

7

7. The method of claim 1 , further comprising implementing a RAID migration by employing different generator matrices for each of a source target RAID layout and a target RAID layout.

8

8. The method of claim 1 , wherein the RAID engine automatically optimizes read, write, and XOR operations necessary to complete the read, write, rebuild, scrub, and migrate operations.

9

9. A computer program product having a plurality of executable instruction codes stored on a computer usable storage medium, for providing a RAID engine, comprising: a set of instruction codes for accepting an access request comprising any of the following I/O operations: a read request, a write request, a file read request, a file write request, a block read request, a block write request, a stripe rebuild request, a stripe scrub request, and a stripe migrate requests; a set of instruction codes for accepting a metadata input comprising a layout description and, optionally, a plurality of resource optimization objectives; a set of instruction codes for accepting a dynamic input comprising a dynamic state of an I/O stack comprising the RAID engine and a fault configuration of a plurality of storage devices in the I/O stack; a set of instruction codes for accepting a generator matrix input comprising information about a RAID code used by an one or more of the I/O operations; a set of instruction codes for transforming the write request, wherein the transforming of the write request comprises: constructing a plurality of affected parity vectors, preparing a plurality of failure vectors as required by a degraded layout; computing a plurality of inverse matrices; generating a plurality of sub-plans by combining individual vectors, reblockinq the vectors as per the physical layout; and generating a write I/O plan comprising the inverse matrices for performing individual device reads, XORs and writes; a set of instruction codes for transforming the read request, wherein the transforming of the read request comprises: determining if any faults exist in one or more of the storage devices that prevent a successful read, wherein if faults exist, performing the following steps: computing a pseudo-inverse matrix of the generator matrix input for the RAID code; translating the pseudo-inverse matrix for consideration to device reads and XORs; and generating a read I/O plan for performing individual device reads and XORs; a set of instruction codes for implementing RAID scrubbing by generating a parity check matrix based on the generator matrix input for the RAID code and utilizing the parity check matrix to ensure that all elements in the RAID code maintain the necessary RAID relationship at all times; and a set of instruction codes for providing an optimizer for optimizing I/O plans for available hardware resources.

10

10. The computer program product of claim 9 , wherein the layout description comprises a description of a rotation, a stripe size, and an element size of each of a plurality of disks in the storage devices.

11

11. The computer program product of claim 9 , wherein the resource optimization objectives comprise-minimizing disk I/O and minimizing memory bus bandwidth for the access request.

12

12. The computer program product of claim 9 , wherein the dynamic input comprises a description of a data cache of the I/O stack regarding a description of clean pages in the data cache, a description of dirty pages in the data cache, the clean pages and the dirty pages being in a W-neighborhood of a page to be any of read and written.

13

13. The computer program product of claim 9 , wherein the fault configuration comprises a description of a plurality of known sector failures and a plurality of known disk failures.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

June 4, 2008

Publication Date

October 4, 2011

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System, method, and service for providing a generic RAID engine and optimizer” (US-8032782). https://patentable.app/patents/US-8032782

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.