Date: Wed, 6 Sep 2000 15:48:08 +0200 From: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> To: Wilko Bulte <wkb@freebie.demon.nl> Cc: Christian Weisgerber <naddy@mips.inka.de>, freebsd-scsi@FreeBSD.ORG Subject: Re: Keeping a DLT4000 streaming? Message-ID: <20000906154808.A62407@curry.mchp.siemens.de> In-Reply-To: <20000903154343.E564@freebie.demon.nl>; from wkb@freebie.demon.nl on Sun, Sep 03, 2000 at 03:43:43PM %2B0200 References: <8oth09$u2b$1@ganerc.mips.inka.de> <20000903154343.E564@freebie.demon.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 03-Sep-2000 at 15:43:43 +0200, Wilko Bulte wrote:
> DLTs need data like hungry piranhas to keep streaming ;-) My DLT4000 generally
> does not stream. It is hooked up to a seperate AH2940UW (you generally don't
> want your disks on the same SCSI bus). Reportedly using tools like 'team'
> should help by buffering the data. I have not tried that yet. Obviously
> the compressibility of the data is a factor as well. See the attached script
> to get compression and error stats from the drive. In addition there is a
> mode page setting (at least on DLT7000, but I think 4000 has it too) that
> selects 'capacity' or 'speed' mode. The drive drops out of compression mode
> in favor of keeping tape motion streaming. It does so on the fly, based
> on whether the mode page enables it or not.
>
> Wilko
Thanks for the great script! One thing: The line
printf "On tape kbytes written residual = %d\n" $10
should probably be something like
shift
printf "On tape kbytes written residual = %d\n" $9
Otherwise, it works great.
-Andre
>
> > If any of you guys have a DLT4000 (or faster) tape drive, and manage
> > to keep it streaming properly _with compression enabled_, I'd like
> > to know your setup.
>
> --
> Wilko Bulte wilko@freebsd.org
> Arnhem, the Netherlands
> #!/bin/sh
>
> # dltinfo: get more information out of your DLT tape drive.
> #
> # (C) 1996, Wilko Bulte, wilko@freebsd.org
> #
> # Warning: This script has only been tested on a DEC TZ87 & TZ88 DLT
> #
> # You need the DLT drive's OEM manual (or similar) to make
> # sense out of some of the data reported.
>
> # Please send any constructive comments by email to wilko@freebsd.org
>
> Unit=2
>
> ## camcontrol(8) setup
> Verbose="-v"
> TimeOut="-t 3"
>
> get_write_error_log() {
>
> RetVal=`camcontrol cmd -n sa -u $Unit \
> $Verbose \
> $Timeout \
> -c "4d 0 42 0 0 0 0 0 3f 0" \
> -i 63 \
> "{skip} *i4 \
> {skip} *i4 \
> {Corrected errors without substantial delay} i4 \
> {skip} *i4 \
> {Corrected errors with possible delay } i4 \
> {skip} *i4 \
> {Total errors } i4 \
> {skip} *i4 \
> {Total errors corrected } i4 \
> {skip} *i4 \
> {Total times correction algorithm processed} i4 \
> {skip} *i4 \
> {Total bytes processed } i8 \
> {skip} *i4 \
> {Total uncorrected errors } i4"
> `
> set $RetVal
> echo "--- write errors ---"
> printf "Corrected errors without substantial delay = %d\n" $1
> printf "Corrected errors with possible delay = %d\n" $2
> printf "Total errors = %d\n" $3
> printf "Total errors corrected = %d\n" $4
> printf "Total times correction algorithm processed = %d\n" $5
> printf "Total bytes processed = %d\n" $6
> printf "Total uncorrected errors = %d\n" $7
> }
>
> get_read_error_log() {
>
> RetVal=`camcontrol cmd -n sa -u $Unit \
> $Verbose \
> $Timeout \
> -c "4d 0 43 0 0 0 0 0 3f 0" \
> -i 63 \
> "{skip} *i4 \
> {skip} *i4 \
> {Corrected errors without substantial delay} i4 \
> {skip} *i4 \
> {Corrected errors with possible delay } i4 \
> {skip} *i4 \
> {Total errors } i4 \
> {skip} *i4 \
> {Total errors corrected } i4 \
> {skip} *i4 \
> {Total times correction algorithm processed} i4 \
> {skip} *i4 \
> {Total bytes processed } i8 \
> {skip} *i4 \
> {Total uncorrected errors } i4"
> `
> set $RetVal
> echo "--- read errors ---"
> printf "Corrected errors without substantial delay = %d\n" $1
> printf "Corrected errors with possible delay = %d\n" $2
> printf "Total errors = %d\n" $3
> printf "Total errors corrected = %d\n" $4
> printf "Total times correction algorithm processed = %d\n" $5
> printf "Total bytes processed = %d\n" $6
> printf "Total uncorrected errors = %d\n" $7
>
> }
>
> get_compression_log() {
>
> # Assumption: from the results observed in testing it lookse
> # like the residual counts are in kBytes (and not
> # in Mbytes as the TZ87 manual tells us).
>
> RetVal=`camcontrol cmd -n sa -u $Unit \
> $Verbose \
> $Timeout \
> -c "4d 0 72 0 0 0 0 0 4c 0" \
> -i 76 \
> "{skip} *i4 \
> {skip } *i4 \
> {Read compression ratio (* 100 %) } i2 \
> {skip } *i4 \
> {Write compression ratio (* 100 %) } i2 \
> {skip } *i4 \
> {Total host Mbytes reads } i4 \
> {skip } *i4 \
> {Total host kbytes read residual } i4 \
> {skip } *i4 \
> {On tape Mbytes read } i4 \
> {skip} *i4 \
> {On tape kbytes read residual } i4 \
> {skip} *i4 \
> {Host requested Mbytes written } i4 \
> {skip} *i4 \
> {Host requested kbytes written residual } i4 \
> {skip} *i4 \
> {On tape Mbytes written } i4 \
> {skip} *i4 \
> {On tape kbytes written residual } i4 "
> `
> set $RetVal
> echo "--- compression statistics ---"
> printf "Read compression ratio = %d %%\n" $1
> printf "Write compression ratio = %d %%\n" $2
> printf "Total host Mbytes read = %d\n" $3
> printf "Total host kbytes read residual = %d\n" $4
> printf "On tape Mbytes read = %d\n" $5
> printf "On tape kbytes read residual = %d\n" $6
> printf "Host requested Mbytes written = %d\n" $7
> printf "Host requested kbytes written residual = %d\n" $8
> printf "On tape Mbytes written = %d\n" $9
> printf "On tape kbytes written residual = %d\n" $10
>
> }
>
> get_read_error_log
> echo
> get_write_error_log
> echo
> get_compression_log
> echo
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000906154808.A62407>
