Fiber Channel LTO Tape Drive Novice

MWM

n00b
Joined
Feb 14, 2017
Messages
10
Hello all,

I find that having multi-terabyte hard disk drives and the ability to record HD video means that I have a lot of data that needs backing up. Some quick research lead me to LTO tapes as the most affordable high capacity means of backing up data. So, I went to eBay and bought a used "400/800GB ULTRIUM LTO-3 TAPE DRIVE 410645-001 LC-UF6QC-HP, AD595A". As this is a Fiber Channel tape drive I also bought a "A6795-62002 HP 2Gbps PCI 64Bit Fiber Channel Card HBA Tachyon XL2" and a "Blue 1/3/5M LC-LC DUPLEX 50/125 Multimode Fiber Optic Cable Patch Cord Jumper". Note: I have some Imation Ultrium LTO 3 Tapes from a previous failed attempt to get a SCSI LVD LTO drive working.



After hooking it all up to my computer, I found that there is little online documentation pertaining to the use of Fiber Channel LTO drives on Linux. In retrospect, I should have found this out before buying.

After I confirmed that my computer saw the Fiber Channel card with the command "lspci" and saw the entry "03:06.0 Fibre Channel: Hewlett-Packard Company Tach XL2 Fibre Channel Host Adapter (rev 0b)", I found myself at a loss as to what to do next.

I have absolutely no experience with Fibre Channel. I do not know if I can even use the LTO drive with this card and cable. I also have no idea of what software I need.

I recently switched from Fedora to Arch Linux as my operating system. I have a MSI 760GM-E51 (FX) motherboard.

I humbly ask if anyone has any ideas or information.
 

MWM

n00b
Joined
Feb 14, 2017
Messages
10
Thank you for your prompt reply.

It looks like the tape drive should show up as /dev/st0. However, I can find no such device.
Here is the output from the command "sudo lshw -short":
Code:
H/W path         Device      Class       Description
====================================================
                             system      MS-7596 (To Be Filled By O.E.M.)
/0                           bus         760GM-E51(MS-7596)
/0/0                         memory      64KiB BIOS
/0/4                         processor   AMD Phenom(tm) II X4 965 Processor
/0/4/5                       memory      512KiB L1 cache
/0/4/6                       memory      2MiB L2 cache
/0/4/7                       memory      6MiB L3 cache
/0/26                        memory      8GiB System Memory
/0/26/0                      memory      [empty]
/0/26/1                      memory      [empty]
/0/26/2                      memory      4GiB DIMM SDRAM Synchronous 667 MHz (1.5 ns)
/0/26/3                      memory      4GiB DIMM SDRAM Synchronous 667 MHz (1.5 ns)
/0/100                       bridge      RS780 Host Bridge
/0/100/2                     bridge      RS780 PCI to PCI bridge (ext gfx port 0)
/0/100/2/0                   display     Juniper PRO [Radeon HD 5750]
/0/100/2/0.1                 multimedia  Juniper HDMI Audio [Radeon HD 5700 Series]
/0/100/5                     bridge      RS780/RS880 PCI to PCI bridge (PCIE port 1)
/0/100/5/0       enp2s0      network     RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/11                    storage     SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
/0/100/12                    bus         SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
/0/100/12/1      usb3        bus         OHCI PCI host controller
/0/100/12/1/3                input       USB OPTICAL MOUSE
/0/100/12.1                  bus         SB7x0 USB OHCI1 Controller
/0/100/12.1/1    usb4        bus         OHCI PCI host controller
/0/100/12.1/1/3              input       Back-UPS ES 550G FW:843.K4 .D USB FW:K4
/0/100/12.2                  bus         SB7x0/SB8x0/SB9x0 USB EHCI Controller
/0/100/12.2/1    usb1        bus         EHCI Host Controller
/0/100/13                    bus         SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
/0/100/13/1      usb5        bus         OHCI PCI host controller
/0/100/13.1                  bus         SB7x0 USB OHCI1 Controller
/0/100/13.1/1    usb6        bus         OHCI PCI host controller
/0/100/13.2                  bus         SB7x0/SB8x0/SB9x0 USB EHCI Controller
/0/100/13.2/1    usb2        bus         EHCI Host Controller
/0/100/14                    bus         SBx00 SMBus Controller
/0/100/14.1                  storage     SB7x0/SB8x0/SB9x0 IDE Controller
/0/100/14.2                  multimedia  SBx00 Azalia (Intel HDA)
/0/100/14.3                  bridge      SB7x0/SB8x0/SB9x0 LPC host controller
/0/100/14.4                  bridge      SBx00 PCI to PCI Bridge
/0/100/14.4/6                bus         Tach XL2 Fibre Channel Host Adapter
/0/100/14.5                  bus         SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
/0/100/14.5/1    usb7        bus         OHCI PCI host controller
/0/101                       bridge      Family 10h Processor HyperTransport Configuration
/0/102                       bridge      Family 10h Processor Address Map
/0/103                       bridge      Family 10h Processor DRAM Controller
/0/104                       bridge      Family 10h Processor Miscellaneous Control
/0/105                       bridge      Family 10h Processor Link Control
/0/1             scsi0       storage     
/0/1/0.0.0       /dev/sda    disk        80GB WDC WD800JB-00CR
/0/1/0.0.0/1     /dev/sda1   volume      512MiB EXT4 volume
/0/1/0.0.0/2     /dev/sda2   volume      74GiB Linux filesystem partition
/0/2             scsi1       storage     
/0/2/0.0.0       /dev/cdrom  disk        BW-16D1HT
/0/3             scsi2       storage     
/0/3/0.0.0       /dev/sdb    disk        500GB WDC WD5000AVCS-6
/0/3/0.0.0/1     /dev/sdb1   volume      465GiB EXT4 volume
/0/5             scsi3       storage     
/0/5/0.0.0       /dev/sdc    disk        1TB WDC WD1002FAEX-0
/0/5/0.0.0/1     /dev/sdc1   volume      931GiB Windows NTFS volume
/0/6             scsi4       storage     
/0/6/0.0.0       /dev/sdd    disk        3TB WDC WD30EZRX-00D
/0/6/0.0.0/1     /dev/sdd1   volume      2794GiB EXT4 volume
/0/7             scsi5       storage     
/0/7/0.0.0       /dev/sr1    disk        DRW-24B1ST   c

