Title: NDMP attached Device has tapes appear as bad
Date: 07/2007
NV Version: 745
OS Version: all
Application version:
Plugin version: NDMP V65
Description:
This article talks about how NDMP attached devices can not switch block sizes when reading tapes and report the tapes as BAD.
Symptoms:
This problem can occur when a tape device has been swapped as the library is removed and added back again.
The Binary log shows an error but the error appears to be a read error on the drive.
Extract from binary log:
SCSI :2368 16 0 144026 CMD STATUS 'CHECK CONDITION' [2]
SCSI :2368 17 0 144026 CMD SENSE KEY 'MEDIUM ERROR ' [3] - ASC 00 ASCQ 00
SCSI :2368 18 0 144026 CMD SENSE INFO 'NO ADDITIONAL SENSE'
SCSI :2368 20 0 144026 CMD RETURN VALUE 2
SCSI :2368 14 0 144026 CMD MODE SELECT [ 15 00 00 00 0c 00 ]
SCSI :2368 16 0 144026 CMD STATUS 'GOOD' [0]
SCSI :2368 20 0 144026 CMD RETURN VALUE 0
TAPESCSI:2368 69 0 144026 Tape block size set to 0
If diagnostics are enabled on the tape drive by the filer you see the following in the messages file:
Mon Jul 23 15:40:26 BST [MSVUKLHDFL00001: tape.cmd.bCntDbg:error]: Tape block was longer than byte count on tape device 0d.125. Requested = 32768, Read = 262144
Mon Jul 23 15:40:26 BST [MSVUKLHDFL00001: tape.cmd.chkCondDbg:info]: Tape device 0d.125: Check Condition: SCSI Op Code Read(06) (CDB 0x08: 0x008000 bytes): no sense - No additional sense (0x0 - 0x0 0x0 0x0).
Change the block size of all drives on the NDMP attached device to what they were when the tape was written. If you find yourself with two lots of tapes that have different block sizes you will need blank old tapes as they become ready for reuse until they are all at the same block size.
The problem seems to be that Ontap is unable to switch block sizes dynamically when reading tapes written at a different block size. Netvault does not receive the ILI (Incorrect Length Indicator) bit. This means we do not get the Information Bytes that will have the difference between the requested transfer length and the actual block length. So we can not adjust the block size accordingly as we can not see the + or – value and make the necessary adjustment to the block size.
Prepared by:
Richard Downes