Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Logical Block Address Checking in a Disk Array

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

Publishing Venue

IBM

Related People

Hughes, CP: AUTHOR [+2]

Abstract

Disclosed is a hardware supported logical block checking mechanism in Redundant Array of Independent Disks (RAID) and non-RAID storage subsystems.

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

Logical Block Address Checking in a Disk Array

      Disclosed is a hardware supported logical block checking
mechanism in Redundant Array of Independent Disks (RAID) and non-RAID
storage subsystems.

      Direct Access Storage Devices (DASDs) have no capability for
determining if they have sent the host system incorrect data for a
given Logical Block Address (LBA).  Some hosts record information in
the given logical block (such as the LBA itself) to detect such
conditions.  This scheme is perfectly correct for data which is sent
to and from a host system.  The problem occurs when there is
redundant data such as that used by a RAID storage subsystem being
used without sufficient checking for the detection of incorrect
sector data.  A longitudinal redundancy check has been proven
insufficient for certain types of disk failures (e.g., head offset
problems, and incorrect sector).  Typically, the redundant data is
used for the reconstruction of host data in the event of a failure.
If the redundant data has been calculated incorrectly because of an
undetected drive failure such as incorrect sector data, the results
can be catastrophic.

      The solution to this problem is to record the LBA within the
sector of data when it is written to the device and check the LBA
when the data is read from the device.  The solution is implemented
with a combination of specialized hardware which is seeded with the
first LBA for the command being issued.

      For the write operation, hardware automatically increments the
LBA as its registers are addressed via direct memory accesses.  The
LBA is obtained via the direct memory access and is stored at the end
of a logical block.

      For the read operation, the hardware contains a compare
function which when addressed compares the counting LBA value with a
given 32-bit input value (i.e., the logical block information from
the sector data).  If the logical block information compares
correctly, the hardware increments its logical block counter in
anticipation of the next access.  If the LBA compares incorrectly,
the hardware sets a status flag in its status register indicating a
miscompare occurred and ceases the incrementing of the logical block
counter.  The status flag is examined at the completion of the
operation and an error condition is surfaced upon detection of an
error.

      One implementation has a number of hardware registers, one
register for each physical DASD in the array.  The DASD are formatted
with a sector size of N+2 to store N data bytes and two bytes of LBA
data.  For this implementation, the LBA will be truncated to the
least two significant bytes as that is enough checking to insure the
correct sector is being returned.

Four types of actions can be taken on the LBA registers:
  1.  Write - The accessed LBA register is loaded with data and the
       status bit associated the LBA register is cleared.
  2.  Read - The contents of the LBA regi...