I also notice the the non-short command says this about the fibre channel host adapter:
*-fiber UNCLAIMED
description: Fibre Channel
product: Tach XL2 Fibre Channel Host Adapter
vendor: Hewlett-Packard Company
physical id: 6
bus info: pci@0000:03:06.0
version: 0b
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list
configuration: latency=64 mingnt=32
resources: ioport:e800(size=256) ioport:e400(size=256) memory:febffc00-febffdff memory:febc0000-febdffff memory:feba0000-febbffff

Does the "UNCLAIMED" mean that it does not see anything?
 

MWM

n00b
Joined
Feb 14, 2017
Messages
10
Looking into the "UNCLAIMED" message about the fibre channel card, a GTK+ front-end for lshw reports that "this device hasn't been claimed". Searching this error message results in multiple references to there being no driver for the device in the kernel. This would explain why I am getting nowhere. I am finding it difficult to find what of any drivers exist for this card, as the Hewlett Packard Enterprise website is awkward to navigate.

Regardless, I have just bought a used Dell KC184 Qlogic QLE2462 PCI-E card, as this site confirms Red Hat and SUSE Linux drivers. Downloadable from here.

When it is delivered, I will post again.
 

Quartz-1

Supreme [H]ardness
Joined
May 20, 2011
Messages
4,257
Take a look at the card and see if Googling the details on the big chip turns up any drivers.
 

MWM

n00b
Joined
Feb 14, 2017
Messages
10
Thanks for the suggestion. I have tried searching with this information and had no luck finding a downloadable driver. If anyone else wants to try, here is a close up of the big chip:


As for the Qlogic card, it turns out to be PCI Express x4 (as the listing description specified). My motherboard only has PCI-Ex1 and PCI-Ex16. Thus, the card is no help and I need to start reading listings more carefully...
 

Quartz-1

Supreme [H]ardness
Joined
May 20, 2011
Messages
4,257
Your card will work just fine in an x16 slot.

I too have failed to find a driver. Google shows you are not alone.
 
  • Like
Reactions: MWM
like this

MWM

n00b
Joined
Feb 14, 2017
Messages
10
Thank you very much! I did not know you could do that.

I placed the Qlogic card in my PCI-Ex16 slot, hooked everything up, and looked at what lshw could now see. Not only could it see a "ISP2432-based 4Gb Fibre Channel to PCI Express HBA" it also saw a "Ultrium 3-SCSI". To be doubly sure I installed lsscsi, and it reported "[7:0:0:0] tape HP Ultrium 3-SCSI L68W /dev/st0". Thus, everything seems to be working.

I installed mt-st-git from the AUR. Looking up commands for controlling the tape drive suggested "sudo mt -f /dev/st0 status", but entering that resulted in "sudo: mt: command not found". So, I issued the command "sudo mt-st -f /dev/st0 status" which produced:
SCSI 2 tape drive:
File number=-1, block number=-1, partition=0.
Tape block size 0 bytes. Density code 0x0 (default).
Soft error count since last status=0
General status bits on (50000):
DR_OPEN IM_REP_EN

