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

Recovery From Media Errors on 1/2-inch and 8-Millimeter Tape Devices

IP.com Disclosure Number: IPCOM000122230D
Original Publication Date: 1991-Nov-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 5 page(s) / 175K

Publishing Venue

IBM

Related People

Bueche, J: AUTHOR [+11]

Abstract

Described is a technique for recovering from permanent write errors caused by worn or damaged tape on 1/2-inch or 8-millimeter tape devices. The error recovery performed assumes that the write error is caused by bad media, as opposed to errors which may occur due to dirty read/write heads on the tape drive. This method supports buffered and unbuffered devices equally, and does not require the ability to retrieve buffered data from the device to perform the recovery. All recovery processing occurs during the write operation; the fact that an error occurred during the write is "hidden" during recovery so that no special read processing is required.

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

Recovery From Media Errors on 1/2-inch and 8-Millimeter Tape Devices

      Described is a technique for recovering from permanent
write errors caused by worn or damaged tape on 1/2-inch or
8-millimeter tape devices.  The error recovery performed assumes that
the write error is caused by bad media, as opposed to errors which
may occur due to dirty read/write heads on the tape drive.  This
method supports buffered and unbuffered devices equally, and does not
require the ability to retrieve buffered data from the device to
perform the recovery.  All recovery processing occurs during the
write operation; the fact that an error occurred during the write is
"hidden" during recovery so that no special read processing is
required.

      The technique described was intended primarily for use with
standard labeled tapes, but may be utilized with non-standard labeled
tapes or non-labeled tapes as well.

      Recovery from permanent write errors on 1/2" and 8 mm tape
devices is accomplished by "closing" the current tape volume (writing
end of volume file marks and labels), mounting a new tape volume, and
restarting the operation on the new volume beginning with the blocks
which had been intended for the previous volume but were not written
on that volume because of the permanent write error.  At the time of
the error, these blocks could have been:
-  on the media, but were overwritten during error recovery
-  partially written to media (the block which encountered the error)
-  in the device's internal buffer (if the device is buffered)

      A "buffered block" queue is used to track those blocks which
are eligible to be rewritten during error recovery. The buffered
block queue is a first-in, first-out (FIFO) queue which contains one
entry for each block that could be buffered in the tape device or
overwritten by end of volume information during error recovery.  Each
entry contains all the information needed to identify and rebuild
that block during error recovery.  If the original source of the data
in a block is not allowed to change while the block has an entry on
the buffered block queue, the rebuild information only needs to
specify where to find the source data so that normal processing could
be restarted from that point (for example, rebuild information could
specify the source virtual address of the first byte in each block).

      Fig. 1 illustrates the operation of a buffered block queue
during normal operations after seven 24K blocks have been written to
a device with a 96K buffer.  This queue contains 4 entries to account
for the blocks which may fit in the device buffer plus 2 extra
entries to account for blocks which may be overwritten during error
recovery.

      As shown in the example, an entry is added to the queue after
the device successfully processes a write request and adds the block
to its buffer.  When the buffered block queue becomes full, the top
entry in the queue is removed in order to...