KBAN00000190 CONFIGURE A TAPE LIBRARY IN HP-UX (10.x, 11.x) Document Information Table Additional Notes CONFIGURE A TAPE LIBRARY IN HP-UX (10.x, 11.x) DocId: KBAN00000190 Updated: 20000201 DOCUMENT ---------------------------------------------- CONFIGURE A TAPE LIBRARY IN HP-UX (10.x, 11.x) ---------------------------------------------- These instructions start with an overview, then provide detailed instructions for configuring and testing the library, including making a new kernel if needed. ----------- MAIN TOPICS ----------- - Overview - Outline of steps - You need to find out - Getting Started - Which driver to use for the picker: sctl or spt? - Configuration Steps When Driver Is sctl (ext_bus Driver Is c700/c720) - Configuration Steps When Driver Is spt (ext_bus Driver Is not c700/c720) - Add sctl or spt to the kernel - Test it ---------------------------------------------------------------------------- ---- Overview ---------------------------------------------------------------------------- ---- The following also applies in general to autochangers, jukeboxes, and silos (very big libraries). These complex peripherals consist of one or more tape drives, a few or many tape storage locations (slots) and a device for moving tapes between slots and tape drives. This device is variously called a picker, robotics, exchanger, controller or arm. In this document, it is referred to as a picker. Configuring the tape library really means configuring the picker, a manual process which requires having the right driver in the kernel, possibly a binding statement in the kernel, and making a device file for the picker. Related man pages are scsi_ctl (7) and scsi_pt (7). There is a section on "SCSI Pass-Through Driver Configuration" (configuring a tape library) in the OmniBack 3.0 Installation and Licensing Guide, pages B12 - B19. This manual can be viewed online at http://ovweb.external.hp.com/lpe/doc_serv Set Product to OmniBack II and version to 3.0 and Go. ----------------------- The Most Common Problem ----------------------- By far the most common problem when configuring the picker is making the device file with the wrong minor or major number. The next most common problem is using the wrong driver. ---------------------------------------------------------------------------- ---- Outline of steps ---------------------------------------------------------------------------- ---- - You might have to add the right driver to the kernel (spt or sctl). - You might have to bind the picker to the driver in the kernel (driver /hardware path/ spt). SAM can't help if you have to manually bind the driver because you need to add a line to the /stand/build/system file. - You will need to make a device file for the picker, including specifying the major and minor numbers. ---------------------------------------------------------------------------- ---- You need to find out ---------------------------------------------------------------------------- ---- - The driver for the SCSI card (ext_bus) that the picker is connected to (ioscan). - The Instance number for the SCSI card (ioscan). - The driver for the picker (see below: "Which driver to use for the picker?") and the character major number for that driver (lsdev -d /driver/). - Is the picker driver in the kernel? (See below: "Add sctl or spt to the kernel"). - The hardware address of the picker, specifically, the picker SCSI Target ID & LUN (the last two sections of the hardware address, such as 5.0 from 4/10/0.5.0) (ioscan). ---------------------------------------------------------------------------- ---- Getting Started ---------------------------------------------------------------------------- ---- List device information: ioscan -fH 8/4 - Use the SCSI card address to get a scan of just the devices attached to that card. If you don't know the path of the SCSI card, do ioscan -f This lists all devices. Find the entries for the tape library (at this point it probably is UNCLAIMED & UNKNOWN; also, there will be a model number on the right under Description). ------------------------------------------------- Which driver to use for the picker: sctl or spt? ------------------------------------------------- A. When the driver for the ext_bus (the SCSI card) is c700 or c720, use sctl. B. Otherwise, use spt. --------------- A rule of thumb --------------- If the tape drive driver is stape, then the picker driver is sctl. If the tape drive driver is tape2, then the picker driver is spt. Unfortunately, this can be misleading because it only applies if the tape drive and the picker are connected to the same SCSI card. It is best to use the above "Which driver to use for the picker?" rules A and B. ---------------------------------------------------------------------------- ---- Configuration Steps When Driver Is sctl (ext_bus Driver Is c700/c720) ---------------------------------------------------------------------------- ---- 1. ioscan -fH 8/4 Class I H/W Path Driver S/W State H/W Type Description ============================================================================ ==== ext_bus 1 8/4 c720 CLAIMED INTERFACE GSC add-on Fast/Wide SCSI ^^ ||___SCSI card Instance in decimal (01) target 2 8/4.5 tgt CLAIMED DEVICE tape 0 8/4.5.0 stape CLAIMED DEVICE QUANTUM DLT7000 target 3 8/4.6 tgt CLAIMED DEVICE unknown -1 8/4.6.0 UNCLAIMED UNKNOWN HP C5173-7000 ^ ^ | |_SCSI LUN for the picker in decimal (0) |__ SCSI ID for the picker in decimal (6) target 4 8/4.7 tgt CLAIMED DEVICE ctl 1 8/4.7.0 sctl CLAIMED DEVICE Initiator The picker line might also look like this: autoch 0 8/4.6.0 schgr UNCLAIMED UNKNOWN HP C5173-7000 ---------------------------------------------------------------------------- ---- The driver for ext_bus is c720 (or c700), so the driver for the picker is sctl. 2. Check if sctl is configured in the kernel: lsdev -d sctl You should see output like: Character Block Driver Class 203 -1 sctl ctl If sctl is not listed, you need to add it to the kernel. Also make sure schgr is in the kernel. This is for diagnostics and ioscan. (see below: "Add sctl or spt to the kernel") 3. Make the device file for the picker using the major number for sctl (never schgr) from the lsdev command: mknod /dev/picker c 203 0x016000 ^^^^ ||||_SCSI LUN for the picker in hex (0) |||__SCSI ID for the picker in hex (6) ||___SCSI card (ext_bus) Instance in hex (01) Note that it might be necessary to convert the decimal numbers from the ioscan to hexadecimal for the minor number. 4. Test it (see below: "Test It"). ---------------------------------------------------------------------------- ---- Configuration Steps When Driver Is spt (ext_bus Driver Is not c700/c720) ---------------------------------------------------------------------------- ---- 1. ioscan -fH 56/52 Class I H/W Path Driver S/W State H/W Type Description ============================================================================ ==== ext_bus 2 56/52 scsi1 CLAIMED INTERFACE HP 28655A - SE SCSI ID=7 ^^ ||___SCSI card Instance in decimal (02) target 0 56/52.1 target CLAIMED DEVICE unknown 0 56/52.1.0 UNCLAIMED UNKNOWN HP C1700T ^ ^ | |_SCSI LUN for the picker in decimal (0) |__ SCSI ID for the picker in decimal (1) target 1 56/52.3 target CLAIMED DEVICE tape 0 56/52.3.0 tape2 CLAIMED DEVICE WANGTEK 51000 SCSI ---------------------------------------------------------------------------- ---- The driver for ext_bus is not c700/c720, so the driver for the picker is spt. 2. Check if spt is configured in the kernel: lsdev -d spt You should see output like: Character Block Driver Class 75 -1 spt spt If spt is not listed, add it to the kernel (see below: "Add sctl or spt to the kernel"). 3. Make the device file for the picker, using the major number for spt from the lsdev command: mknod /dev/picker c 75 0x021000 ^^^^ ||||_SCSI LUN for the picker in hex (0) |||__SCSI ID for the picker in hex (1) ||___SCSI card (ext_bus) Instance in hex (02) Note that it might be necessary to convert the decimal numbers from the ioscan to hexadecimal for the minor number. 4. Test it (see below: "Test It"). ---------------------------------------------------------------------------- ---- Add sctl or spt to the kernel ---------------------------------------------------------------------------- ---- 1. Change directory to /stand/build cd /stand/build - Where new kernels are built 2. /usr/lbin/sysadm/system_prep -s system - Make the system file from the running kernel 3. grep -e spt -e sctl system - Is the picker driver in the kernel? 4. If there is no line for spt or sctl in /stand/build/system, you need to add it, on a line by itself, anywhere in the system file. (It is common to group drivers and list them alphabetically but all the entries in the system file can be in any order.) 4a. If the driver is spt, add these two lines to the system file: spt driver 56/52.1.0 spt - Use the actual address of the picker. 4b. If the driver is sctl, add two lines to the system file: schgr sctl schgr is for diagnostics and ioscan. It is not used to control the picker. If the system is at 11.x, you also must add the driver binding line: driver 8/4.6.0 sctl - Use the actual address of the picker. 5. After editing the system file, make a new kernel: /usr/sbin/mk_kernel -s system 6. Back up the old system file and kernel: For 10.x mv /stand/system /stand/system.prev mv /stand/vmunix /stand/vmunix.prev For 11.x mv /stand/system /stand/system.prev --------------------------------------------------------------------------- | CAUTION: DO NOT MOVE /stand/vmunix OR /stand/dlkm UNLESS [PHCO_16421/PACHRDME/English] IS | | INSTALLED. | --------------------------------------------------------------------------- The "Managing Systems and Workgroups" manual (the 11.0 version of the Sys Admin Guide) on page 177 says to do the following: mv /stand/vmunix /stand/vmunix.prev mv /stand/dlkm /stand/dlkm.prev --------------------------------------------------------------------------- | DO NOT DO THIS UNLESS [PHCO_16421/PACHRDME/English] IS INSTALLED! | | Doing so could leave your system without a bootable kernel. | --------------------------------------------------------------------------- At 11.x, backing up vmunix and dlkm to .prev actually is not necessary. This will be done by /sbin/rc0.d/K890kmbuild at shutdown or by /sbin/rc1.d/S110kmbuild upon bootup. 7. Move the new system file and kernel into place. For 10.x mv /stand/build/system /stand/system mv /stand/build/vmunix_test /stand/vmunix For 11.x mv /stand/build/system /stand/system kmupdate /stand/build/vmunix_test This does not actually move the kernel. That will be done by /sbin/rc0.d/K890kmbuild at shutdown or /sbin/rc1.d/S110kmbuild upon bootup. 8. Reboot the system. Use shutdown. Do not use reboot. shutdown -r 0 9. Go back to the configuration steps and make the device file. ---------------------------------------------------------------------------- ---- Test It ---------------------------------------------------------------------------- ---- If these tests fail, recheck the configuration. If you are certain of the configuration and these tests fail, there might be a hardware problem. If any of the following tests work, the tape library picker has been configured successfully in HP-UX. -------------------------------------------------------------- Use a small test program to ask the library to identify itself -------------------------------------------------------------- cd /usr/contrib/src - Change directory. cc scsi_io.c - Compile the test program. ./a.out /dev/picker - Run the test program. open: No such file or directory The above message will be displayed if the device file is not configured correctly. Otherwise, there will be a display like the following: The thing claims to be: HP C1700T 6.16 ------------ Test with mc ------------ This is a relatively new command, also available in patches [PHCO_16194/PACHRDME/English] (10.20) and [PHCO_16195/PACHRDME/English] (11.0). mc -p /dev/picker -r DS - Report full/empty status of drives & slots. ERROR: /dev/picker: No such file or directory The above message will be displayed if the device file is not configured correctly. Otherwise, there will be a display like the following: DT_slot_1 EMPTY DT_slot_2 EMPTY ST_slot_1 EMPTY ST_slot_2 FULL ....... mc -p /dev/picker -s S2 -d D1 - Move a tape from slot 2 to drive 1. If this works, it returns the prompt. Check the status again. You should see DT_slot_1 FULL and ST_slot_2 EMPTY. Some drives must be taken offline before unloading a tape: mt -t /dev/rmt/0mnb offl - Assumes the tape device file is 0m. Use no rewind, Berkeley. mc -p /dev/picker -s D1 -d S2 - Move a tape from drive 1 to slot 2. -------------------------------------------------------------- Test with uma (Universal Media Agent) if OmniBack is installed -------------------------------------------------------------- /opt/omni/lbin/uma -ioctl /dev/picker *** PROGRAM: UMA VERSION: HP OpenView OmniBack II A.03.00 *** Copyright (C) 1996 Hewlett-Packard Company *** License is restricted for use with licensed *** HP OpenView OmniBack II products. (The following error is from OmniBack 2.x) [Critical] From: UMA@abcd.xyz.com "(unnamed)" Time: 12/25/99 21:03:59 /dev/picker Can not open exchanger control device (No such file or directory) (The following error is from OmniBack 3.x) [Critical] From: UMA@abcd.xyz.com "(unnamed)" Time: 12/25/99 21:20:10 [90:59] /dev/picker Can not open exchanger control device ([2] No such file or directory) One of the above messages will be displayed if the device file is not configured correctly. Otherwise, there will be a prompt like the following: /dev/picker: /dev/picker:inq - Ask the library to identify itself. SCSI Inquiry: Type: 8 Vendor ID: "HP" Product ID: "C1700T" F/W Revision: "6.16" This indicates that the picker is properly configured. Here are some more commands to try: /dev/picker: stat Element Status (T=Transport, X=Im/Export, D=Drive, S=Storage): 0 T1 Empty "" "" 10 X1 Empty "" "" 41 S31 Empty "" "" 42 S32 Empty "" "" All the slots are empty. If there were a tape in slot 2 (42 S32), the following command would move the tape to drive 1: /dev/picker: move S2 D1 Some drives must be taken offline before unloading a tape. Do not use the uma offl option because it hangs with some libraries. Open another terminal window and enter the following: mt -t /dev/rmt/0mnb offl - Assumes the device file is 0m. Use no rewind, Berkeley. If it is not possible to open a second terminal window, then exit uma, do the above, start uma and continue to move the tape from the drive to the slot: /dev/picker: move D1 S2 - Move the tape back from drive 1 to slot 2. /dev/picker: exit ============================================================================ ====