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>