Welcome to Mark Harvey's home page


Current projects:


Virtual Tape Library:

Virtual Tape Library consists of several components.

The kernel module is based on the scsi_debug kernel module (http://www.torque.net/sg/sdebug26.html). vx_tape is a pseudo HBA (LLD) reporting it has 1 x SMC target (StorageTek L700) and 8 x SSC targets (4 x IBM Ultrium-TD3 and 4 x Quantum SuperDLT600) attached.

A char device back-end has been included with the vx_tape LLD driver This allows data and SCSI commands to be passed from the LLD to user-mode daemons (SCSI targets) which constently poll the driver and process any outstanding SCSI commands.

vtltape

vtltape(1) is the usermode SSC target daemon which writes/reads data to data files in the /opt/vtl directory (if a virtual tape has been loaded). The virtual tape files include a Medium Auxiliary Memory (MAM) data structure to store persistent data (number of tape loads, total data written/read, media type etc).

vtllibrary

vtllibrary(1) is the usermode SMC target daemon which reads its configuration from the file /etc/vtl/library_contents(5) at startup. The number of storage slots are built dynamically when the daemon starts. Hence changing the number of storage slots and media access slots are a matter of modifing the file contents and restarting the vtllibrary(1) daemon. All 'library' commands are performed on data structures in memory ONLY.

vtlcmd

A utility vtlcmd(1) is used to administrator the daemons vtltape(1) and vtllibrary.
Message queue (key 0x4d61726b) is used to pass messages between vtlcmd(1), vtllibrary(1) and vtltape(1)

When a SCSI 'move medium' from a storage slot to a tape drive is requested, the media location is updated in vtllibrary(1) data structures, and the barcode of the media id is passed via the message queue to the vtltape(1) daemon in question. A file open of the barcode is attempted in the /opt/vtl directory and if successful, the vtltape(1) daemon will now return a ASC/ASCQ 0x0/0x0 to any Test Unit Ready requests. An unload SCSI command to the tape drive will close the data file.

Media can be moved out of the VTL via the Media Access Port. Once media is logically moved into the MAP slots, the MAP entries can be cleared using the vtlcmd:

# vtlcmd library empty map

Examples

vx_tape is registered as HBA #3:
# lsscsi -g
[0:0:0:0]    disk    MAXTOR   ATLAS10K4_36SCA  DFM0  /dev/sda  /dev/sg0
[0:0:6:0]    process PE/PV    1x3 SCSI BP      1.1   -         /dev/sg1
[2:0:0:0]    disk    SEAGATE  ST336607FC       0003  /dev/sdb  /dev/sg2
[2:0:1:0]    disk    SEAGATE  ST336607FC       0003  /dev/sdc  /dev/sg3
[2:0:2:0]    mediumx ATL      1500             6.0   -         /dev/sg4
[2:0:2:1]    tape    QUANTUM  SuperDLT1        2323  /dev/st0  /dev/sg5
[2:0:2:2]    tape    QUANTUM  SuperDLT1        2323  /dev/st1  /dev/sg6
[2:0:2:3]    process ATTO     310-LV           1.42  -         /dev/sg7
[3:0:0:0]    mediumx STK      L700             vx_0  -         /dev/sg8
[4:0:0:0]    tape    IBM      ULT3580-TD3      5400  /dev/st2  /dev/sg9
[4:0:0:1]    tape    IBM      ULT3580-TD3      5400  /dev/st3  /dev/sg10
[4:0:0:2]    tape    IBM      ULT3580-TD3      5400  /dev/st4  /dev/sg11
[4:0:0:3]    tape    IBM      ULT3580-TD3      5400  /dev/st5  /dev/sg12
[4:0:0:4]    tape    QUANTUM  SDLT600          5400  /dev/st6  /dev/sg13
[4:0:0:5]    tape    QUANTUM  SDLT600          5400  /dev/st7  /dev/sg14
[4:0:0:6]    tape    QUANTUM  SDLT600          5400  /dev/st8  /dev/sg15
[4:0:0:7]    tape    QUANTUM  SDLT600          5400  /dev/st9  /dev/sg16
NetBackup Utilities:
# tpautoconf -r
TPAC45 STK     L700            vx_0 8000 -1 -1 -1 -1 /dev/sg/h3c0t0l0 - -

# tpautoconf -t
TPAC45 IBM     ULT3580-TD3     5400 8001 -1 -1 -1 -1 /dev/st/nh3c0t0l1 - TapeAlert enabled
TPAC45 IBM     ULT3580-TD3     5400 8002 -1 -1 -1 -1 /dev/st/nh3c0t0l2 - TapeAlert enabled
TPAC45 IBM     ULT3580-TD3     5400 8003 -1 -1 -1 -1 /dev/st/nh3c0t0l3 - TapeAlert enabled
TPAC45 IBM     ULT3580-TD3     5400 8004 -1 -1 -1 -1 /dev/st/nh3c0t0l4 - TapeAlert enabled
TPAC45 QUANTUM SDLT600         5400 8005 -1 -1 -1 -1 /dev/st/nh3c0t0l5 - TapeAlert enabled
TPAC45 QUANTUM SDLT600         5400 8006 -1 -1 -1 -1 /dev/st/nh3c0t0l6 - TapeAlert enabled
TPAC45 QUANTUM SDLT600         5400 8007 -1 -1 -1 -1 /dev/st/nh3c0t0l7 - TapeAlert enabled
TPAC45 QUANTUM SDLT600         5400 8008 -1 -1 -1 -1 /dev/st/nh3c0t0l8 - TapeAlert enabled

volmgr/bin/scan output

Robot Inventory:

Using mtx

Using robtest

A sample /etc/vtl/library_contents can be viewed via this link.

TapeAlert

TapeAlert flags can be set using the vtlcmd(1)

e.g. vtlcmd [index|library] TapeAlert [flags]

Where index is the message Q offset (or string 'library') associated with the drive.

e.g. To set flag 14h (Clean now) the 20th bit (14h) needs to be set:
Pull out the binary to decimal calculator
1000 0000 0000 0000 0000 (20 bits) => hex => 80000

# vtlcmd 1 TapeAlert 80000

A listing of TapeAlert flags can be found at t10 home page for SSC devices Annex A.

Code vtlcmd value Flag Type Flag Type Recommended application client message Probable cause
01h 1 Read warning O W The tape drive is having problems reading data. No data has been lost, but there has been a reduction in the performance of the tape. The drive is having severe trouble reading.
02h 2 Write warning O W The tape drive is having problems writing data. No data has been lost, but there has been a reduction in the capacity of the tape. The drive is having severe trouble writing.
03h 4 Hard error M W The operation has stopped because an error has occurred while reading or writing data that the drive cannot correct. The drive had a hard read or write error.
04h 8 Media M C Your data is at risk:
  1. Copy any data you require from this tape.
  2. Do not use this tape again.
  3. Restart the operation with a different tape.
Media can no longer be written/read, or performance is severely degraded.
05h 10 Read failure M C The tape is damaged or the drive is faulty. Call the tape drive supplier help line. The drive can no longer read data from the tape.
06h 20 Write failure M C The tape is from a faulty batch or the tape drive is faulty:
  1. Use a good tape to test the drive.
  2. If the problem persists, call the tape drive supplier help line.
The drive can no longer write data to the tape.
07h 40 Media life O W The tape cartridge has reached the end of its calculated useful life:
  1. Copy any data you need to another tape.
  2. Discard the old tape.
The media has exceeded its specified life.
08h 80 Not data grade O W The cartridge is not data-grade. Any data you write to the tape is at risk. Replace the cartridge with a data-grade tape. The drive has not been able to read the MRSa stripes.
09h 100 Write protect O C You are trying to write to a write protected cartridge. Remove the write protection or use another tape. Write command is attempted to a write protected tape.
0Ah 200 No removal O I You cannot eject the cartridge because the tape drive is in use. Wait until the operation is complete before ejecting the cartridge. Manual or software unload attempted when prevent media removal is on.
0Bh 400 Cleaning media O I The tape in the drive is a cleaning cartridge. Cleaning tape loaded into drive.
0Ch 800 Unsupported format O I You have tried to load a cartridge of a type that is not supported by this drive. Attempted load of unsupported tape format (e.g., DDS2 in DDS1 drive).
0Dh 1000 Recoverable mechanical cartridge failure O C The operation has failed because the tape in the drive has experienced a mechanical failure:
  1. Discard the old tape.
  2. Restart the operation with a different tape.
Tape snapped/cut or other cartridge mechanical failure in the drive where medium can be de-mounted.
0Eh 2000 Unrecoverable mechanical cartridge failure O C The operation has failed because the tape in the drive has experienced a mechanical failure:
  1. Do not attempt to extract the tape cartridge.
  2. Call the tape drive supplier help line.
Tape snapped/cut or other cartridge mechanical failure in the drive where medium cannot be de-mounted.
0Fh 4000 Memory chip in cartridge failure O W The memory in the tape cartridge has failed, which reduces performance. Do not use the cartridge for further write operations. Memory chip failed in cartridge.
10h 8000 Forced eject O C The operation has failed because the tape cartridge was manually de-mounted while the tape drive was actively writing or reading. Manual or forced eject while drive actively writing or reading.
11h 10000 Read only format O W You have loaded a cartridge of a type that is read-only in this drive. The cartridge will appear as write protected. Media loaded that is read-only format.
12h 20000 Tape directory corrupted on load O W The tape directory on the tape cartridge has been corrupted. File search performance will be degraded. The tape directory can be rebuilt by reading all the data on the cartridge. Tape drive powered down with tape loaded, or permanent error prevented the tape directory being updated.
13h 40000 Nearing media life O I The tape cartridge is nearing the end of its calculated life. It is recommended that you:
  1. Use another tape cartridge for your next backup.
  2. Store this tape cartridge in a safe place in case you need to restore data from it.
Media may have exceeded its specified number of passes.
14h 80000 Clean now O C The tape drive needs cleaning:
  1. If the operation has stopped, eject the tape and clean the drive.
  2. If the operation has not stopped, wait for it to finish and then clean the drive.
Check the tape drive users manual for device specific cleaning instructions.
The drive thinks it has a head clog or needs cleaning.
15h 100000 Clean periodic O W The tape drive is due for routine cleaning:
  1. Wait for the current operation to finish.
  2. Then use a cleaning cartridge.
Check the tape drive users manual for device specific cleaning instructions. The drive is ready for a periodic cleaning.
16h 200000 Expired cleaning media O C The last cleaning cartridge used in the tape drive has worn out:
  1. Discard the worn out cleaning cartridge.
  2. Wait for the current operation to finish.
  3. Then use a new cleaning cartridge.
The cleaning tape has expired.
17h 400000 Invalid cleaning tape O C The last cleaning cartridge used in the tape drive was an invalid type:
  1. Do not use this cleaning cartridge in this drive.
  2. Wait for the current operation to finish.
  3. Then use a valid cleaning cartridge.
Invalid cleaning tape type used.
18h 800000 Retension requested O W The tape drive has requested a retension operation. The drive is having severe trouble reading or writing, that will be resolved by a retension cycle.
19h 1000000 Dual-port interface error O W A redundant interface port on the tape drive has failed. Failure of one interface port in a dual-port configuration (i.e., Fibre Channel)
1Ah 2000000 Cooling fan failure O W A tape drive cooling fan has failed. Fan failure inside tape drive mechanism or tape drive enclosure.
1Bh 4000000 Power supply failure O W A redundant power supply has failed inside the tape drive enclosure. Check the enclosure users manual for instructions on replacing the failed power supply. Redundant PSU failure inside the tape drive enclosure or rack subsystem.
1Ch 8000000 Power consumption O W The tape drive power consumption is outside the specified range. Power consumption of the tape drive is outside specified range.
1Dh 10000000 Drive maintenance O W Preventive maintenance of the tape drive is required. Check the tape drive users manual for device specific preventive maintenance tasks or call the tape drive supplier help line. The drive requires preventive maintenance (not cleaning).
1Eh 20000000 Hardware A O C The tape drive has a hardware fault:
  1. Eject the tape or magazine.
  2. Reset the drive.
  3. Restart the operation.
The drive has a hardware fault that requires reset to recover.
1Fh 40000000 Hardware B M C The tape drive has a hardware fault:
  1. Turn the tape drive off and then on again.
  2. Restart the operation.
  3. If the problem persists, call the tape drive supplier help line.
The drive has a hardware fault that is not read/write related or requires a power cycle to recover.
20h 80000000 Interface O W The tape drive has a problem with the application client interface:
  1. Check the cables and cable connections.
  2. Restart the operation.
The drive has identified an interface fault.
21h 100000000 Eject media O C The operation has failed:
  1. Eject the tape or magazine.
  2. Insert the tape or magazine again.
  3. Restart the operation.
Error recovery action.
22h 200000000 Download fail O W The firmware download has failed because you have tried to use the incorrect firmware for this tape drive. Obtain the correct firmware and try again. Firmware download failed.
23h 400000000 Drive humidity O W Environmental conditions inside the tape drive are outside the specified humidity range. Drive humidity limits exceeded.
24h 800000000 Drive temperature O W Environmental conditions inside the tape drive are outside the specified temperature range. Cooling problem.
25h 1000000000 Drive voltage O W The voltage supply to the tape drive is outside the specified range. Drive voltage limits exceeded.
26h 2000000000 Predictive failure O C A hardware failure of the tape drive is predicted. Call the tape drive supplier help line. Predictive failure of drive hardware.
27h 4000000000 Diagnostics required O W The tape drive may have a hardware fault. Run extended diagnostics to verify and diagnose the problem. Check the tape drive users manual for device specific instructions on running extended diagnostic tests. The drive may have a hardware fault that may be identified by extended diagnostics (i.e., SEND DIAGNOSTIC command).
28h - 2Eh Obsolete
2Fh - 31h Rsvd
32h 4000000000000 Lost statistics O W Media statistics have been lost at some time in the past. Drive or library powered on with tape loaded.
33h 8000000000000 Tape directory invalid at unload O W The tape directory on the tape cartridge just unloaded has been corrupted. File search performance will be degraded. The tape directory can be rebuilt by reading all the data. Error preventing the tape directory being updated on unload.
34h 10000000000000 Tape system area write failure O C The tape just unloaded could not write its system area successfully:
  1. Copy data to another tape cartridge.
  2. Discard the old cartridge.
Write errors while writing the system area on unload.
35h 20000000000000 Tape system area read failure O C The tape system area could not be read successfully at load time:
  1. Copy data to another tape cartridge.
Read errors while reading the system area on load.
36h 40000000000000 No start of data O C The start of data could not be found on the tape: 1. Check that you are using the correct format tape. 2. Discard the tape or return the tape to your supplier. Tape damaged, bulk erased, or incorrect format.
37h 80000000000000 Loading failure O C The operation has failed because the media cannot be loaded and threaded.
  1. Remove the cartridge, inspect it as specified in the product manual, and retry the operation.
  2. If the problem persists, call the tape drive supplier help line.
The drive is unable to load the media and thread the tape.
38h 100000000000000 Unrecoverable unload failure O C The operation has failed because the medium cannot be unloaded:
  1. Do not attempt to extract the tape cartridge.
  2. Call the tape driver supplier help line.
The drive is unable to unload the medium.
39h 200000000000000 Automation interface failure O C The tape drive has a problem with the automation interface:
  1. Check the power to the automation system.
  2. Check the cables and cable connections.
  3. Call the supplier help line if problem persists.
The drive has identified an interface fault.
3Ah 400000000000000 Firmware failure O W The tape drive has reset itself due to a detected firmware fault. If problem persists, call the supplier help line. Firmware bug.
3Bh 800000000000000 WORM Medium - Integrity Check Failed O W The tape drive has detected an inconsistency during the WORM medium integrity checks. Someone may have tampered with the cartridge. Someone has tampered with the WORM medium.
3Ch 1000000000000000 WORM Medium - Overwrite Attempted O W An attempt had been made to overwrite user data on a WORM medium:
  1. If a WORM medium was used inadvertently, replace it with a normal data medium.
  2. If a WORM medium was used intentionally:
    a) Check that the software application is compatible with the WORM medium format you are using.
    b) Check that the medium is bar-coded correctly for WORM.
The application software does not recognize the medium as WORM.
3Dh Rsvd
3Eh Rsvd
3Fh Rsvd
40h Rsvd

Download

Just the user-mode utilities packaged as an RPM: vtl-0.15-0.i686.rpm (~50Kbytes)

Source code for user-mode utilities + kernel module: vtl-0.15-0.src.rpm (~100Kbytes)


Please email Mark Harvey any questions and/or corrections.

$Id: index.html,v 1.9.2.1 2008-03-06 07:28:54 markh Exp $