Browse Prior Art Database

Ensuring Redundant Array of Independent Disks Data Integrity on Power Loss

IP.com Disclosure Number: IPCOM000117237D
Original Publication Date: 1996-Jan-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 63K

Publishing Venue

IBM

Related People

Mairet, DC: AUTHOR

Abstract

An algorithm for ensuring data integrity is maintained in a Redundant Array of Independent Disks (RAID) storage subsystem on power loss is disclosed. The data on a broken device is preserved even if a write to a working device is interrupted by a power loss. The algorithm solves the problem of uncertainty about whether the data was written and whether the parity was written.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Ensuring Redundant Array of Independent Disks Data Integrity on Power
Loss

      An algorithm for ensuring data integrity is maintained in a
Redundant Array of Independent Disks (RAID) storage subsystem on
power loss is disclosed.  The data on a broken device is preserved
even if a write to a working device is interrupted by a power loss.
The algorithm solves the problem of uncertainty about whether the
data was written and whether the parity was written.

      In a RAID 5 storage subsystem, each write to the array causes
two writes to occur to the disks.  The data is written to a disk, and
the new parity is written to another disk.  It is important that
either both of these writes, or neither of these writes succeed.

      If power is lost and one of the disks is broken, then the data
for the broken disk exists as the exclusive-or of the other disks.
If only one of the two writes succeeded during the last write to the
array, then the exclusive-or of the disks would not produce the
correct data for the broken disk.  The data for the broken disk would
then be lost.

      To prevent this data loss, the presence of a write cache is
assumed.  Furthermore, two rules regarding writes to the array are
defined.
  1.  All writes go through the write cache.  The new data must
       be remembered in non-volatile memory
  2.  When destaging data from the write cache, write the parity
       first, and the data second.  The data must wait for the
       parity update to finish.

      A method is needed  for determining (on power-up) if the parity
on the disks (for all outstanding writes) is the old or new parity.

To make this determination, one bit is...