To test functionality I:
  1. Wrote a directory to a tape with "sudo tar -czf /dev/st0 /path/to/directory"
  2. Listed the files in the tarball on the tape with "sudo tar -tzf /dev/st0"
  3. Extracted the directory from the tape with "sudo tar -xzf /dev/st0"
  4. Ejected the tape with "sudo mt-st -f /dev/st0 eject"
All of which worked perfectly!

It seems that my hardware problems are fixed, and it is now just a matter of learning the intricacies of the commands.
 

Quartz-1

Supreme [H]ardness
Joined
May 20, 2011
Messages
4,257
The card will also work just fine in an open-ended x1 slot. Performance will be reduced, of course.
 

MWM

n00b
Joined
Feb 14, 2017
Messages
10
That is interesting. Are all PCI Express widths electrically compatible?

Why do they make closed-ended slots?
It would be nice if I could have my PCIe video card and the fiber channel card both inserted at the same time. I could accept the speed trade-off. Oh well.

I suppose the reason for lack of fiber channel tape drive specific online documentation is because a fiber channel drive behaves like a SCSI one (same commands). For some reason I expected fiber channel to be more complicated; although I am quite glad that the drive simply shows up.
 

Luke M

Limp Gawd
Joined
Apr 20, 2016
Messages
430
That is interesting. Are all PCI Express widths electrically compatible?

Why do they make closed-ended slots?

Different power specs. An open ended x1 slot has to supply 75W, just like a full x16 slot.
 
  • Like
Reactions: MWM
like this

MWM

n00b
Joined
Feb 14, 2017
Messages
10
I have devised commands that work well for my backup use case. I am posting them here for anyone else who is new to tape.

First off, these commands use the rewind tape device (/dev/st0 which rewinds the tape after every operation, as opposed to /dev/nst0) as they are not for writing multiple files to the tape, just a single tarball. They also do not use compression on the tarball, because you can not append files to a compressed tarball. It also takes significantly longer to write compressed data compared with uncompressed.
While it is possible to backup data that is larger than one tape to multiple tapes, I have not done so.

Step One (Optional, but recommended):

Code:
Produce a text list of all files and directories in the area you want to backup with the command "ls -alR /path/to/directory > FileList.txt".
This is useful because getting a file list off the tape directly requires the tape to be read from beginning to end, which will take substantial time.

Then write the file list to a tape with the command "sudo tar -cvf /dev/st0 /path/to/directory/FileList.txt".
This will ensure that the file list is the first file written to the tape, and thus will be the first to be extracted later.
Note: This command will write to the tarball with the same directory structure as your system, so it can be wise to place the file list in the directory you are going to backup.
If you do this, however, you should move the file list elsewhere after writing it to tape so that the next step will not produce an unnecessary copy.

Step Two:
Code:
Write the actual backup data to the tape by appending it to the tarball with the command "sudo tar -rvf /dev/st0 /path/to/directory".
Note: If you are skipping the first step, then use the command "sudo tar -cvf /dev/st0 /path/to/directory/" instead.

Step Three (Optional, but recommended):
Code:
Extract some files from the tape to the current directory as a test with the command "sudo tar -xvf /dev/st0". After some files have been extracted use Control + C to prevent a complete extraction.
Note: Since sudo is needed to access the tape drive, the extracted files will be owned by root. To change this use the command "sudo chown -R your-username: /path/to/extracted/directory".

Step Four (Optional):
Code:
Verify the whole backup by comparing the tape with the local data. You will have to first change to the root directory with the command "cd /". Then enter the command "sudo tar -df /dev/st0".

This error will be seen if a file is missing:
"tar: path/to/file: Warning: Cannot stat: No such file or directory"

This error will be seen if the modification timestamp on a file is different:
"path/to/file: Mod time differs"

This error will be seen if a file is a different size:
"path/to/file: Size differs"

Note: If the backup contains lots of files, then it might be better to use the command "sudo tar -dvf /dev/st0 > /path/to/home/DiffLog.txt" instead, which will produce a detailed text file of the comparison.

Step Five:
Code:
Eject the tape using the command "sudo mt-st -f /dev/st0 eject" and label the tape.
Note: This command is for Arch Linux, other distributions will probably use "sudo mt -f /dev/st0 eject" instead.

Additional:
The MT command to erase a tape takes a long time to complete, as it goes through the entire tape.
A quicker way to make the tape appear erased is with the command "sudo dd if=/dev/zero of=/dev/st0 bs=512 count=1".
I found this command here.
 
Last edited:
Top