Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Sep 2000 15:43:43 +0200
From:      Wilko Bulte <wkb@freebie.demon.nl>
To:        Christian Weisgerber <naddy@mips.inka.de>
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: Keeping a DLT4000 streaming?
Message-ID:  <20000903154343.E564@freebie.demon.nl>
In-Reply-To: <8oth09$u2b$1@ganerc.mips.inka.de>; from naddy@mips.inka.de on Sun, Sep 03, 2000 at 02:42:49PM %2B0200
References:  <8oth09$u2b$1@ganerc.mips.inka.de>

next in thread | previous in thread | raw e-mail | index | archive | help

--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, Sep 03, 2000 at 02:42:49PM +0200, Christian Weisgerber 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

> 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

--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=dlt_errlog

#!/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

--n8g4imXOkfNTN/H1--


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?20000903154343.E564>