# Server Tape Drive not working/not responding

## Davvolun

Using HP ProLiant DL380 G5 (server), HP StorageWorks Ultrium 920 SCSI (tape drive), HP Lt03 Ultrium 800GB cartridge (tape).  We've been trying to get this to work for months, and we just can't figure it out.  In the best of cases, we can get it to at least look like it's accepting data, but it will inevitably fail.  Even a rewind command will hang and then result in an IO error.

I really can't tell if this is a hardware issue, or if the driver is "crashing" the tape drive. At one point, (while it was doing this "input/output" crap), I tried to eject the tape using the hardware button, and it didn't respond. It wouldn't respond to the power button either, so I pulled the plug and power cycled, at which point the drive came back up perfect (ejected/loaded tape normally), until I tried to run mt status again -- "input/output error" and then the tape wouldn't eject again.

I've got more, let me know what would be helpful.

Here are some stats and responses:

```
> mt -f /dev/st0 status

/dev/st0: Input/output error

```

```
> dmesg

...

st0: Error 10000 (driver bt 0x0, host bt 0x1).

```

```
> lspci | grep SCSI

0c:08.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev c1)

```

```
> lspci -v

...

0c:08.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev c1)

        Subsystem: Hewlett-Packard Company Device 322a

        Flags: bus master, 66MHz, medium devsel, latency 72, IRQ 16

        I/O ports at 5000 [size=256]

        Memory at fdfe0000 (64-bit, non-prefetchable) [size=128K]

        Memory at fdfc0000 (64-bit, non-prefetchable) [size=128K]

        [virtual] Expansion ROM at d0000000 [disabled] [size=1M]

        Capabilities: [50] Power Management version 2

        Capabilities: [58] MSI: Enable- Count=1/1 Maskable- 64bit+

        Capabilities: [68] PCI-X non-bridge device

        Kernel driver in use: mptspi

        Kernel modules: mptspi

```

```
> lsmod

Module                  Size  Used by

st                     41828  0

mptspi                 17712  0

mptscsih               25152  1 mptspi

mptbase                69156  2 mptspi,mptscsih

```

----------

## DawgG

i use the same tapedrive here (altough with a different controller) so it should work for you, too. mine can only do 400g, though. it took some time to get it up&running but now it runs reliably.

if you are sure the drive is functional i suggest you first check all the scsi-hardware-related stuff, cables, termination, bus-settings and speeds etc. also, in my experience it was always true that the tapedrive should be the only device on the scsi-controller. switch off the server, unplug it for some minutes, then switch it on again. be sure to read all the POST/BIOS-msgs. (yeah, i just love that easy to configure and robust scsi-stuff  :wink: )

then check that all necessary stuff is in the kernel (you might be able to use modules but i prefer the scsi-stuff statically compiled-in); on my server it looks like this (old box with adaptec-controller for the tapedrive):

```
orbb ~ # lspci | grep -i scsi

03:02.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02) <-- TAPE

04:02.0 SCSI storage controller: Adaptec AIC-7850 (rev 03) <-- STORAGE

```

```
orbb ~ # zcat /proc/config.gz | grep -iE 'scsi|tape' | grep -v '#'

CONFIG_SCSI=y

CONFIG_SCSI_DMA=y

CONFIG_SCSI_SCAN_ASYNC=y

CONFIG_SCSI_WAIT_SCAN=m

CONFIG_SCSI_SPI_ATTRS=y

CONFIG_SCSI_LOWLEVEL=y

CONFIG_SCSI_AIC7XXX=y

CONFIG_SCSI_AIC7XXX_OLD=y

CONFIG_SCSI_AIC79XX=y

CONFIG_SCSI_DPT_I2O=y
```

the lsscsi-command (available in portage) also helps to see the devices:

```
orbb ~ # lsscsi

[0:0:0:0]    disk    ADAPTEC  ARRAY 01         380E  /dev/sda 

[1:0:3:0]    tape    HP       Ultrium 3-SCSI   D22D  /dev/st0 
```

and you can check like this:

```
orbb ~ # dmesg | grep -i tape

st 1:0:3:0: Attached scsi tape st0
```

sometimes there are different devices: st0 or nst0 - spooling and nonspooling, but i don't know why. you might try both if they exist, my tape works with both:

```
orbb ~ # mt -f /dev/st0 status

SCSI 2 tape drive:

File number=-1, block number=-1, partition=0.

...SNIP...

orbb ~ # mt -f /dev/nst0 status

SCSI 2 tape drive:

File number=-1, block number=-1, partition=0.

...SNIP...
```

 (cartridge ejected)

i got annoyed with always having to type 

```
mt -f <devname> COMMAND
```

 so i use a udev-rule to create the single /dev/tape-device on this box:

```
orbb ~ # cat /etc/udev/rules.d/15-tape.rules

KERNEL=="nst0", SUBSYSTEM=="scsi_tape", SYMLINK+="tape", MODE="0660"
```

 or you can create the symlink differently.

GOOD LUCK!

----------

## Davvolun

First off, huge thanks for responding with some advice.

I think we're going to try to statically compile the scsi stuff as you did, see where that gets us. At the least it's good to see a gentoo system using the same tape drive.

 *Quote:*   

> if you are sure the drive is functional i suggest you first check all the scsi-hardware-related stuff, cables, termination, bus-settings and speeds etc. also, in my experience it was always true that the tapedrive should be the only device on the scsi-controller. switch off the server, unplug it for some minutes, then switch it on again. be sure to read all the POST/BIOS-msgs. (yeah, i just love that easy to configure and robust scsi-stuff  ) 

 

I'm not at all sure the drive is functional, but for the bus-settings and speeds, how would I check that?

 *Quote:*   

> sometimes there are different devices: st0 or nst0 - spooling and nonspooling, but i don't know why. you might try both if they exist, my tape works with both: 

 

I was under the impression st0 was for automatically rewinding and nst0 was non-rewinding (i.e. manual rewinds)

Let's see, the server works fine, we've got an Ultra320 SCSI Controller, we're using the mptspi driver (which http://hardware4linux.info/component/20230/ says is right), so we should be communicating with the controller fine. The tape drive is being attached properly (apparently)...software/firmware seems good to me...

----------

