Recovery system for raid write
First Claim
1. A method for performing a read-modify-write in a RAID system having a plurality of disk drives, comprising:
- receiving new data from a host;
reading old data from said disk drives;
reading old parity from said disk drives;
generating new parity from said old and new data;
locking a span for said read-modify-write after said generating new parity from the old and new data;
performing a first write to said disk drives of a first one of said new parity and said new data; and
after said first write is complete, performing a second write to said disk drives of a second one of said new parity and said new data.
11 Assignments
0 Petitions
Accused Products
Abstract
A Read-Modify-Write operation in a RAID system is done by separating the writing of new data and the writing of new parity, so that they are not done in parallel. This allows recovery to be performed at all stages, without requiring the excessive use of non-volatile cache, and minimizing the amount of time a span has to be locked. The invention accomplishes this by allowing one of the recoveries to be a recovery to the old data, before the write, with a signal to the host that the write operation failed in such a recovery situation, requiring the host to resend the data. This speeds up the entire operation while minimizing the use of resources while only requiring that in the rare instances of a failure during a particular part of the Read-Modify-Write, the host needs to resend the data.
-
Citations
8 Claims
-
1. A method for performing a read-modify-write in a RAID system having a plurality of disk drives, comprising:
-
receiving new data from a host;
reading old data from said disk drives;
reading old parity from said disk drives;
generating new parity from said old and new data;
locking a span for said read-modify-write after said generating new parity from the old and new data;
performing a first write to said disk drives of a first one of said new parity and said new data; and
after said first write is complete, performing a second write to said disk drives of a second one of said new parity and said new data. - View Dependent Claims (2, 3, 4, 5)
said first write is a write of said new data; and
said second write is a write of said new parity.
-
-
3. The method of claim 2 further comprising, in the event of a failure during said first write of said new data, recovering by re-obtaining said new data from the host.
-
4. The method of claim 2 further comprising, in the event of a failure during said second write of new parity, recovering by rewriting said new parity.
-
5. The method of claim 1 wherein:
-
said first write is a write of said new parity; and
said second write is a write of said new data.
-
-
6. A method for performing a read-modify-write in a RAID system having a plurality of disk drives, comprising:
-
receiving new data from a host;
reading old data from said disk drives;
reading old parity from said disk drives;
generating new parity from said old and new data;
performing a first write of said new data to said disk drives;
after said first write is complete, performing a second write of said new parity to said disk drives;
in the event of a failure during said first write of said new data, recovering by re-obtaining said new data from the host;
in the event of a failure during said second write of new parity, recovering by rewriting said new parity.
-
-
7. A RAID controller coupled to a plurality of disk drives comprising:
-
a host interface;
a data bus coupled to said host interface;
a data memory coupled to said data bus;
a processor coupled to said data memory;
a program memory coupled to said processor; and
a program stored in said program memory, including instructions for receiving new data from said host, reading old data from said disk drives, reading old parity from said disk drives, generating new parity from said old and new data, performing a first write of a first one of said new parity and said new data to said disk drives, and after said first write is complete, performing a second write of a second one of said new parity and said new data to said disk drives, in the event of a failure during said first write of said new data, recovering by re-obtaining said new data from the host;
in the event of a failure during said second write of new parity, recovering by rewriting said new parity.
-
-
8. A RAID controller coupled to a plurality of disk drives comprising:
-
a host interface;
a data bus coupled to said host interface;
a data memory coupled to said data bus;
a processor coupled to said data memory;
a program memory coupled to said processor; and
a program stored in said program memory, including instructions for receiving new data from said host, reading old data from said disk drives, reading old parity from said disk drives, generating new parity from said old and new data, performing a first write of a first one of said new parity and said new data to said disk drives, and after said first write is complete, performing a second write of a second one of said new parity and said new data to said disk drives, and locking a span for said read-modify-write after said generating new parity from the old and new data.
-
Specification