Data Recovery on Deferred Errors . . . . . . . . . . . . . . . . . . . . X3T10/94-067r1
Gerry Houlder (Notes)
Gerry_Houlder at notes.seagate.com
Fri Apr 22 08:59:16 PDT 1994
PROBLEM STATEMENT
We have a customer that is concerned about recovering write data after a
deferred error. When Write Caching is used, the WRITE command will return GOOD
status before the data is written to the disc. If an unrecoverable error occurs
during that write operation, a later command from the same initiator will end
with CHECK CONDITION status. The sense bytes for that error will report
Deferred Error and the Logical Block Address of the erroring block. When such
an error occurs, the customer wants to read the unwritten data back and attempt
to retry the write (possibly at a different location). Existing direct access
device SCSI doesn't have enough information/commands to do this to our
customer's satisfaction.
SOLUTION
The Auto Contingent Allegiance (ACA) feature of SCSI-3 is almost enough. The
ACA procedure allows for retrieving sense data, then issuing a READ command to
"retrieve" the unwritten data from the target's buffer. Of course, the target
must be careful to retain all write data for failed write commands (and allow
that data to be used to satisfy subsequent READ requests) until after the
Contingent Allegiance is cleared. The returned sense data will contain the
first LBA that was not written to disc in the information bytes. This can be
used by the following READ command to retrieve the unwritten data. The only
item that is still unknown is the number of blocks of unwritten data that is
available. I propose using the command specific bytes in REQUEST SENSE data to
indicate the length of unwritten data when a deferred error occurs.
Add the following wording to the error reporting section of the direct access
device model (equivalent to section 9.1.12 in SCSI-2 Standard):
Condition
Unrecovered write error, GOOD status already returned because write caching is
active.
Sense Bytes
Error Code = 0x71; Sense Key = MEDIUM ERROR; ASC & ASCQ contain appropriate
codes; Information = LBA of first block not written to medium; Command Specific
Information = Number of blocks not written to disk (and may be recovered via a
READ command if it is issued before ACA condition is cleared). This number of
blocks may include blocks from subsequent commands that were merged with the
block that encountered the unrecoverable write error.
--
Gerry Houlder (Notes) (Gerry_Houlder at notes.seagate.com)
-------------------------------------------------------------------------
Seagate Technology - 920 Disc Drive - Scotts Valley, CA 95066 USA
Main Phone 408-438-6550 - Email Problems postmaster at notes.seagate.com
Technical Support: BBS 408-438-8771 Fax 408-438-8137 Voice 408-438-8222
-------------------------------------------------------------------------
### OGATE Version 7 message trace and attachment information:
### MsgFileName: m:\mgate\outbound\550.MSG
### Org Date: 04-22-94 09:04:48 AM
### From: Gerry Houlder at SEAGATE
### To: scsi @ WichitaKS.NCR.COM @ internet
### Subject: Data Recovery on Deferred Errors . . . . . . . . . . . . . . . . . . . . X3T10/94-067r1
### Attachments: none
More information about the T10
mailing list