From owner-freebsd-scsi Mon Jan 6 13:16:29 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id NAA29095 for freebsd-scsi-outgoing; Mon, 6 Jan 1997 13:16:29 -0800 (PST) Received: from iafnl.es.iaf.nl (uucp@iafnl.es.iaf.nl [195.108.17.20]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id NAA29082 for ; Mon, 6 Jan 1997 13:16:21 -0800 (PST) Received: by iafnl.es.iaf.nl with UUCP id AA31931 (5.67b/IDA-1.5 for freebsd-scsi@freebsd.org); Mon, 6 Jan 1997 22:15:58 +0100 Received: (from wilko@localhost) by yedi.iaf.nl (8.7.5/8.6.12) id UAA00758; Mon, 6 Jan 1997 20:36:57 +0100 (MET) From: Wilko Bulte Message-Id: <199701061936.UAA00758@yedi.iaf.nl> Subject: Re: put SCSI disk on same controller as DLT or not? To: Andre.Albsmeier@mchp.siemens.de (Andre Albsmeier) Date: Mon, 6 Jan 1997 20:36:57 +0100 (MET) Cc: freebsd-scsi@freebsd.org In-Reply-To: <199701061322.OAA14038@server.us.tld> from "Andre Albsmeier" at Jan 6, 97 02:22:22 pm X-Mailer: ELM [version 2.4 PL24 ME8a] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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 --------------------------------------------------------------------------