SCSI Media Changer and Backup Device Control System
[Also see the SourceForge
project page.]
mtx is a set of low level driver programs to control features
of SCSI backup related devices such as autoloaders, tape changers,
media jukeboxes, and tape drives. It can also report much data,
including serial numbers, maximum block sizes, and TapeAlert(tm)
messages that most modern tape drives implement (to tell you the exact
reason why a backup or restore failed), as well as do raw SCSI READ
and WRITE commands to tape drives (not important on Linux, but
important on Solaris due to the fact that the Solaris tape driver
supports none of the additional features of tape drives invented after
1988). mtx is designed to be a low level driver in a larger
scripted backup solution, such as Amanda.
mtx is not
supposed to itself be a high level interface to the SCSI devices that
it controls.
This version has the following features:
- Will deal with LARGE media libraries (over a hundred elements).
- Supports multi-drive media changers such as the Exabyte 220 dual-
drive tape library.
- Supports the 'invert' bit for optical jukeboxes that need that in
order to flip their media.
- Supports the 'eepos' bits for libraries that need this to extend/retract
their import/export tray.
- Now supports import/export elements!
- Reports volume tags (bar codes) and "alternate volume tags"
(whatever those are!) for those tape libraries
that support them.
- Now runs under FreeBSD and at least Solaris 8.
- Now has a 'man' page!
- The actual SCSI manipulation has been separated out into a library, so
that you can create your own "C" programs that manipulate SCSI media changers
directly. (Please note: this is under GPL, so any such programs will have
to be under GPL also).
This program supposedly supports FreeBSD, Solaris, Linux, HP/UX, and
IRIX. Tru64 Unix and VMS are probably irretrievably broken at this
time. This program has been tested under FreeBSD, Solaris, and Linux,
and there only with a limited set of hardware. See the COMPATIBILITY
list in the source code.
Source Code
The current source code is:
RPMs may be available from the following place:
A .spec file is now included in the 'mtx' distribution for building your
own RPM's.
Note that RPMs
are courtesy of Kenneth Porter,
who should be contacted regarding rpm-related problems.
Known Bugs And Limitations
-
You may need to do a 'mt offline' (or equivalent for your OS)
on the tape drive to
eject the tape before you can issue the 'mtx unload' command.
The Exabyte EZ-17 and 220 in particular will happily
sit there snapping the robot arm's claws around thin air
trying to grab a tape that's not there.
-
The 'next' command does not understand the 'invert' bit (i.e., does not
recognize that for optical jukeboxes, the 'next' of side one is to unload,
invert, and reload the same disk). It always advances to the next
slot instead.
-
For some Linux distributions, you may need to re-compile
the kernel to scan SCSI LUN's in order to detect the media
changer. Check /proc/scsi/scsi to see what's going on.
-
If you try to unload a tape to its 'source' slot, and said
slot is full, it will instead put the tape into the first
empty slot. Unfortunately the list of empty slots is not
updated between commands on the command line, so if you
try to unload another drive to a full 'source' slot during
the same invocation of 'mtx', it will try to unload to the
same (no longer empty) slot and will urp with a SCSI
error.
- For big tape libraries (more than a couple dozen elements) this
may set a big Allocation_Size in the SCSI command block for the
REQUEST_ELEMENT_STATUS command. Some operating systems may not be able
to handle this. Versions of Linux earlier than 2.2.6, in particular,
may fail this request due to inability to find contiguous pages of
memory for the SCSI transfer (later versions of Linux 'sg' device do
scatter-gather so that this should no longer be a problem).
- VMS and Tru64 support are probably irretrievably busted.
- This program will only use the first arm of multiple-arm robots unless
the robot re-maps all arms to one element ID.
- It has been reported that this program works on Solaris 7 using the 'sst'
driver, and may work on Solaris 8 using the 'sgen' driver. 'sst' can
be gotten from the Amanda contrib directory at
http://download.sourceforge.net/amanda.
Philosophy
The Unix philosophy is "many small tools chained together". mtx supplies
those small tools so that you can create your own backup and
recovery tools by chaining
mtx pieces together, whether it be with /bin/sh, Perl, Python, or
CAML.
Support
See Also:
Maintained by Eric Lee Green
Hosted by VA Linux's SourceForge
Last modified: Mon Jun 25 15:37:22 MST 2001