Problem reading from tape drive

Renee Gehlbach fbsd-ml at gehlbach.com
Fri Aug 26 18:50:20 UTC 2011


On 08/25/2011 06:38 PM, Robert Bonomi wrote:
>>  From owner-freebsd-questions at freebsd.org  Thu Aug 25 13:57:20 2011
>> Date: Thu, 25 Aug 2011 14:24:57 -0400
>> From: Renee Gehlbach<fbsd-ml at gehlbach.com>
>> To: questions at freebsd.org
>> Cc:
>> Subject: Problem reading from tape drive
>>
>> I recently purchased a FreeBSD-compatible SAS card (an Adaptec ASR
>> 2045)  and moved our backup server from Ubuntu to FreeBSD 8.2.  I am
>> trying to set up the backup software, but am having problems with the
>> tape drive.  Hopefully this is a "duh" type question, since I have a lot
>> more experience working with tape drives in Ubuntu than FreeBSD.
>>
>> I installed bacula, and ran the test function in the btape utility.  It
>> wrote 10000 blocks, wrote EOF, wrote 10000 blocks, wrote EOF, wrote
>> EOF.  Rewound the tape.  Read 10000 blocks, failed reading the second
>> 10000 blocks.  I had no luck researching the bacula error message, so I
>> switched to mt and tar for further troubleshooting.
>>
>> camcontrol devlist does show the tape drive:
>> backup# camcontrol devlist
>> <QUANTUM ULTRIUM 3 2182>            at scbus2 target 0 lun 0 (sa0,pass0)
>>
>>
>> So then I went into a directory that had one subdirectory, which
>> contained several plain text logfiles.  I did four tars, alternating
>> between that directory and the subdirectory (so I would be able to see a
>> difference between the tar files).
>>
>> backup# mt -f /dev/nsa0 rewind
>> backup# tar -cf /dev/nsa0 *
>> backup# cd log/
>> backup# tar -cf /dev/nsa0 *
>> backup# cd ..
>> backup# tar -cf /dev/nsa0 *
>> backup# cd log/
>> backup# tar -cf /dev/nsa0 *
>>
>>
>> So far so good.  Then I went back to read those tar files.
>>
>> backup# mt -f /dev/nsa0 rewind
>> backup# tar -tf /dev/nsa0
>> log/
>> log/mbw01.log
>> (....insert rest of correct tar listing)
>> backup# tar -tf /dev/nsa0
>> tar: Unrecognized archive format
>> tar: Error exit delayed from previous errors.
>>
>>
>> So....same results as bacula's tape test utility was giving.....it
>> writes, it reads the first file, then errors on trying to read the
>> second file.  However:
>>
>>
>> backup# mt -f /dev/nsa0 rewind
>> backup# tar -tf /dev/nsa0
>> log/
>> log/mbw01.log
>> (....insert rest of correct tar listing)
>> backup# mt -f /dev/nsa0 fsf
>> backup# tar -tf /dev/nsa0
>> mbw01.log
>> (....insert rest of correct tar listing)
>> backup# mt -f /dev/nsa0 fsf
>> backup# tar -tf /dev/nsa0
>> log/
>> log/mbw01.log
>> (....insert rest of correct tar listing)
>> backup# mt -f /dev/nsa0 fsf
>> backup# tar -tf /dev/nsa0
>> mbw01.log
>> (....insert rest of correct tar listing)
>> backup# mt -f /dev/nsa0 fsf
>>
>>
>> So, when I tell it to forward space file at the end of each tar file, it
>> is able to read all four files correctly.  This leaves me scratching my
>> head, and wondering what the heck I've set up wrong.  Any ideas?
> Tape drivers _always_ write two EOFs when the tape device is closed.
> This ensures there is always a valid 'EOT' on the tape.
>
> They're _suppoesed_ to backspace over the 2nd EOF mark, so that
> a subsequent write has only one EOF between it and the prior file.
>
> Looks like your drive isn't doing the 'backspace' right.
>
> I suspect the 'easiest' work around is the one you've discovered  -- do
> an 'mt -fsf' after avery tape file 'read'.
>
>
>
OK, I feel pretty dense....  When you're saying they write two EOFs when 
the device is closed, would this happen every time you write a file?  Or 
would it be every time the tape is unmounted?  Or would that depend on 
the program you're using?

Is there any way I could test to make sure this is in fact what's happening?

And would the problem with it not doing the backspace right be an issue 
with the FreeBSD tape driver?  Or SCSI card driver?  Or what driver?  
Obviously not a problem with the drive itself, since I don't have this 
problem with Ubuntu.  Unfortunately, the "workaround" of running mt -fsf 
after every file read isn't really usable workaround.....I need the tape 
drive to work with bacula, not just running tars.  Where do I go from here?

Thanks,
Renee


More information about the freebsd-questions mailing list