X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=man%2Fxml-source%2Famanda-changers.7.xml;h=9846a12066e2e942acc5ae0fcfbb6523f3202b37;hb=fd48f3e498442f0cbff5f3606c7c403d0566150e;hp=4d68e2c8354f7f7e5367d9239d5c9db26adac6cf;hpb=96f35b20267e8b1a1c846d476f27fcd330e0b018;p=debian%2Famanda
diff --git a/man/xml-source/amanda-changers.7.xml b/man/xml-source/amanda-changers.7.xml
index 4d68e2c..9846a12 100644
--- a/man/xml-source/amanda-changers.7.xml
+++ b/man/xml-source/amanda-changers.7.xml
@@ -3,7 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
[
-
+
%global_entities;
]>
@@ -28,7 +28,7 @@
DESCRIPTION
Amanda uses changers to arbitrate access to devices
-(amanda-devices7)
+()
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
@@ -43,11 +43,18 @@ 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
-amvault8.
+complexity. At this point, all Amanda programs use the new Changer API directly,
+although 1.0 changer scripts are still fully supported via chg-compat
.
+
+
+The Changer API strives to treat all changers identically, so that
+Amanda's behavior is independent of the changer in use. However, some parts of
+Amanda operate differently depending on whether a changer can efficiently
+search for a volume with a given label. This distinction is really only
+apparent with tape libraries: those with barcode readers can quickly find a
+desired tape, while those without may fall back to an inefficient scan of each
+volume. The capability to perform quick searches is called "fast-search", and
+each changer is annotated below to indicate its support.
@@ -56,40 +63,78 @@ syntax is limited to the experimental
Changer specifications are strings like
chg-disk:/my/vtapes. The
chg- prefix serves to differentiate changers
-from devices (see
-amanda-devices7).
-The next portion (disk, in this case)
-identifies the particular changer driver to use, and everything that follows
-the : is interpreted by the driver.
+from devices (see ). The next portion
+(disk, in this case) identifies the particular
+changer driver to use, and everything that follows the
+: is interpreted by the driver. Note that the
+: character is required, even when nothing
+follows it. This is an easy way to distinguish new changer specifications from
+old.
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
+backward-compatibility changer driver as e.g.,
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 &amconf; with "changer" sections, for example,
+Changers which require additional parameters can also be described in
+&amconf; with "changer" sections. Such 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 or in a global
+tpchanger parameter.
+
+CONFIGURATION
+
+The preferred method of specifying configuration for a changer is as a
+"changer" section in &amconf;. The tapedev parameter
+then indicates, by name, the changer that will be used by default by most
+Amanda programs. For example:
define changer hp-robot {
tapedev "chg-robot:/dev/sg1"
- property "drives" "0=/dev/nst0;1=/dev/nst0"
- property "slots" "1-10"
+ property "tape-device" "0=tape:/dev/nst0"
+ property append "tape-device" "1=tape:/dev/nst1"
+ device_property "BLOCK_SIZE" "512k"
}
+# ...
+tapedev "hp-robot"
+
+
+Several changer drivers accept changer properties which
+control the behavior of the changer. These properties must be specified in a
+changer definition, as in the hp-robot example, above.
+
+Devices, too, can take properties to control their behavior (see ). Device properties can come from four
+places: implicit device properties (from tapetype parameters), global device
+properties (from global device_property parameters),
+properties in device definitions, and properties in changer definitions.
+Properties are applied in this order, with later properties taking
+priority.
+
+There are only three implicit properties:
+MAX_VOLUME_USAGE is set based on the tapetype
+length parameter, READ_BLOCK_SIZE is
+set if readblocksize is set, and
+BLOCK_SIZE is set based on the
+blocksize parameter.
+
+Global device properties always apply. If the changer specifies a device
+by alias, then device properties from the definition apply. If the changer is
+specified by an alias, then properties from that definition applied.
-(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.
+
CHANGER DRIVERS
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.
-chg-disk (new)
+chg-disk:VTAPEROOT (new)
tpchanger "chg-disk:/u01/vtapes"
@@ -98,7 +143,11 @@ tpchanger "chg-disk:/u01/vtapes"
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.
+"drives" so that simultaneous processes can access distinct slots. This changer is fast-search capable.
+
+The current slot can be accessed using the device name
+file:VTAPEROOT. This is useful for the command line.
@@ -106,15 +155,90 @@ supporting parallel access to vtapes stored in directories named
tapedev "file:/u01/vtapes"
tpchanger "chg-disk"
+changerfile "chg-disk.conf" # optional file
This changer script supports sequential access to vtapes stored in
directories named slotN in the directory
-specified by the tapedev parameter.
+specified by the tapedev parameter.
+The configuration file parameter is:
+
+LASTSLOT=number # The number of slots, default to tapecycle setting.
+
+
+
+This changer is not fast-search capable.
+
+
+
+chg-multi:DEVICE-LIST
+
+tpchanger "chg-multi:{/dev/nst0,/dev/nst1,/dev/nst2}"
+changerfile "chg-multi-state"
+
+
+This script simply round-robins a number of distinct device names, as
+specified in the tpchanger setting. It is useful when
+all volumes for a configuration have different device names -- for example,
+if you have many standalone drive. The changerfile must exist; it is used to save the state file.
+
+
+This changer is not fast-search capable.
+
+Properties
+
+
+
+
+FIRST-SLOT
+This property gives the number of the first slot. The default value is "1".
+
+
+
+
+
+
+Special Operations
+
+A number of special operations are available for chg-multi via
+ subcommands.
+
+The reset subcommand will change the current slot to
+the first available slot, but does not erase any stored state maintained by the
+changer.
+
+The eject subcommand will eject the volume in the
+given drive
+
+The clean subcommand is not yet implemented.
+
+The update subcommand instructs the changer to update
+its state database. Given no arguments, the changer will scan all available
+slots, loading each tape and reading its label. Especially for large libraries,
+this can take a long time. If only a few slots have changed, they can be listed
+on the command line:
+
+amtape CONFIG update 1-3,9
+
+In this case, the changer will only scan the stated slots. Finally, the changer
+will not scan at all if it is given the tape label for the slot:
+
+amtape CONFIG update 2=DailySet-028
+
+In this case, the changer updates its state to indicate that
+DailySet-028 is in slot 2, without trying to
+load the tape.
+
+amtape CONFIG update 1-3,9=
+
+In this case, the changer marks the stated slots as an unknown state.
+
+
+
-chg-multi
+chg-multi (old)
tpchanger "chg-multi"
changerfile "chg-multi-state"
@@ -127,6 +251,34 @@ The changerfile need not exist; it is used as a prefix
for filenames of state files.
+The configuration file has simple lines with a parameter and its value separated by a space. The # character introduces a comment. The configuration parameters are:
+
+
+multiejectIf this is 1, use an 'mt
+offline' command to change to the next tape, or multiple such commands for
+skipping several tapes at a time.
+
+
+needejectThis option is incompatible with
+'multieject'. This should be 1 for changers accessed through several virtual
+tape devices, when the changer needs the current tape to be ejected before
+changing to another device.
+
+
+gravitySet this to 1 if the
+changer/stacker is unable to loop back to the first tape after unloading the
+last one, or if you don't want amanda to go through the tape stack looking for
+the exact tape it wants instead of using the first acceptable one.
+
+
+slot XThe configuration file should list
+as many 'slot X' statements as the number of slots supported by the changer or
+the number of separate tape drives used.
+
+
+
+This changer is not fast-search capable.
+
chg-manual
@@ -150,9 +302,11 @@ request="[type]" # How to request a new tape (default "tty_email")
+This changer is not fast-search capable.
+
-chg-zd-mtx
+chg-zd-mtx (old)
tpchanger "chg-zd-mtx"
changerdev "/dev/sg0" # used with 'mtx -f'
@@ -188,25 +342,334 @@ slotinfofile=FILENAME #### record slot information to this file, in
+This changer is fast-search capable if and only if
+havereader is true.
+
-chg-rait
+chg-rait:{CHILD1,CHILD2,..}
-tpchanger "chg-rait"
-changerfile "chg-rait.conf"
+define changer vtape {
+ tpcanger "chg-disk:/path/to/vtape"
+}
+define changer robot {
+ tpchanger "chg-robot:/dev/sg0"
+ tapedev "tape:/dev/nst0"
+}
+tpchanger "chg-rait:{vtape,robot}"
-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 changer script constructs RAIT devices out of the devices provided by several "sub-changers". The sub-changers are specified using the same shell-like syntax as the RAIT device (see
+).
+
+Chg-rait does not require that all of the child changers have the same slot names: compound slot names are created by combining the slot names supplied by the child changers using the same shell-like syntax. For example, if the child changers return slots "top", "strange", and "3", then the RAIT changer will return "{top,strange,3}". This makes it possible to, for example, mirror data on tapes in slots 1-10 to tapes in slots 11-20 of the same robot, using two chg-zd-mtx child changers (and, naturally, two tape drives). In this arrangement, the first slot would be named {1,11}.
+
+As a convenience to the user, the RAIT changer will also accept un-braced slot names, and supply the same name to each child changer. Thus with a 4-device RAIT changer, "17" is equivalent to "{17,17,17,17}".
+
+Drive names are parsed in a similar fashion, for operations that take drive names (clean and eject).
+
+This changer is fast-search capable only if all of its child changers are fast-search capable.
+
+The old chg-rait script is no longer supported nor shipped with Amanda, although the old script will continue to function via chg-compat, giving users time to upgrade their configuration.
+
-chg-null
+chg-null:
-tpchanger "chg-null"
+tpchanger "chg-null:"
-This changer always provides the device "null:". It is sometimes useful in conjunction with chg-rait.
+This changer always provides the device "null:". It is sometimes useful in conjunction with chg-rait:.
+
+
+
+chg-robot:DEVICE
+
+define changer robot {
+ tpchanger "chg-robot:/dev/sg0"
+ property "tape-device" "0=tape:/dev/rmt/0" "1=tape:/dev/rmt/1"
+ property "eject-before-unload" "yes"
+ property "use-slots" "1-5,11-20"
+}
+tpchanger "robot"
+
+
+This changer drives a robotic tape library using the operating system's
+mtx command. It replaces the ancient
+chg-zd-mtx script. The changer uses all of the information
+available to operate as efficiently as possible. Even without a barcode
+reader, the changer can usually load a tape immediately, without resorting to a
+sequential scan of many tapes. It is capable of sharing state across multiple
+Amanda configurations, avoiding conflicts and optimally tracking the contents
+of the library.
+
+This changer does not accept a changerdev parameter,
+but the changerfile parameter can be used to specify a
+filename at which it should store its state. Ordinarily, this state is stored
+in a file named after the changer device under
+$localstatedir/amanda, e.g.,
+/var/amanda/chg-robot-dev-sg0. There should be a single
+such statefile for each distinct tape library attached to the Amanda server, even
+if multiple Amanda configurations reference that library.
+
+With a barcode reader present, it is possible for
+chg-robot to track the state of the library reliably, even
+recognizing tapes that are removed and later re-inserted (by remembering their
+barcodes). Without barcodes, the changer can still remember the slot in which
+it last saw the tape with a particular label, although this information can
+become stale if the tapes are rearranged by an operator. In any case, the
+changer will never "hunt" for a tape by repeatedly loading slots and checking
+labels. If the changer's state is inaccurate, use the
+ subcommand update.
+
+This changer is fast-search capable even without a barcode reader. For
+such libraries, it is the responsibility of the operator to
+update the changer when tapes are added to or removed from
+the library.
+
+There is a shell script in the contrib/ directory of
+Amanda's source distribution which can help you convert a
+chg-zd-mtx configuration into a chg-robot
+configuration. Just give it your Amanda configuration name:
+
+ sh contrib/convert-zd-mtx-to-robot.sh $config
+
+The script can be downloaded at http://github.com/zmanda/amanda/raw/master/contrib/convert-zd-mtx-to-robot.sh
+
+Special Operations
+
+A number of special operations are available for chg-robot via
+ subcommands.
+
+The reset subcommand will change the current slot to
+the first available slot, but does not erase any stored state maintained by the
+changer.
+
+The eject subcommand will unload the volume in the
+given drive, ejecting first if the changer properties dictate. Note that,
+despite the subcommand name, the changer attempts to avoid the state where a
+volume has been ejected from the drive but not unloaded back to a storage
+slot.
+
+The clean subcommand is not yet implemented.
+
+The update subcommand instructs the changer to update
+its state database. Given no arguments, the changer will scan all available
+slots, loading each tape and reading its label. Especially for large libraries,
+this can take a long time. If only a few slots have changed, they can be listed
+on the command line:
+
+amtape CONFIG update 1-3,9
+
+In this case, the changer will only scan the stated slots. Finally, the changer
+will not scan at all if it is given the tape label for the slot:
+
+amtape CONFIG update 2=DailySet-028
+
+In this case, the changer updates its state to indicate that
+DailySet-028 is in slot 2, without trying to
+load the tape.
+
+amtape CONFIG update 1-3,9=
+
+In this case, the changer marks the stated slots as an unknown state.
+
+
+
+
+Properties
+
+
+
+
+DRIVE-CHOICE
+This property controls the algorithm used to select a drive in which to load a
+tape. If set to the default ("lru"), the changer attempts to use the least
+recently used drive, resulting in a round-robin behavior. The "firstavail"
+algorithm selects the first available drive, thus preferring the first drive
+specified via the TAPE-DEVICE property.
+
+
+EJECT-BEFORE-UNLOAD
+Set this boolean property to true if the library requires an
+offline operation be performed on the tape drive before it
+can be unloaded. If set, then mt will be invoked to
+perform this operation. Most libraries do not require this workaround.
+
+
+EJECT-DELAY
+This is the time between ejecting a tape and unloading the volume to a storage slot, and
+defaults to 0 seconds. It is only used if EJECT-BEFORE-UNLOAD is true. See "Timing", below.
+
+
+FAST-SEARCH
+This boolean property indicates whether the changer advertises the ability to find
+volumes without sequential scanning. The traditional taperscan algorithm alters its
+behavior based on this flag, so it is sometimes necessary to adjust it, although the
+changer will always search for a desired tape using the most efficient means
+available. The default value is true.
+
+
+IGNORE-BARCODES
+If this boolean property is true, then chg-robot will ignore any barcode information
+that the library provides. This property is probably only useful when the library
+returns incorrect barcodes, for example due to a malfunction in the barcode reader.
+
+
+LOAD-POLL
+This property specifies the timing of Amanda's polling for the tape drive to
+be ready after loading a new tape. See "Timing", below.
+
+The script "polls" by trying to open the tape device repeatedly until no
+error is encountered. The property specifies the time to wait before the first
+poll (D), the frequency at which to poll and retry on errors (P); and the time
+after which it should give up (U). The format is
+
+"D [poll P [until U]]"
+
+For a simple delay with no polling, use e.g.,
+
+property "load-poll" "13s"
+
+To delay and then poll, use e.g.,
+
+property "load-poll" "13s poll 5s"
+
+and to add a maximum total time, use e.g.,
+
+property "load-poll" "0s poll 5s until 2m"
+
+The default value is "0s poll 3s until 2m".
+
+
+
+MTX
+The path to the 'mtx' binary. The default value is defined at compile time.
+
+
+STATUS-INTERVAL
+This is the minimum time between invocations of mtx status
+to determine the state of the changer library. The default value, 2 seconds,
+avoids back-to-back status invocations but ensures that the metadata is up to
+date. For operating systems or libraries where the mtx
+status takes a considerable time to complete, this value should be
+increased. See "Timing", below.
+
+
+TAPE-DEVICE
+This property describes the correspondance of drive numbers in the library to
+Amanda devices, in the format DRIVE=DEVICE. The property
+can be specified multiple times to describe multiple devices. The device will
+usually be a tape device name starting with tape:, but may
+also refer to a device alias (see ). As
+a shortcut, if the tapedev parameter is specified in the
+changer definition, then it is assumed to be the device name for drive 0.
+
+
+UNLOAD-DELAY
+This specifies the minimum time between an unload operation any any subsequent
+operation. The default value is 0 seconds. See "Timing", below.
+
+
+USE-SLOTS
+This property, if specifies, enumerates the slots to which this changer should
+limit itself. The slots are specified as a comma-separated list of ranges,
+e.g., "1-5,11-15,19,22". The property can be specified more than once, and
+the resulting sets will be combined. The changer will refuse to load tapes
+not found in these slots, except for import/export purposes.
+
+
+
+
+Timing
+
+Tape libraries are fickle, and in many cases will report that an
+operation is complete when it is still in progress. Chg-robot takes several
+timing-related properties to accomodate such behavior.
+
+A typical sequence of operations performed during a load are: get library
+status, eject a tape, unload the tape back to a storage slot, load a new tape,
+and read the label on that tape to ensure the drive is ready.
+
+On most systems, the library status check is nearly instantaneous -- the
+changer library provides its cached state to the host without initiating any
+robot motion. In order to keep its metadata up-to-date, chg-robot runs this
+command very frequently, but this frequency can be reduced (at the cost of
+potentially stale metadata) by setting the STATUS-INTERVAL property to a larger
+value.
+
+Some tape libraries do not integrate the eject operation (performed by
+the embedded tape drive) with the unload operation (performed by the library
+robot), and can actually cause physical damage by attempting to remove the tape
+before the ejection is complete. For such changers, set the EJECT-DELAY
+property to allow enough time for the eject to complete.
+
+Once a tape is unloaded, if the library needs time to "quiesce" before
+processing another command, add that time to the UNLOAD-DELAY parameter. No
+other operations will be performed on the library until this delay has
+elapsed.
+
+Once a tape has been loaded, chg-robot waits until the drive is ready before
+allowing Amanda to use the volume, as described for LOAD-POLL, above.
+
+Each of the times specified in these properties may be given as integers
+with the optional suffix s for seconds (the default) or
+m for minutes.
+
+
+
+
+
+chg-ndmp:HOST[:PORT]@SCSIDEV
+
+ tpchanger "chg-ndmp:filer.company.com@/dev/sg0"
+ property "tape-device" "0=ndmp:filer.company.com@/dev/rtape0"
+ property append "tape-device" "1=ndmp:filer.company.com@/dev/rtape1"
+ property "use-slots" "1-12"
+ property "ndmp-auth" "text"
+ property "ndmp-username" "luke"
+ property "ndmp-password" "leia"
+
+
+This changer is very similar to chg-robot, but
+controls a tape changer on an NDMP server instead of a local device. The
+HOST in the tpchanger should be the
+hostname of the NDMP server. The PORT is optional. The
+SCSIDEV should specify the SCSI device on the NDMP server
+which controls the changer. The format of this parameter is
+implementation-specific.
+
+The appropriate authentication properties will be automatically set on
+any devices created by this changer.
+
+Properties
+
+This changer supports all of the properties supported by
+chg-robot, although the value of MTX is
+ignored. The following properties are also recognized:
+
+
+
+
+NDMP_AUTH
+Authentication method to use to connect to the NDMP server. One of
+"md5" (default), "text", "none" (for an empty authentication attempt) or "void" (for
+no authentication attempt at all).
+
+
+NDMP-PASSWORD
+The password for the NDMP server.
+
+
+NDMP-USERNAME
+The username for the NDMP server.
+
+
+
+
+
@@ -221,12 +684,10 @@ will be removed when the new changer API is fully implemented.
-SEE ALSO
-
-amanda8,
-amanda.conf5,
-amanda-devices7,
-
+
+,
+,
+
+
-