Method for maintaining parity-data consistency in a disk array
First Claim
1. In an independent access disk array subsystem, a method for maintaining consistency between the contents of data and parity storage areas within redundancy groups in the array subsystem following a system reset which interrupts the execution of one or more disk write I/O operations, said method comprising the steps of:
- examining current drive activities to identify unfinished write I/O operations in response to the receipt of a reset signal;
logging information necessary to identify said unfinished write I/O operations and the redundancy groups associated with said unfinished write I/O operations into a non-volatile memory;
checking for log entries in the non-volatile memory during a disk array subsystem initialization following the system reset;
for each one of said unfinished write I/O operations, performing a bit-wise exclusive-OR of corresponding portions of the data stored across the data storage areas within the redundancy group associated with said one of said unfinished write I/O operations to calculate parity consistent therewith; and
writing the calculated parity to said parity storage areas within said redundancy group associated with said one of said unfinished write I/O operations.
13 Assignments
0 Petitions
Accused Products
Abstract
A method for assuring consistency between data and parity in a disk array system following a reset or a power failure condition which interrupts the execution of write I/O operations. The method includes the steps of: examining drive activities to identify unfinished write I/O operations due to an interrupt condition; logging information necessary to identify the unfinished operations and the array redundancy groups associated with the unfinished operations into a non-volatile memory; and checking for log entries in the non-volatile memory during a disk array subsystem initialization or the restoration of power. For each unfinished operation identified in the log, the method further includes the steps of: performing a bit-wise exclusive-OR of corresponding portions of the data stored within the associated redundancy group to calculate parity consistent therewith; and writing the calculated parity to the parity storage areas within the associated redundancy group. For an array operating with a failed disk drive member (i.e., in degraded mode), the method also logs information necessary to identify the storage areas to which the unfinished write I/O operations map new data and parity, and some form of the old data and parity information saved to that storage areas to which the unfinished write I/O operations map new data and parity. Following the system reset, or restoration of power, consistent parity is determined for each associated redundancy group.
-
Citations
14 Claims
-
1. In an independent access disk array subsystem, a method for maintaining consistency between the contents of data and parity storage areas within redundancy groups in the array subsystem following a system reset which interrupts the execution of one or more disk write I/O operations, said method comprising the steps of:
-
examining current drive activities to identify unfinished write I/O operations in response to the receipt of a reset signal; logging information necessary to identify said unfinished write I/O operations and the redundancy groups associated with said unfinished write I/O operations into a non-volatile memory; checking for log entries in the non-volatile memory during a disk array subsystem initialization following the system reset; for each one of said unfinished write I/O operations, performing a bit-wise exclusive-OR of corresponding portions of the data stored across the data storage areas within the redundancy group associated with said one of said unfinished write I/O operations to calculate parity consistent therewith; and writing the calculated parity to said parity storage areas within said redundancy group associated with said one of said unfinished write I/O operations. - View Dependent Claims (2, 3)
-
-
4. In an independent access disk array subsystem, a method for maintaining consistency between the content of data and parity storage areas within redundancy groups following a low power condition which interrupts the execution of one or more disk write I/O operations, said method comprising the steps of:
-
examining current drive activities to identify unfinished write I/O operations in response to the receipt of a battery low signal from an uninterruptable power supply (UPS); at the expiration of a predetermined time interval initiated upon receipt of said low power signal, logging information necessary to identify said unfinished write I/O operations and the redundancy groups associated with said unfinished write I/O operations into a non-volatile memory; checking for log entries in the non-volatile memory during a disk array subsystem initialization following a recovery from said low power condition; for each one of said unfinished write I/O operations, performing a bit-wise exclusive-OR of corresponding portions of the data stored across the data storage areas within the redundancy group associated with said one of said unfinished write I/O operations to calculate parity consistent therewith; and writing the calculated parity to said parity storage areas within said redundancy group associated with said one of said unfinished write I/O operations. - View Dependent Claims (5, 6)
-
-
7. In an independent access disk array subsystem employing a read-modify-write process to update data and parity information saved to redundancy groups within said array in response to a write I/O request received from a host system, a method for maintaining consistency between data and parity information saved to data and parity storage areas within said redundancy groups following a system reset which interrupts the execution of one or more disk write I/O operations, said method comprising the steps of:
-
examining current drive activities to identify unfinished write I/O operations in response to the receipt of a reset signal; logging into a non-volatile memory information necessary to identify redundancy groups associated with said unfinished write I/O operations, information necessary to identify the data and parity data storage areas to which said unfinished write I/O operations map new data and parity, and some form of the old data and parity information saved to the data and parity data storage areas to which said unfinished write I/O operations map new data and parity; checking for log entries in the non-volatile memory during a disk array subsystem initialization following the system reset; for each one of said unfinished write I/O operations, combining the old data and parity associated therewith and saved to said non-volatile memory with the data currently stored within the data storage area to which said one of said unfinished write I/O operation maps new data to calculate parity consistent with the data stored within said redundancy group; and writing the calculated parity to said parity storage areas within said redundancy group associated with said one of said unfinished write I/O operations. - View Dependent Claims (8, 9, 10)
-
-
11. In an independent access disk array subsystem employing a read-modify-write process to update data and parity information saved to redundancy groups within said array in response to a write I/O request received from a host system, a method for maintaining consistency between data and parity information saved to data and parity storage areas within said redundancy groups following a low power condition which interrupts the execution of one or more disk write I/O operations, said method comprising the steps of:
-
examining current drive activities to identify unfinished write I/O operations in response to the receipt of a battery low signal from an uninterruptable power supply (UPS); at the expiration of a predetermined time interval initiated upon receipt of said low power signal, logging into a non-volatile memory information necessary to identify redundancy groups associated with said unfinished write I/O operations, information necessary to identify the data and parity data storage areas to which said unfinished write I/O operations map new data and parity, and some form of the old data and parity information saved to the data and parity data storage areas to which said unfinished write I/O operations map new data and parity; checking for log entries in the non-volatile memory during a disk array subsystem initialization following a recovery from said low power condition; for each one of said unfinished write I/O operations, combining the old data and parity associated therewith and saved to said non-volatile memory with the data currently stored within the data storage area to which said one of said unfinished write I/O operation maps new data to calculate parity consistent with the data stored within said redundancy group; and writing the calculated parity to said parity storage areas within said redundancy group associated with said one of said unfinished write I/O operations. - View Dependent Claims (12, 13, 14)
-
Specification