amanda-changers — Configuring and Using Amanda Changers
Amanda uses changers to arbitrate access to devices (amanda-devices(7)) and data volumes. Changers provide an abstraction of tape robots, but are used to manage non-tape media, too. Amanda communicates with changers through the Changer API. This manpage contains a user-level overview of the API, and does not address details that are only of concern to developers. For that purpose, consult the Amanda source code and http://wiki.zmanda.com.
The Amanda Changer API is in transition from version 1.0 - driven by shell scripts invoked for each changer operation - to version 2.0, composed of perl objects that can manage parallel access to multiple devices and other complexity. When this transition is complete, Amanda devices will, in general, be specified via a changer, which will provide the necessary device specifier to access a requested volume. In the interim, support for the "new" changer syntax is limited to the experimental amvault(8).
Changer specifications are strings like
chg-disk:/my/vtapes
. The
chg-
prefix serves to differentiate changers
from devices (see
amanda-devices(7)).
The next portion (disk
, in this case)
identifies the particular changer driver to use, and everything that follows
the :
is interpreted by the driver.
A name which does not match this pattern, but which matches an old
changer script (e.g., chg-zd-mtx
), invokes the
backward-compatibility changer driver as
chg-compat:chg-zd-mtx
. If the name does not
match an old changer, then it is treated as an Amanda device, and is wrapped by
the single-device changer, e.g.,
chg-single:tape:/dev/rmt/0
.
Changers which require additional parameters can also be described in amanda.conf(5) with "changer" sections, for example,
define changer hp-robot { tapedev "chg-robot:/dev/sg1" property "drives" "0=/dev/nst0;1=/dev/nst0" property "slots" "1-10" }
(note that "chg-robot" is not yet implemented, so this is hypothetical). A changer defininition creates a changer "alias", in this case named hp-robot, which can then be named where an application expects a changer - for example, the target of the amvault command.
This section lists the changer drivers included with Amanda, and basic instructions for using them. For complete How-To information, consult the Amanda wiki at http://wiki.zmanda.com.
tpchanger "chg-disk:/u01/vtapes"
This changer driver replaces the old chg-disk,
supporting parallel access to vtapes stored in directories named
slotN
in the directory specified after
chg-disk:
. It does so by creating numbered
"drives" so that simultaneous processes can access distinct slots.
tapedev "file:/u01/vtapes" tpchanger "chg-disk"
This changer script supports sequential access to vtapes stored in
directories named slotN
in the directory
specified by the tapedev parameter.
tpchanger "chg-multi" changerfile "chg-multi-state"
This script simply round-robins a number of distinct device names, as specified in its configuration file. It is useful when all volumes for a configuration have different device names -- for example, with S3 devices. The changerfile need not exist; it is used as a prefix for filenames of state files.
tpchanger "chg-manual" changerfile "chg-manual.conf"
This script simply provides distinct device names in a round-robin fashion, as specified in its configuration file. It is useful when all volumes for a configuration have different device names -- for example, with S3 devices. The configuration file parameters are (as listed in the script):
resend_mail=900 # resend mail every __ seconds timeout_mail=604800 # time out after this many seconds (default 7 days) request="[type]" # How to request a new tape (default "tty_email") request="tty" # Use the tty to ask the user to change tape. # Can't be use by cron request="email" # Send an email to ask the user to change tape. request="tty_email" # Use the tty if it exist or send an email.
tpchanger "chg-zd-mtx" changerdev "/dev/sg0" # used with 'mtx -f' changerfile "chg-zd-mtx.conf" tapedev "tape:/dev/nst0"
This script interfaces with a tape drive using the Zubkoff/Dandelion version of mtx. That's the version that takes a device specifier with the -f option and has subcommands like status. The configuration file parameters are (as listed in the script itself):
firstslot=? #### First storage slot (element) lastslot=? #### Last storage slot (element) cleanslot=-1 #### Slot with cleaner tape -- default is "-1" #### Set negative to indicate no cleaner available driveslot=0 #### Drive slot number. Defaults to 0 #### Use the 'Data Transfer Element' you want autoclean=0 #### Set to '1' or greater to enable autocleancount=99 #### Number of access before a clean. havereader=0 #### If you have a barcode reader, set to 1. offline_before_unload=0 #### Does your robot require an #### 'mt offline' before mtx unload? poll_drive_ready=NN #### Time (seconds) between tests to see if #### the tape drive has gone ready (default: 3). max_drive_wait=NN #### Maximum time (seconds) to wait for the #### tape drive to become ready (default: 120). initial_poll_delay=NN #### initial delay after load before polling for #### readiness slotinfofile=FILENAME #### record slot information to this file, in #### the line-based format "SLOT LABEL\n"
tpchanger "chg-rait" changerfile "chg-rait.conf"
This changer script constructs RAIT devices out of the devices provided by several "sub-changers". The configuration file specifies nchangers
, the number of
subchangers, and then provides tpchanger
, changerdev_N
, changerfile_N
, and tpchanger_N
for each sub-changer, 1 through N.
This manual page was written by
.