You’re using a public version of DrugPatentWatch with 5 free searches available | Register to unlock more free searches. CREATE FREE ACCOUNT

Last Updated: April 19, 2024

Claims for Patent: 8,145,978


✉ Email this page to a colleague

« Back to Dashboard


Summary for Patent: 8,145,978
Title:RAID array auto-initialization (RAAI) method
Abstract: A system and method are provided for efficiently initializing a redundant array of independent disks (RAID). The method monitors host write operations and uses that information to select the optimal method to perform a parity reconstruction operation. The bins to which data access write operations have not occurred can be initialized using a zeroing process. In one aspect, the method identifies drives in the RAID array capable of receiving a `WriteRepeatedly` command and leverages that capability to eliminate the need for the RAID disk array controller to provide initialization data for all disk array initialization transfers. This reduces the RAID array controller processor and I/O bandwidth required to initialize the array and further reduces the time to initialize a RAID array. In a different aspect, a method is provided for efficiently selecting a host write process for optimal data redundancy and performance in a RAID array.
Inventor(s): Therene; Christophe (Livermore, CA), Schmidt; James R. (Fremont, CA)
Assignee: Summit Data Systems LLC (Frisco, TX)
Application Number:13/171,526
Patent Claims:1. In a redundant array of independent disks (RAID), a method for efficiently initializing a RAID array, the method comprising: a RAID controller monitoring a first group of bins in a RAID array to which data access write operations have occurred while the array is online; monitoring a second group of bins to which data access write operations have not occurred while the array is online; initializing the first group of bins using a parity reconstruction process; and, initializing the second group of bins using a zeroing process.

2. The method of claim 1 wherein initializing the second group of bins includes initializing an integral number of RAID array stripes, where each bin includes a plurality of data and parity stripes.

3. The method of claim 1 wherein initializing the second group of bins using the zeroing process includes using a plurality of zeroing commands to incrementally, for each strip in the second group of bins: write zeros data into every data striplet; and, write zeros data into every parity striplet.

4. The method of claim 1 further comprising: maintaining a bin access table (BAT) host activity register; setting a host activity flag in the BAT host activity register for a bin, in response to writing host-generated data into the bin prior to initialization; wherein initializing the first group of bins using a parity reconstruction process includes using the parity reconstruction process in response to the host activity flag being set for the first group of bins; and, wherein initializing the second group of bins using a zeroing process includes using a zeroing process in response to the host activity flag not being set for the second group of bins.

5. The method of claim 1 further comprising: identifying drives in the RAID array capable of receiving a "WriteRepeatedly" command to write zeros data, where a "WriteRepeatedly" command writes a host-generated data pattern repeatedly to media in an identified drive; and, wherein initializing the second group of bins includes using the "WriteRepeatedly" command to simultaneously write zeros data into the identified drives.

6. The method of claim 5 further comprising: in response to identifying drives in the RAID array capable of receiving the "WriteRepeatedly" command, completely initializing identified drives while the array is offline by sending a single "WriteRepeatedly" command.

7. The method of claim 5 wherein identifying drives in the RAID array capable of receiving the "WriteRepeatedly" command includes identifying a plurality of disk drives connected to a RAID controller through a link selected from a group consisting of remote and local links.

8. The method of claim 5 wherein using the "WriteRepeatedly" command to initialize the second group of bins includes: sending the "WriteRepeatedly" command to each identified drive; transferring a zeros data pattern to each identified drive; and, monitoring to determine if the transfer of zeros data to media in the identified drives is complete.

9. The method of claim 1 further comprising: maintaining a parity construction progress record (PCPR) of initialized bins; receiving host-generated data to be written into a bin; in response to the bin not being recorded in the PCPR, using a peer-read I/O write process to write the data into the bin; and, in response to the bin being recorded in the PCPR, using a Read-Modify-Write (RAM) I/O write process to write the data into the bin.

10. In a redundant array of independent disks (RAID), a method for efficiently selecting a host write process for optimal data redundancy and performance, the method comprising: a RAID controller maintaining a parity construction progress record (PCPR) of initialized bins, where each bin includes a plurality of data and parity stripes; receiving host-generated data to be written into a bin; in response to the bin not being recorded in the PCPR, using a peer-read I/O write process to write the data into the bin; and, in response to the bin being recorded in the PCPR, using a Read-Modify-Write (RMW) I/O write process to write the data into the bin.

11. In a redundant array of independent disks (RAID), a method for efficiently initializing a RAID array, the method comprising: a RAID controller identifying drives in a RAID array capable of receiving a "WriteRepeatedly" command to write zeros data, where a "WriteRepeatedly" command writes a host-generated data pattern repeatedly to media in an identified drive; in response to identifying drives capable of receiving the WriteRepeatedly" command, initializing bins in the identified drives using the "WriteRepeatedly" command to simultaneously write zeros data into the identified drives; and, in response to identifying drives incapable of receiving the "WriteRepeatedly" command, initializing bins in the incapable drives using a plurality of zeroing commands to incrementally write zeros data into every data and parity striplet.

Make Better Decisions: Try a trial or see plans & pricing

Drugs may be covered by multiple patents or regulatory protections. All trademarks and applicant names are the property of their respective owners or licensors. Although great care is taken in the proper and correct provision of this service, thinkBiotech LLC does not accept any responsibility for possible consequences of errors or omissions in the provided data. The data presented herein is for information purposes only. There is no warranty that the data contained herein is error free. thinkBiotech performs no independent verification of facts as provided by public sources nor are attempts made to provide legal or investing advice. Any reliance on data provided herein is done solely at the discretion of the user. Users of this service are advised to seek professional advice and independent confirmation before considering acting on any of the provided information. thinkBiotech LLC reserves the right to amend, extend or withdraw any part or all of the offered service without notice.