Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Jan 1997 20:36:57 +0100 (MET)
From:      Wilko Bulte <wilko@yedi.iaf.nl>
To:        Andre.Albsmeier@mchp.siemens.de (Andre Albsmeier)
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: put SCSI disk on same controller as DLT or not?
Message-ID:  <199701061936.UAA00758@yedi.iaf.nl>
In-Reply-To: <199701061322.OAA14038@server.us.tld> from "Andre Albsmeier" at Jan 6, 97 02:22:22 pm

next in thread | previous in thread | raw e-mail | index | archive | help
As Andre Albsmeier wrote...

> I'm running 2.2-BETA on a P166 with two Adaptec 2940. I plan to use
> amanda to do backups on a DEC DLT which is connected to one of the
> two 2940s. Since a lot of files to be backed up come via a 10 MBps network, I
> want to use a holding disk where the data is being collcted first and then
> written to the DLT (which is significantly faster than the network).
> 
> To optimize performance, I would like to know if I should connect the holding
> disk to the same 2940 as the DLT is attached to or to the other one.

My experience on a Sun Sparc20 is that to keep the DLT streaming it
is best to hook the disk and DLT to different controllers. The Sun
could not keep up with the data rate the DLT required. This was Solaris
2.4 BTW.

On my own DLT2000 on a P100 FreeBSD box I first had the DLT hooked up
to the same NCR810 as the system disk. Worked ok for backups with
'dump', practically no stop 'n go operation. The DLT is now on
a seperate NCR810 (I got too much SCSI devices :-) but the speed is
the same.

Note that all of this highly depends on how 'compressible' your data
is. To keep streaming on highly compressible data the DLT needs much
more data to be delivered to it's SCSI interface.

If you feel adventurous you can get the transfer statistics from the DLT
drive itself. To do this I hacked up the script below. Note that this
script is known to have crashed my system (very seldom, but still).

#!/bin/sh

# dltinfo: get more information out of your DLT tape
#          drive.
#
# (C) 1996, Wilko Bulte, wilko@yedi.iaf.nl
#
# Warning: This script was only tested on a DEC TZ87 DLT
#          drive. It has been observed to hang the SCSI
#          bus/card/driver (?? who knows). Use it at your
#          own risk.
#
# 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@yedi.iaf.nl

Device=/dev/st2
CtrlDevice=${Device}ctl.0

## scsi(8) setup
Verbose="-v"
TimeOut="-s 3"

### Do a full inquiry (including vendor unique info) 
# Assumption: the spurious hangups are either firmware or
#             SCSI card driver related...
do_inquiry() {

	echo ------ Inquiry Product data ------
	echo 
	scsi -f $CtrlDevice \
	     $Verbose \
	     $Timeout \
	     -c "12 0 0 0 38 0" \
	     -i 56 \
		"{skip} s8 \
		 {Vendor                          } z8 \
		 {ProductID                       } z16 \
		 {Version                         } z4 \
		 {Released FW flag                } i1 \
		 {Firmware version                } i2 \
		 {EEPROM Format                   } i2 \
		 {Firmware personality            } i1 \
		 {Firmware sub-personality        } i1 \
		 {Tape directory format version   } i1 \
		 {Controller hardware revision    } i1 \
		 {Drive EEPROM version            } i1 \
		 {Drive hardware version          } i1 \
		 {Media loader EEPROM version     } i1 \
		 {Media loader hardware version   } i1 \
		 {Media loader mechanical version } i1 \
		 {Media loader present flag       } i1 \
		 {Drive library type code         } i1"
}

do_get_ecm_serial() {
	# Get electronics module serial number from Vital Product Data pages
	scsi -f $CtrlDevice \
	     $Verbose \
	     $TimeOut \
	     -c "12 1 80 0 e 0" \
	     -i 14 \
		"{skip} *i4 \
		 {ECM serial number               } z10"
}

do_get_fw_details() {
	# Get firmware details from Vital Product Data pages
	scsi -f $CtrlDevice \
	     $Verbose \
	     $TimeOut \
	     -c "12 1 C0 0 24 0" \
	     -i 36 \
		"{skip} *i4 \
		 {Servo Firmware checksum         } i2 \
		 {Servo EEPROM checksum           } i2 \
		 {68020 Firmware checksum         } i4 \
		 {68020 Firmware build date       } z24"
}

get_write_error_log() {

	echo ------ Write errors log page ------
	echo 
	scsi -f $CtrlDevice \
	     $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"
	echo ------ End of write errors log page ------
}

get_read_error_log() {

	echo ------ Read errors log page ------
	echo 
	scsi -f $CtrlDevice \
	     $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"
	echo ------ End of read errors log page ------
}

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).

	echo ------ Compression log page ------
	echo 
	scsi -f $CtrlDevice \
	     $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 "

	echo ------ End of compression log page ------
}

get_read_error_log
echo
get_write_error_log
echo
get_compression_log
do_inquiry


Wilko
_     ____________________________________________________________________
 |   / o / /  _  Bulte  email: wilko@yedi.iaf.nl - Arnhem, The Netherlands
 |/|/ / / /( (_) 	Do, or do not. There is no 'try' - Yoda
--------------------------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701061936.UAA00758>