Amanda-Users

Re: Disable Tape Compression

2005-10-04 03:32:51
Subject: Re: Disable Tape Compression
From: Sven Rudolph <rudsve AT drewag DOT de>
To: amanda-users AT amanda DOT org
Date: Tue, 04 Oct 2005 09:20:51 +0200
Gene Heskett <gene.heskett AT verizon DOT net> writes:

> On Thursday 29 September 2005 17:06, Christopher Davis wrote:
>>The drive doesn't have any dip switches - I even took the drive out of
>> the encosure and couldn't find anything.
>>
>>I copied the wrong mt command over -
>>
>>Where I'm at now is looking at stinit ant the /etc/stinig.def file to
>> create a /dev/nst0l device which disables compression - I'm in the
>> middle of another test right now and can't try it out just yet - but if
>> this works for me I'll send it to the list.  We have a ton of these Sun
>> SDLT 220 drives floating around and want to use them.
>>
>>
>>I ran some tests using hardware compression and wasn't impressed with
>> the results so I'm trying it with it off.
>>
> Be aware that for many tape formats, the compression status is saved
> in a hidden header of the tape, so that once its been written in the
> compression on mode, that will be restored to on when the
> tape is loaded regardless of your wishes unless specifically disabled.
>
> I had a script at one time that turned these flags off, and it looked
> something like this:
>
> #!/bin/sh
> mt -f /dev/nst0 rewind
> dd if=/dev/st0 of=./scratch count=1
> mt -f /dev/nst0 defcompression off (or 0 depending on your mt)
> mt -f /dev/nst0 compression off (or 0 depending on your mt)
> dd if=./scratch of =/dev/nst0
> dd if=/dev/zero of=/dev/st0 count=(your drives buffer size plus 1)
> dd if=/dev/st0 (should show the tape label unchanged from ./scratch)
>
> Note use of /dev/st0 for its automatic rewind in places. simplifies
> the script..

I use a bit less magic (it is enough to overwrite the first block on
tape (SDLT220/SDLT600)); see below. And in my do_amdump (a wrapper
around amdump) I have:

    /usr/sbin/amtape DailySet1 taper

    /usr/local/bin/erase_tape /dev/st2

(Some time ago we had a discussion on having a hook to run a command
when a tape is to be written, but we didn't find a good solution.)

        Sven
-----
host:~# cat /usr/local/bin/erase_tape 
#!/bin/sh

tapedev=$1
labelfile=$(tempfile)

mt -f $tapedev rewind

dd if=$tapedev of=$labelfile bs=32k count=1

sudo unset_tape_compression $tapedev

dd if=$labelfile of=$tapedev bs=32k count=1



host:~# cat /usr/local/bin/unset_tape_compression 
#!/bin/sh

tapedev="$1"

case "$tapedev" in
        /dev/st[0-9]) ;;
        *)
                echo "invalid device $tapedev" >&2
                exit 1
esac

mt -f $tapedev datcompression off



<Prev in Thread] Current Thread [Next in Thread>