+++ /dev/null
-%%
-%%
-
-\chapter{Storage Daemon Configuration}
-\label{StoredConfChapter}
-\index[general]{Storage Daemon Configuration}
-\index[general]{Configuration!Storage Daemon}
-
-The Storage Daemon configuration file has relatively few resource definitions.
-However, due to the great variation in backup media and system capabilities,
-the storage daemon must be highly configurable. As a consequence, there are
-quite a large number of directives in the Device Resource definition that
-allow you to define all the characteristics of your Storage device (normally a
-tape drive). Fortunately, with modern storage devices, the defaults are
-sufficient, and very few directives are actually needed.
-
-Examples of {\bf Device} resource directives that are known to work for a
-number of common tape drives can be found in the {\bf
-\lt{}bacula-src\gt{}/examples/devices} directory, and most will also be listed
-here.
-
-For a general discussion of configuration file and resources including the
-data types recognized by {\bf Bacula}, please see the
-\ilink{Configuration}{ConfigureChapter} chapter of this manual. The
-following Storage Resource definitions must be defined:
-
-\begin{itemize}
-\item
- \ilink{Storage}{StorageResource} -- to define the name of the
- Storage daemon.
-\item
- \ilink{Director}{DirectorResource1} -- to define the Director's
- name and his access password.
-\item
- \ilink{Device}{DeviceResource} -- to define the
- characteristics of your storage device (tape drive).
-\item
- \ilink{Messages}{MessagesChapter} -- to define where error and
- information messages are to be sent.
-\end{itemize}
-
-\section{Storage Resource}
-\label{StorageResource}
-\index[general]{Resource!Storage}
-\index[general]{Storage Resource}
-
-In general, the properties specified under the Storage resource define global
-properties of the Storage daemon. Each Storage daemon configuration file must
-have one and only one Storage resource definition.
-
-\begin{description}
-
-\item [Name = \lt{}Storage-Daemon-Name\gt{}]
- \index[sd]{Name}
- \index[sd]{Directive!Name}
- Specifies the Name of the Storage daemon. This directive is required.
-
-\item [Working Directory = \lt{}Directory\gt{}]
- \index[sd]{Working Directory}
- \index[sd]{Directive!Working Directory}
- This directive is mandatory and specifies a directory in which the Storage
- daemon may put its status files. This directory should be used only by {\bf
- Bacula}, but may be shared by other Bacula daemons provided the names
- given to each daemon are unique. This directive is
- required
-
-\item [Pid Directory = \lt{}Directory\gt{}]
- \index[sd]{Pid Directory}
- \index[sd]{Directive!Pid Directory}
- This directive is mandatory and specifies a directory in which the Director
- may put its process Id file files. The process Id file is used to shutdown
- Bacula and to prevent multiple copies of Bacula from running simultaneously.
- This directive is required. Standard shell expansion of the {\bf Directory}
- is done when the configuration file is read so that values such as {\bf
- \$HOME} will be properly expanded.
-
- Typically on Linux systems, you will set this to: {\bf /var/run}. If you are
- not installing Bacula in the system directories, you can use the {\bf Working
- Directory} as defined above.
-
-\item [Heartbeat Interval = \lt{}time-interval\gt{}]
- \index[sd]{Heartbeat Interval}
- \index[sd]{Directive!Heartbeat Interval}
- \index[general]{Heartbeat Interval}
- \index[general]{Broken pipe}
- This directive defines an interval of time in seconds. When
- the Storage daemon is waiting for the operator to mount a
- tape, each time interval, it will send a heartbeat signal to
- the File daemon. The default interval is zero which disables
- the heartbeat. This feature is particularly useful if you
- have a router such as 3Com that does not follow Internet
- standards and times out an valid connection after a short
- duration despite the fact that keepalive is set. This usually
- results in a broken pipe error message.
-
-\item [Client Connect Wait = \lt{}time-interval\gt{}]
- \index[sd]{Connect Wait}
- \index[sd]{Directive!Connect Wait}
- \index[general]{Client Connect Wait}
- This directive defines an interval of time in seconds that
- the Storage daemon will wait for a Client (the File daemon)
- to connect. The default is 30 seconds. Be aware that the
- longer the Storage daemon waits for a Client, the more
- resources will be tied up.
-
-\item [Maximum Concurrent Jobs = \lt{}number\gt{}]
- \index[sd]{Maximum Concurrent Jobs}
- \index[sd]{Directive!Maximum Concurrent Jobs}
- where \lt{}number\gt{} is the maximum number of Jobs that should run
- concurrently. The default is set to 10, but you may set it to a larger
- number. Each contact from the Director (e.g. status request, job start
- request) is considered as a Job, so if you want to be able to do a {\bf
- status} request in the console at the same time as a Job is running, you
- will need to set this value greater than 1. To run simultaneous Jobs,
- you will need to set a number of other directives in the Director's
- configuration file. Which ones you set depend on what you want, but you
- will almost certainly need to set the {\bf Maximum Concurrent Jobs} in
- the Storage resource in the Director's configuration file and possibly
- those in the Job and Client resources.
-
-\item [SDAddresses = \lt{}IP-address-specification\gt{}]
- \index[sd]{SDAddresses}
- \index[sd]{Directive!SDAddresses}
- Specify the ports and addresses on which the Storage daemon will listen
- for Director connections. Normally, the default is sufficient and you
- do not need to specify this directive. Probably the simplest way to
- explain how this directive works is to show an example:
-
-\footnotesize
-\begin{verbatim}
- SDAddresses = { ip = {
- addr = 1.2.3.4; port = 1205; }
- ipv4 = {
- addr = 1.2.3.4; port = http; }
- ipv6 = {
- addr = 1.2.3.4;
- port = 1205;
- }
- ip = {
- addr = 1.2.3.4
- port = 1205
- }
- ip = {
- addr = 1.2.3.4
- }
- ip = {
- addr = 201:220:222::2
- }
- ip = {
- addr = bluedot.thun.net
- }
-}
-\end{verbatim}
-\normalsize
-
-where ip, ip4, ip6, addr, and port are all keywords. Note, that the address
-can be specified as either a dotted quadruple, or IPv6 colon notation, or as
-a symbolic name (only in the ip specification). Also, port can be specified
-as a number or as the mnemonic value from the /etc/services file. If a port
-is not specified, the default will be used. If an ip section is specified,
-the resolution can be made either by IPv4 or IPv6. If ip4 is specified, then
-only IPv4 resolutions will be permitted, and likewise with ip6.
-
-Using this directive, you can replace both the SDPort and SDAddress
-directives shown below.
-
-\item [SDPort = \lt{}port-number\gt{}]
- \index[sd]{SDPort}
- \index[sd]{Directive!SDPort}
- Specifies port number on which the Storage daemon listens for Director
- connections. The default is 9103.
-
-\item [SDAddress = \lt{}IP-Address\gt{}]
- \index[sd]{SDAddress}
- \index[sd]{Directive!SDAddress}
- This directive is optional, and if it is specified, it will cause the
- Storage daemon server (for Director and File daemon connections) to bind
- to the specified {\bf IP-Address}, which is either a domain name or an
- IP address specified as a dotted quadruple. If this directive is not
- specified, the Storage daemon will bind to any available address (the
- default).
-
-\end{description}
-
-The following is a typical Storage daemon Storage definition.
-
-\footnotesize
-\begin{verbatim}
-#
-# "Global" Storage daemon configuration specifications appear
-# under the Storage resource.
-#
-Storage {
- Name = "Storage daemon"
- Address = localhost
- WorkingDirectory = "~/bacula/working"
- Pid Directory = "~/bacula/working"
-}
-\end{verbatim}
-\normalsize
-
-\section{Director Resource}
-\label{DirectorResource1}
-\index[general]{Director Resource}
-\index[general]{Resource!Director}
-
-The Director resource specifies the Name of the Director which is permitted
-to use the services of the Storage daemon. There may be multiple Director
-resources. The Director Name and Password must match the corresponding
-values in the Director's configuration file.
-
-\begin{description}
-
-\item [Name = \lt{}Director-Name\gt{}]
- \index[sd]{Name}
- \index[sd]{Directive!Name}
- Specifies the Name of the Director allowed to connect to the Storage daemon.
- This directive is required.
-
-\item [Password = \lt{}Director-password\gt{}]
- \index[sd]{Password}
- \index[sd]{Directive!Password}
- Specifies the password that must be supplied by the above named Director.
- This directive is required.
-
-\item [Monitor = \lt{}yes|no\gt{}]
- \index[sd]{Monitor}
- \index[sd]{Directive!Monitor}
- If Monitor is set to {\bf no} (default), this director will have full
- access to this Storage daemon. If Monitor is set to {\bf yes}, this
- director will only be able to fetch the current status of this Storage
- daemon.
-
- Please note that if this director is being used by a Monitor, we highly
- recommend to set this directive to {\bf yes} to avoid serious security
- problems.
-
-\end{description}
-
-The following is an example of a valid Director resource definition:
-
-\footnotesize
-\begin{verbatim}
-Director {
- Name = MainDirector
- Password = my_secret_password
-}
-\end{verbatim}
-\normalsize
-
-\label{DeviceResource}
-\section{Device Resource}
-\index[general]{Resource!Device}
-\index[general]{Device Resource}
-
-The Device Resource specifies the details of each device (normally a tape
-drive) that can be used by the Storage daemon. There may be multiple
-Device resources for a single Storage daemon. In general, the properties
-specified within the Device resource are specific to the Device.
-
-\begin{description}
-
-\item [Name = {\it Device-Name}]
- \index[sd]{Name}
- \index[sd]{Directive!Name}
- Specifies the Name that the Director will use when asking to backup or
- restore to or from to this device. This is the logical Device name, and may
- be any string up to 127 characters in length. It is generally a good idea to
- make it correspond to the English name of the backup device. The physical
- name of the device is specified on the {\bf Archive Device} directive
- described below. The name you specify here is also used in your Director's
- conf file on the
- \ilink{Device directive}{StorageResource2} in its Storage
- resource.
-
-\item [Archive Device = {\it name-string}]
- \index[sd]{Archive Device}
- \index[sd]{Directive!Archive Device}
- The specified {\bf name-string} gives the system file name of the storage
- device managed by this storage daemon. This will usually be the device file
- name of a removable storage device (tape drive), for example "{\bf
- /dev/nst0}" or "{\bf /dev/rmt/0mbn}". For a DVD-writer, it will be for
- example {\bf /dev/hdc}. It may also be a directory name if you are archiving
- to disk storage. In this case, you must supply the full absolute path to the
- directory. When specifying a tape device, it is preferable that the
- "non-rewind" variant of the device file name be given. In addition, on
- systems such as Sun, which have multiple tape access methods, you must be
- sure to specify to use Berkeley I/O conventions with the device. The {\bf b}
- in the Solaris (Sun) archive specification {\bf /dev/rmt/0mbn} is what is
- needed in this case. Bacula does not support SysV tape drive behavior.
-
- As noted above, normally the Archive Device is the name of a tape drive, but
- you may also specify an absolute path to an existing directory. If the Device
- is a directory Bacula will write to file storage in the specified directory,
- and the filename used will be the Volume name as specified in the Catalog.
- If you want to write into more than one directory (i.e. to spread the load to
- different disk drives), you will need to define two Device resources, each
- containing an Archive Device with a different directory.
- \label{SetupFifo}
- In addition to a tape device name or a directory name, Bacula will accept the
- name of a FIFO. A FIFO is a special kind of file that connects two programs
- via kernel memory. If a FIFO device is specified for a backup operation, you
- must have a program that reads what Bacula writes into the FIFO. When the
- Storage daemon starts the job, it will wait for {\bf MaximumOpenWait} seconds
- for the read program to start reading, and then time it out and terminate
- the job. As a consequence, it is best to start the read program at the
- beginning of the job perhaps with the {\bf RunBeforeJob} directive. For this
- kind of device, you never want to specify {\bf AlwaysOpen}, because you want
- the Storage daemon to open it only when a job starts, so you must explicitly
- set it to {\bf No}. Since a FIFO is a one way device, Bacula will not attempt
- to read a label of a FIFO device, but will simply write on it. To create a
- FIFO Volume in the catalog, use the {\bf add} command rather than the {\bf
- label} command to avoid attempting to write a label.
-
-\footnotesize
-\begin{verbatim}
-Device {
- Name = FifoStorage
- Media Type = Fifo
- Device Type = Fifo
- Archive Device = /tmp/fifo
- LabelMedia = yes
- Random Access = no
- AutomaticMount = no
- RemovableMedia = no
- MaximumOpenWait = 60
- AlwaysOpen = no
-}
-\end{verbatim}
-\normalsize
-
- During a restore operation, if the Archive Device is a FIFO, Bacula will
- attempt to read from the FIFO, so you must have an external program that
- writes into the FIFO. Bacula will wait {\bf MaximumOpenWait} seconds for the
- program to begin writing and will then time it out and terminate the job. As
- noted above, you may use the {\bf RunBeforeJob} to start the writer program
- at the beginning of the job.
-
- The Archive Device directive is required.
-
-\item [Device Type = {\it type-specification}]
- \index[sd]{Device Type}
- \index[sd]{Directive!Device Type}
- The Device Type specification allows you to explicitly tell Bacula
- what kind of device you are defining. It the {\it type-specification}
- may be one of the following:
- \begin{description}
- \item [File]
- Tells Bacula that the device is a file. It may either be a
- file defined on fixed medium or a removable filesystem such as
- USB. All files must be random access devices.
- \item [Tape]
- The device is a tape device and thus is sequential access. Tape devices
- are controlled using ioctl() calls.
- \item [Fifo]
- The device is a first-in-first out sequential access read-only
- or write-only device.
- \item [DVD]
- The device is a DVD. DVDs are sequential access for writing, but
- random access for reading.
- \end{description}
-
- The Device Type directive is not required, and if not specified, Bacula
- will attempt to guess what kind of device has been specified using the
- Archive Device specification supplied. There are several advantages to
- explicitly specifying the Device Type. First, on some systems, block and
- character devices have the same type, which means that on those systems,
- Bacula is unlikely to be able to correctly guess that a device is a DVD.
- Secondly, if you explicitly specify the Device Type, the mount point
- need not be defined until the device is opened. This is the case with
- most removable devices such as USB that are mounted by the HAL daemon.
- If the Device Type is not explicitly specified, then the mount point
- must exist when the Storage daemon starts.
-
- This directive was implemented in Bacula version 1.38.6.
-
-
-\item [Media Type = {\it name-string}]
- \index[sd]{Media Type}
- \index[sd]{Directive!Media Type}
- The specified {\bf name-string} names the type of media supported by this
- device, for example, "DLT7000". Media type names are arbitrary in that you
- set them to anything you want, but they must be known to the volume
- database to keep track of which storage daemons can read which volumes. In
- general, each different storage type should have a unique Media Type
- associated with it. The same {\bf name-string} must appear in the
- appropriate Storage resource definition in the Director's configuration
- file.
-
- Even though the names you assign are arbitrary (i.e. you choose the name
- you want), you should take care in specifying them because the Media Type
- is used to determine which storage device Bacula will select during
- restore. Thus you should probably use the same Media Type specification
- for all drives where the Media can be freely interchanged. This is not
- generally an issue if you have a single Storage daemon, but it is with
- multiple Storage daemons, especially if they have incompatible media.
-
- For example, if you specify a Media Type of "DDS-4" then during the
- restore, Bacula will be able to choose any Storage Daemon that handles
- "DDS-4". If you have an autochanger, you might want to name the Media Type
- in a way that is unique to the autochanger, unless you wish to possibly use
- the Volumes in other drives. You should also ensure to have unique Media
- Type names if the Media is not compatible between drives. This
- specification is required for all devices.
-
- In addition, if you are using disk storage, each Device resource will
- generally have a different mount point or directory. In order for
- Bacula to select the correct Device resource, each one must have a
- unique Media Type.
-
-\label{Autochanger}
-\item [Autochanger = {\it Yes|No}]
- \index[sd]{Autochanger}
- \index[sd]{Directive!Autochanger}
- If {\bf Yes}, this device belongs to an automatic tape changer, and you
- must specify an {\bf Autochanger} resource that points to the {\bf
- Device} resources. You must also specify a
- {\bf Changer Device}. If the Autochanger directive is set to {\bf
- No} (default), the volume must be manually changed. You should also
- have an identical directive to the
- \ilink{Storage resource}{Autochanger1} in the Director's
- configuration file so that when labeling tapes you are prompted for the slot.
-
-\item [Changer Device = {\it name-string}]
- \index[sd]{Changer Device}
- \index[sd]{Directive!Changer Device}
- The specified {\bf name-string} must be the {\bf generic SCSI} device
- name of the autochanger that corresponds to the normal read/write
- {\bf Archive Device} specified in the Device resource. This
- generic SCSI device name should be specified if you have an autochanger
- or if you have a standard tape drive and want to use the
- {\bf Alert Command} (see below). For example, on Linux systems, for
- an Archive Device name of {\bf /dev/nst0}, you would specify {\bf
- /dev/sg0} for the Changer Device name. Depending on your exact
- configuration, and the number of autochangers or the type of
- autochanger, what you specify here can vary. This directive is
- optional. See the \ilink{ Using Autochangers}{AutochangersChapter} chapter
- of this manual for more details of using this and the following
- autochanger directives.
-
-\item [Changer Command = {\it name-string}]
- \index[sd]{Changer Command}
- \index[sd]{Directive!Changer Command}
- The {\bf name-string} specifies an external program to be called that will
- automatically change volumes as required by {\bf Bacula}. Normally,
- this directive will be specified only in the {\bf AutoChanger} resource,
- which is then used for all devices. However, you may also specify
- the different {\bf Changer Command} in each Device resource.
- Most frequently,
- you will specify the Bacula supplied {\bf mtx-changer} script as follows:
-
-\footnotesize
-\begin{verbatim}
-Changer Command = "/path/mtx-changer %c %o %S %a %d"
-\end{verbatim}
-\normalsize
-
- and you will install the {\bf mtx} on your system (found in the {\bf depkgs}
- release). An example of this command is in the default bacula-sd.conf file.
- For more details on the substitution characters that may be specified to
- configure your autochanger please see the
- \ilink{Autochangers}{AutochangersChapter} chapter of this manual.
- For FreeBSD users, you might want to see one of the several {\bf chio}
- scripts in {\bf examples/autochangers}.
-
-\item [Alert Command = {\it name-string}]
- \index[sd]{Alert Command}
- The {\bf name-string} specifies an external program to be called at the
- completion of each Job after the device is released. The purpose of this
- command is to check for Tape Alerts, which are present when something is
- wrong with your tape drive (at least for most modern tape drives). The same
- substitution characters that may be specified in the Changer Command may also
- be used in this string. For more information, please see the
- \ilink{Autochangers}{AutochangersChapter} chapter of this manual.
-
-
- Note, it is not necessary to have an autochanger to use this command. The
- example below uses the {\bf tapeinfo} program that comes with the {\bf mtx}
- package, but it can be used on any tape drive. However, you will need to
- specify a {\bf Changer Device} directive in your Device resource (see above)
- so that the generic SCSI device name can be edited into the command (with the
- \%c).
-
- An example of the use of this command to print Tape Alerts in the Job report
- is:
-
-\footnotesize
-\begin{verbatim}
-Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
-
-\end{verbatim}
-\normalsize
-
-and an example output when there is a problem could be:
-
-\footnotesize
-\begin{verbatim}
-bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface
- between tape drive and initiator.
-
-\end{verbatim}
-\normalsize
-
-\item [Drive Index = {\it number}]
- \index[sd]{Drive Index}
- \index[sd]{Directive!Drive Index}
- The {\bf Drive Index} that you specify is passed to the {\bf
- mtx-changer} script and is thus passed to the {\bf mtx} program. By
- default, the Drive Index is zero, so if you have only one drive in your
- autochanger, everything will work normally. However, if you have
- multiple drives, you must specify multiple Bacula Device resources (one
- for each drive). The first Device should have the Drive Index set to 0,
- and the second Device Resource should contain a Drive Index set to 1,
- and so on. This will then permit you to use two or more drives in your
- autochanger. As of Bacula version 1.38.0, using the {\bf Autochanger}
- resource, Bacula will automatically ensure that only one drive at a time
- uses the autochanger script, so you no longer need locking scripts as in
- the past -- the default mtx-changer script works for any number of
- drives.
-
-\item [Autoselect = {\it Yes|No}]
- \index[sd]{Autoselect}
- \index[sd]{Directive!Autoselect}
- If this directive is set to {\bf yes} (default), and the Device
- belongs to an autochanger, then when the Autochanger is referenced
- by the Director, this device can automatically be selected. If this
- directive is set to {\bf no}, then the Device can only be referenced
- by directly using the Device name in the Director. This is useful
- for reserving a drive for something special such as a high priority
- backup or restore operations.
-
-\item [Maximum Changer Wait = {\it time}]
- \index[sd]{Maximum Changer Wait}
- \index[sd]{Directive!Maximum Changer Wait}
- This directive specifies the maximum time in seconds for Bacula to wait
- for an autochanger to change the volume. If this time is exceeded,
- Bacula will invalidate the Volume slot number stored in the catalog and
- try again. If no additional changer volumes exist, Bacula will ask the
- operator to intervene. The default is 5 minutes.
-% TODO: if this is the format, then maybe "5 minutes" should be in
-% TODO: quotes? define style. see others.
-
-\item [Maximum Rewind Wait = {\it time}]
- \index[sd]{Maximum Rewind Wait}
- \index[sd]{Directive!Maximum Rewind Wait}
- This directive specifies the maximum time in seconds for Bacula to wait
- for a rewind before timing out. If this time is exceeded,
- Bacula will cancel the job. The default is 5 minutes.
-
-\item [Maximum Open Wait = {\it time}]
- \index[sd]{Maximum Open Wait}
- \index[sd]{Directive!Maximum Open Wait}
- This directive specifies the maximum time in seconds for Bacula to wait
- for a open before timing out. If this time is exceeded,
- Bacula will cancel the job. The default is 5 minutes.
-
-\item [Always Open = {\it Yes|No}]
- \index[sd]{Always Open}
- \index[sd]{Directive!Always Open}
- If {\bf Yes} (default), Bacula will always keep the device open unless
- specifically {\bf unmounted} by the Console program. This permits
- Bacula to ensure that the tape drive is always available, and properly
- positioned. If you set
- {\bf AlwaysOpen} to {\bf no} {\bf Bacula} will only open the drive when
- necessary, and at the end of the Job if no other Jobs are using the
- drive, it will be freed. The next time Bacula wants to append to a tape
- on a drive that was freed, Bacula will rewind the tape and position it to
- the end. To avoid unnecessary tape positioning and to minimize
- unnecessary operator intervention, it is highly recommended that {\bf
- Always Open = yes}. This also ensures that the drive is available when
- Bacula needs it.
-
- If you have {\bf Always Open = yes} (recommended) and you want to use the
- drive for something else, simply use the {\bf unmount} command in the Console
- program to release the drive. However, don't forget to remount the drive with
- {\bf mount} when the drive is available or the next Bacula job will block.
-
- For File storage, this directive is ignored. For a FIFO storage device, you
- must set this to {\bf No}.
-
- Please note that if you set this directive to {\bf No} Bacula will release
- the tape drive between each job, and thus the next job will rewind the tape
- and position it to the end of the data. This can be a very time consuming
- operation. In addition, with this directive set to no, certain multiple
- drive autochanger operations will fail. We strongly recommend to keep
- {\bf Always Open} set to {\bf Yes}
-
-\item [Volume Poll Interval = {\it time}]
- \index[sd]{Volume Poll Interval}
- \index[sd]{Directive!Volume Poll Interval}
- If the time specified on this directive is non-zero, after asking the
- operator to mount a new volume Bacula will periodically poll (or read) the
- drive at the specified interval to see if a new volume has been mounted. If
- the time interval is zero (the default), no polling will occur. This
- directive can be useful if you want to avoid operator intervention via the
- console. Instead, the operator can simply remove the old volume and insert
- the requested one, and Bacula on the next poll will recognize the new tape
- and continue. Please be aware that if you set this interval too small, you
- may excessively wear your tape drive if the old tape remains in the drive,
- since Bacula will read it on each poll. This can be avoided by ejecting the
- tape using the {\bf Offline On Unmount} and the {\bf Close on Poll}
- directives.
- However, if you are using a Linux 2.6 kernel or other OSes
- such as FreeBSD or Solaris, the Offline On Unmount will leave the drive
- with no tape, and Bacula will not be able to properly open the drive and
- may fail the job. For more information on this problem, please see the
- \ilink{description of Offline On Unmount}{NoTapeInDrive} in the Tape
- Testing chapter.
-
-\item [Close on Poll= {\it Yes|No}]
- \index[sd]{Close on Poll}
- \index[sd]{Directive!Close on Poll}
- If {\bf Yes}, Bacula close the device (equivalent to an unmount except no
- mount is required) and reopen it at each poll. Normally this is not too
- useful unless you have the {\bf Offline on Unmount} directive set, in which
- case the drive will be taken offline preventing wear on the tape during any
- future polling. Once the operator inserts a new tape, Bacula will recognize
- the drive on the next poll and automatically continue with the backup.
- Please see above more more details.
-
-\item [Maximum Open Wait = {\it time}]
- \index[sd]{Maximum Open Wait}
- \index[sd]{Directive!Maximum Open Wait}
- This directive specifies the maximum amount of time in seconds that
- Bacula will wait for a device that is busy. The default is 5 minutes.
- If the device cannot be obtained, the current Job will be terminated in
- error. Bacula will re-attempt to open the drive the next time a Job
- starts that needs the the drive.
-
-\label{removablemedia}
-\item [Removable media = {\it Yes|No}]
- \index[sd]{Removable media}
- \index[sd]{Directive!Removable media}
- If {\bf Yes}, this device supports removable media (for example, tapes
- or CDs). If {\bf No}, media cannot be removed (for example, an
- intermediate backup area on a hard disk). If {\bf Removable media} is
- enabled on a File device (as opposed to a tape) the Storage daemon will
- assume that device may be something like a USB device that can be
- removed or a simply a removable harddisk. When attempting to open
- such a device, if the Volume is not found (for File devices, the Volume
- name is the same as the Filename), then the Storage daemon will search
- the entire device looking for likely Volume names, and for each one
- found, it will ask the Director if the Volume can be used. If so,
- the Storage daemon will use the first such Volume found. Thus it
- acts somewhat like a tape drive -- if the correct Volume is not found,
- it looks at what actually is found, and if it is an appendable Volume,
- it will use it.
-
- If the removable medium is not automatically mounted (e.g. udev), then
- you might consider using additional Storage daemon device directives
- such as {\bf Requires Mount}, {\bf Mount Point}, {\bf Mount Command},
- and {\bf Unmount Command}, all of which can be used in conjunction with
- {\bf Removable Media}.
-
-
-\item [Random access = {\it Yes|No}]
- \index[sd]{Random access}
- \index[sd]{Directive!Random access}
- If {\bf Yes}, the archive device is assumed to be a random access medium
- which supports the {\bf lseek} (or {\bf lseek64} if Largefile is enabled
- during configuration) facility. This should be set to {\bf Yes} for all
- file systems such as DVD, USB, and fixed files. It should be set to
- {\bf No} for non-random access devices such as tapes and named pipes.
-
-
-\item [Requires Mount = {\it Yes|No}]
- \index[sd]{Requires Mount }
- When this directive is enabled, the Storage daemon will submit
- a {\bf Mount Command} before attempting to open the device.
- You must set this directive to {\bf yes} for DVD-writers and removable
- file systems such as USB devices that are not automatically mounted
- by the operating system when plugged in or opened by Bacula.
- It should be set to {\bf no} for
- all other devices such as tapes and fixed filesystems. It should also
- be set to {\bf no} for any removable device that is automatically
- mounted by the operating system when opened (e.g. USB devices mounted
- by udev or hotplug). This directive
- indicates if the device requires to be mounted using the {\bf Mount
- Command}. To be able to write a DVD, the following directives must also
- be defined: {\bf Mount Point}, {\bf Mount Command}, {\bf Unmount
- Command} and {\bf Write Part Command}.
-
-\item [Mount Point = {\it directory}]
- \index[sd]{Mount Point}
- Directory where the device can be mounted.
- This directive is used only
- for devices that have {\bf Requires Mount} enabled such as DVD or
- USB file devices.
-
-\item [Mount Command = {\it name-string}]
- \index[sd]{Mount Command}
- This directive specifies the command that must be executed to mount
- devices such as DVDs and many USB devices. For DVDs, the
- device is written directly, but the mount command is necessary in
- order to determine the free space left on the DVD. Before the command is
- executed, \%a is replaced with the Archive Device, and \%m with the Mount
- Point.
-
- Most frequently, for a DVD, you will define it as follows:
-
-\footnotesize
-\begin{verbatim}
- Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
-\end{verbatim}
-\normalsize
-
-However, if you have defined a mount point in /etc/fstab, you might be
-able to use a mount command such as:
-
-\footnotesize
-\begin{verbatim}
- Mount Command = "/bin/mount /media/dvd"
-\end{verbatim}
-\normalsize
-
-See the \ilink {Edit Codes}{mountcodes} section below for more details of
-the editing codes that can be used in this directive.
-
-
-\item [Unmount Command = {\it name-string}]
- \index[sd]{Unmount Command}
- This directive specifies the command that must be executed to unmount
- devices such as DVDs and many USB devices. Before the command is
- executed, \%a is replaced with the Archive Device, and \%m with the Mount
- Point.
-
- Most frequently, you will define it as follows:
-
-\footnotesize
-\begin{verbatim}
- Unmount Command = "/bin/umount %m"
-\end{verbatim}
-\normalsize
-
-See the \ilink {Edit Codes}{mountcodes} section below for more details of
-the editing codes that can be used in this directive.
-
-
-\item [Minimum block size = {\it size-in-bytes}]
- \index[sd]{Minimum block size}
- \index[sd]{Directive!Minimum block size}
- On most modern tape drives, you will not need or want to specify this
- directive, and if you do so, it will be to make Bacula use fixed block
- sizes. This statement applies only to non-random access devices (e.g.
- tape drives). Blocks written by the storage daemon to a non-random
- archive device will never be smaller than the given {\bf size-in-bytes}.
- The Storage daemon will attempt to efficiently fill blocks with data
- received from active sessions but will, if necessary, add padding to a
- block to achieve the required minimum size.
-
- To force the block size to be fixed, as is the case for some non-random
- access devices (tape drives), set the {\bf Minimum block size} and the
- {\bf Maximum block size} to the same value (zero included). The default
- is that both the minimum and maximum block size are zero and the default
- block size is 64,512 bytes.
-
- For example, suppose you want a fixed block size of 100K bytes, then you
- would specify:
-
-\footnotesize
-\begin{verbatim}
-
- Minimum block size = 100K
- Maximum block size = 100K
-
-\end{verbatim}
-\normalsize
-
- Please note that if you specify a fixed block size as shown above, the tape
- drive must either be in variable block size mode, or if it is in fixed block
- size mode, the block size (generally defined by {\bf mt}) {\bf must} be
- identical to the size specified in Bacula -- otherwise when you attempt to
- re-read your Volumes, you will get an error.
-
- If you want the block size to be variable but with a 64K minimum and 200K
- maximum (and default as well), you would specify:
-
-\footnotesize
-\begin{verbatim}
-
- Minimum block size = 64K
- Maximum blocksize = 200K
-
-\end{verbatim}
-\normalsize
-
-\item [Maximum block size = {\it size-in-bytes}]
- \index[sd]{Maximum block size}
- \index[sd]{Directive!Maximum block size}
- On most modern tape drives, you will not need to specify this directive.
- If you do so, it will most likely be to use fixed block sizes (see
- Minimum block size above). The Storage daemon will always attempt to
- write blocks of the specified {\bf size-in-bytes} to the archive device.
- As a consequence, this statement specifies both the default block size
- and the maximum block size. The size written never exceed the given
- {\bf size-in-bytes}. If adding data to a block would cause it to exceed
- the given maximum size, the block will be written to the archive device,
- and the new data will begin a new block.
-
- If no value is specified or zero is specified, the Storage daemon will
- use a default block size of 64,512 bytes (126 * 512).
-
-\item [Hardware End of Medium = {\it Yes|No}]
- \index[sd]{Hardware End of Medium}
- \index[sd]{Directive!Hardware End of Medium}
- If {\bf No}, the archive device is not required to support end of medium
- ioctl request, and the storage daemon will use the forward space file
- function to find the end of the recorded data. If {\bf Yes}, the archive
- device must support the {\tt ioctl} {\tt MTEOM} call, which will position the
- tape to the end of the recorded data. In addition, your SCSI driver must keep
- track of the file number on the tape and report it back correctly by the
- {\bf MTIOCGET} ioctl. Note, some SCSI drivers will correctly forward space to
- the end of the recorded data, but they do not keep track of the file number.
- On Linux machines, the SCSI driver has a {\bf fast-eod} option, which if set
- will cause the driver to lose track of the file number. You should ensure
- that this option is always turned off using the {\bf mt} program.
-
- Default setting for Hardware End of Medium is {\bf Yes}. This function is
- used before appending to a tape to ensure that no previously written data is
- lost. We recommend if you have a non-standard or unusual tape drive that you
- use the {\bf btape} program to test your drive to see whether or not it
- supports this function. All modern (after 1998) tape drives support this
- feature.
-
-\item [Fast Forward Space File = {\it Yes|No}]
- \index[sd]{Fast Forward Space File}
- \index[sd]{Directive!Fast Forward Space File}
- If {\bf No}, the archive device is not required to support keeping track of
- the file number ({\bf MTIOCGET} ioctl) during forward space file. If {\bf
- Yes}, the archive device must support the {\tt ioctl} {\tt MTFSF} call, which
- virtually all drivers support, but in addition, your SCSI driver must keep
- track of the file number on the tape and report it back correctly by the
- {\bf MTIOCGET} ioctl. Note, some SCSI drivers will correctly forward space,
- but they do not keep track of the file number or more seriously, they do not
- report end of medium.
-
- Default setting for Fast Forward Space File is {\bf Yes}.
-
-\item [Use MTIOCGET = {\it Yes|No}]
- \index[sd]{Use MTIOCGET}
- \index[sd]{Directive!Use MTIOCGET}
- If {\bf No}, the operating system is not required to support keeping track of
- the file number and reporting it in the ({\bf MTIOCGET} ioctl). The default
- is {\bf Yes}. If you must set this to No, Bacula will do the proper file
- position determination, but it is very unfortunate because it means that
- tape movement is very inefficient.
- Fortunately, this operation system deficiency seems to be the case only
- on a few *BSD systems. Operating systems known to work correctly are
- Solaris, Linux and FreeBSD.
-
-\item [BSF at EOM = {\it Yes|No}]
- \index[sd]{BSF at EOM}
- \index[sd]{Directive!BSF at EOM}
- If {\bf No}, the default, no special action is taken by Bacula with the End
- of Medium (end of tape) is reached because the tape will be positioned after
- the last EOF tape mark, and Bacula can append to the tape as desired.
- However, on some systems, such as FreeBSD, when Bacula reads the End of
- Medium (end of tape), the tape will be positioned after the second EOF tape
- mark (two successive EOF marks indicated End of Medium). If Bacula appends
- from that point, all the appended data will be lost. The solution for such
- systems is to specify {\bf BSF at EOM} which causes Bacula to backspace over
- the second EOF mark. Determination of whether or not you need this directive
- is done using the {\bf test} command in the {\bf btape} program.
-
-\item [TWO EOF = {\it Yes|No}]
- \index[sd]{TWO EOF}
- \index[sd]{Directive!TWO EOF}
- If {\bf Yes}, Bacula will write two end of file marks when terminating a tape
--- i.e. after the last job or at the end of the medium. If {\bf No}, the
-default, Bacula will only write one end of file to terminate the tape.
-
-\item [Backward Space Record = {\it Yes|No}]
- \index[sd]{Backward Space Record}
- \index[sd]{Directive!Backward Space Record}
- If {\it Yes}, the archive device supports the {\tt MTBSR ioctl} to backspace
- records. If {\it No}, this call is not used and the device must be rewound
- and advanced forward to the desired position. Default is {\bf Yes} for non
- random-access devices. This function if enabled is used at the end of a
- Volume after writing the end of file and any ANSI/IBM labels to determine whether
- or not the last block was written correctly. If you turn this function off,
- the test will not be done. This causes no harm as the re-read process is
- precautionary rather than required.
-
-\item [Backward Space File = {\it Yes|No}]
- \index[sd]{Backward Space File}
- \index[sd]{Directive!Backward Space File}
- If {\it Yes}, the archive device supports the {\bf MTBSF} and {\bf MTBSF
- ioctl}s to backspace over an end of file mark and to the start of a file. If
- {\it No}, these calls are not used and the device must be rewound and
- advanced forward to the desired position. Default is {\bf Yes} for non
- random-access devices.
-
-\item [Forward Space Record = {\it Yes|No}]
- \index[sd]{Forward Space Record}
- \index[sd]{Directive!Forward Space Record}
- If {\it Yes}, the archive device must support the {\bf MTFSR ioctl} to
- forward space over records. If {\bf No}, data must be read in order to
- advance the position on the device. Default is {\bf Yes} for non
- random-access devices.
-
-\item [Forward Space File = {\it Yes|No}]
- \index[sd]{Forward Space File}
- \index[sd]{Directive!Forward Space File}
- If {\bf Yes}, the archive device must support the {\tt MTFSF ioctl} to
- forward space by file marks. If {\it No}, data must be read to advance the
- position on the device. Default is {\bf Yes} for non random-access devices.
-
-\item [Offline On Unmount = {\it Yes|No}]
- \index[sd]{Offline On Unmount}
- \index[sd]{Directive!Offline On Unmount}
- The default for this directive is {\bf No}. If {\bf Yes} the archive device
- must support the {\tt MTOFFL ioctl} to rewind and take the volume offline. In
- this case, Bacula will issue the offline (eject) request before closing the
- device during the {\bf unmount} command. If {\bf No} Bacula will not attempt
- to offline the device before unmounting it. After an offline is issued, the
- cassette will be ejected thus {\bf requiring operator intervention} to
- continue, and on some systems require an explicit load command to be issued
- ({\bf mt -f /dev/xxx load}) before the system will recognize the tape. If you
- are using an autochanger, some devices require an offline to be issued prior
- to changing the volume. However, most devices do not and may get very
- confused.
-
- If you are using a Linux 2.6 kernel or other OSes
- such as FreeBSD or Solaris, the Offline On Unmount will leave the drive
- with no tape, and Bacula will not be able to properly open the drive and
- may fail the job. For more information on this problem, please see the
- \ilink{description of Offline On Unmount}{NoTapeInDrive} in the Tape
- Testing chapter.
-
-
-\item [Maximum Volume Size = {\it size}]
- \index[sd]{Maximum Volume Size}
- \index[sd]{Directive!Maximum Volume Size}
- No more than {\bf size} bytes will be written onto a given volume on the
- archive device. This directive is used mainly in testing Bacula to
- simulate a small Volume. It can also be useful if you wish to limit the
- size of a File Volume to say less than 2GB of data. In some rare cases
- of really antiquated tape drives that do not properly indicate when the
- end of a tape is reached during writing (though I have read about such
- drives, I have never personally encountered one). Please note, this
- directive is deprecated (being phased out) in favor of the {\bf Maximum
- Volume Bytes} defined in the Director's configuration file.
-
-\item [Maximum File Size = {\it size}]
- \index[sd]{Maximum File Size}
- \index[sd]{Directive!Maximum File Size}
- No more than {\bf size} bytes will be written into a given logical file
- on the volume. Once this size is reached, an end of file mark is
- written on the volume and subsequent data are written into the next
- file. Breaking long sequences of data blocks with file marks permits
- quicker positioning to the start of a given stream of data and can
- improve recovery from read errors on the volume. The default is one
- Gigabyte. This directive creates EOF marks only on tape media.
- However, regardless of the medium type (tape, disk, DVD, ...) each time
- a the Maximum File Size is exceeded, a record is put into the catalog
- database that permits seeking to that position on the medium for
- restore operations. If you set this to a small value (e.g. 1MB),
- you will generate lots of database records (JobMedia) and may
- significantly increase CPU/disk overhead.
-
- Note, this directive does not limit the size of Volumes that Bacula
- will create regardless of whether they are tape or disk volumes. It
- changes only the number of EOF marks on a tape and the number of
- block positioning records (see below) that are generated. If you
- want to limit the size of all Volumes for a particular device, use
- the {\bf Maximum Volume Size} directive (above), or use the
- {\bf Maximum Volume Bytes} directive in the Director's Pool resource,
- which does the same thing but on a Pool (Volume) basis.
-
-\item [Block Positioning = {\it yes|no}]
- \index[sd]{Block Positioning}
- \index[sd]{Directive!Block Positioning}
- This directive tells Bacula not to use block positioning when doing restores.
- Turning this directive off can cause Bacula to be {\bf extremely} slow
- when restoring files. You might use this directive if you wrote your
- tapes with Bacula in variable block mode (the default), but your drive
- was in fixed block mode. The default is {\bf yes}.
-
-\item [Maximum Network Buffer Size = {\it bytes}]
- \index[sd]{Maximum Network Buffer Size}
- \index[sd]{Directive!Maximum Network Buffer Size}
- where {\it bytes} specifies the initial network buffer size to use with the
- File daemon. This size will be adjusted down if it is too large until
- it is accepted by the OS. Please use care in setting this value since if
- it is too large, it will be trimmed by 512 bytes until the OS is happy,
- which may require a large number of system calls. The default value is
- 32,768 bytes.
-
- The default size was chosen to be relatively large but not too big in
- the case that you are transmitting data over Internet. It is clear that
- on a high speed local network, you can increase this number and improve
- performance. For example, some users have found that if you use a value
- of 65,536 bytes they get five to ten times the throughput. Larger values for
- most users don't seem to improve performance. If you are interested
- in improving your backup speeds, this is definitely a place to
- experiment. You will probably also want to make the corresponding change
- in each of your File daemons conf files.
-
-
-\item [Maximum Spool Size = {\it bytes}]
- \index[sd]{Maximum Spool Size}
- \index[sd]{Directive!Maximum Spool Size}
- where the bytes specify the maximum spool size for all jobs that are running.
- The default is no limit.
-
-\item [Maximum Job Spool Size = {\it bytes}]
- \index[sd]{Maximum Job Spool Size}
- \index[sd]{Directive!Maximum Job Spool Size}
- where the bytes specify the maximum spool size for any one job that is
- running. The default is no limit.
- This directive is implemented only in version 1.37 and later.
-
-\item [Spool Directory = {\it directory}]
- \index[sd]{Spool Directory}
- \index[sd]{Directive!Spool Directory}
- specifies the name of the directory to be used to store the spool files for
- this device. This directory is also used to store temporary part files when
- writing to a device that requires mount (DVD). The default is to use the
- working directory.
-
-\item [Maximum Part Size = {\it bytes}]
- \index[sd]{Maximum Part Size}
- \index[sd]{Directive!Maximum Part Size}
- This is the maximum size of a volume part file. The default is no limit.
- This directive is implemented only in version 1.37 and later.
-
- If the device requires mount, it is transferred to the device when this size
- is reached. In this case, you must take care to have enough disk space left
- in the spool directory.
-
- Otherwise, it is left on the hard disk.
-
- It is ignored for tape and FIFO devices.
-
-
-\end{description}
-
-\label{mountcodes}
-\section{Edit Codes for Mount and Unmount Directives}
-\index[general]{Directives!Edit Codes}
-\index[general]{Edit Codes for Mount and Unmount Directives }
-
-Before submitting the {\bf Mount Command}, {\bf Unmount Command},
-{\bf Write Part Command}, or {\bf Free Space Command} directives
-to the operating system, Bacula performs character substitution of the
-following characters:
-
-\footnotesize
-\begin{verbatim}
- %% = %
- %a = Archive device name
- %e = erase (set if cannot mount and first part)
- %n = part number
- %m = mount point
- %v = last part name (i.e. filename)
-\end{verbatim}
-\normalsize
-
-
-\section{Devices that require a mount (DVD)}
-\index[general]{Devices that require a mount (DVD)}
-\index[general]{DVD!Devices that require a mount}
-
-All the directives in this section are implemented only in
-Bacula version 1.37 and later and hence are available in version 1.38.6.
-
-As of version 1.39.5, the directives
-"Requires Mount", "Mount Point", "Mount Command", and "Unmount Command"
-apply to removable filesystems such as USB in addition to DVD.
-
-\begin{description}
-
-\item [Requires Mount = {\it Yes|No}]
- \index[sd]{Requires Mount}
- \index[sd]{Directive!Requires Mount}
- You must set this directive to {\bf yes} for DVD-writers, and to {\bf no} for
- all other devices (tapes/files). This directive indicates if the device
- requires to be mounted to be read, and if it must be written in a special way.
- If it set, {\bf Mount Point}, {\bf Mount Command}, {\bf Unmount Command} and
- {\bf Write Part Command} directives must also be defined.
-
-\item [Mount Point = {\it directory}]
- \index[sd]{Mount Point}
- \index[sd]{Directive!Mount Point}
- Directory where the device can be mounted.
-
-\item [Mount Command = {\it name-string}]
- \index[sd]{Mount Command}
- \index[sd]{Directive!Mount Command}
- Command that must be executed to mount the device. Before the command is
- executed, \%a is replaced with the Archive Device, and \%m with the Mount
- Point.
-
- Most frequently, you will define it as follows:
-
-\footnotesize
-\begin{verbatim}
- Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
-\end{verbatim}
-\normalsize
-
-\item [Unmount Command = {\it name-string}]
- \index[sd]{Unmount Command}
- \index[sd]{Directive!Unmount Command}
- Command that must be executed to unmount the device. Before the command is
- executed, \%a is replaced with the Archive Device, and \%m with the Mount
- Point.
-
- Most frequently, you will define it as follows:
-
-\footnotesize
-\begin{verbatim}
- Unmount Command = "/bin/umount %m"
-\end{verbatim}
-\normalsize
-
-\item [Write Part Command = {\it name-string}]
- \index[sd]{Write Part Command}
- \index[sd]{Directive!Write Part Command}
- Command that must be executed to write a part to the device. Before the
- command is executed, \%a is replaced with the Archive Device, \%m with the
- Mount Point, \%e is replaced with 1 if we are writing the first part,
- and with 0 otherwise, and \%v with the current part filename.
-
- For a DVD, you will most frequently specify the Bacula supplied {\bf
- dvd-handler} script as follows:
-
-\footnotesize
-\begin{verbatim}
- Write Part Command = "/path/dvd-handler %a write %e %v"
-\end{verbatim}
-\normalsize
-
- Where {\bf /path} is the path to your scripts install directory, and
- dvd-handler is the Bacula supplied script file.
- This command will already be present, but commented out,
- in the default bacula-sd.conf file. To use it, simply remove
- the comment (\#) symbol.
-
-
-\item [Free Space Command = {\it name-string}]
- \index[sd]{Free Space Command}
- \index[sd]{Directive!Free Space Command}
- Command that must be executed to check how much free space is left on the
- device. Before the command is executed,\%a is replaced with the Archive
- Device, \%m with the Mount Point, \%e is replaced with 1 if we are writing
- the first part, and with 0 otherwise, and \%v with the current part filename.
-
- For a DVD, you will most frequently specify the Bacula supplied {\bf
- dvd-handler} script as follows:
-
-\footnotesize
-\begin{verbatim}
- Free Space Command = "/path/dvd-handler %a free"
-\end{verbatim}
-\normalsize
-
- Where {\bf /path} is the path to your scripts install directory, and
- dvd-handler is the Bacula supplied script file.
- If you want to specify your own command, please look at the code of
- dvd-handler to see what output Bacula expects from this command.
- This command will already be present, but commented out,
- in the default bacula-sd.conf file. To use it, simply remove
- the comment (\#) symbol.
-
- If you do not set it, Bacula will expect there is always free space on the
- device.
-
-\end{description}
-
-%% This pulls in the Autochanger resource from another file.
-\label{AutochangerRes}
-\label{AutochangerResource1}
-\input{autochangerres}
-
-
-
-
-\section{Capabilities}
-\index[general]{Capabilities}
-
-\begin{description}
-
-\item [Label media = {\it Yes|No}]
- \index[sd]{Label media}
- \index[sd]{Directive!Label media}
- If {\bf Yes}, permits this device to automatically label blank media
- without an explicit operator command. It does so by using an internal
- algorithm as defined on the \ilink{Label Format}{Label} record in each
- Pool resource. If this is {\bf No} as by default, Bacula will label
- tapes only by specific operator command ({\bf label} in the Console) or
- when the tape has been recycled. The automatic labeling feature is most
- useful when writing to disk rather than tape volumes.
-
-\item [Automatic mount = {\it Yes|No}]
- \index[sd]{Automatic mount}
- \index[sd]{Directive!Automatic mount}
- If {\bf Yes} (the default), permits the daemon to examine the device to
- determine if it contains a Bacula labeled volume. This is done
- initially when the daemon is started, and then at the beginning of each
- job. This directive is particularly important if you have set
- {\bf Always Open = no} because it permits Bacula to attempt to read the
- device before asking the system operator to mount a tape. However,
- please note that the tape must be mounted before the job begins.
-
-\end{description}
-
-\section{Messages Resource}
-\label{MessagesResource1}
-\index[general]{Resource!Messages}
-\index[general]{Messages Resource}
-
-For a description of the Messages Resource, please see the
-\ilink{Messages Resource}{MessagesChapter} Chapter of this
-manual.
-
-\section{Sample Storage Daemon Configuration File}
-\label{SampleConfiguration}
-\index[general]{File!Sample Storage Daemon Configuration}
-\index[general]{Sample Storage Daemon Configuration File}
-
-A example Storage Daemon configuration file might be the following:
-
-\footnotesize
-\begin{verbatim}
-#
-# Default Bacula Storage Daemon Configuration file
-#
-# For Bacula release 1.37.2 (07 July 2005) -- gentoo 1.4.16
-#
-# You may need to change the name of your tape drive
-# on the "Archive Device" directive in the Device
-# resource. If you change the Name and/or the
-# "Media Type" in the Device resource, please ensure
-# that bacula-dir.conf has corresponding changes.
-#
-Storage { # definition of myself
- Name = rufus-sd
- Address = rufus
- WorkingDirectory = "$HOME/bacula/bin/working"
- Pid Directory = "$HOME/bacula/bin/working"
- Maximum Concurrent Jobs = 20
-}
-#
-# List Directors who are permitted to contact Storage daemon
-#
-Director {
- Name = rufus-dir
- Password = "ZF9Ctf5PQoWCPkmR3s4atCB0usUPg+vWWyIo2VS5ti6k"
-}
-#
-# Restricted Director, used by tray-monitor to get the
-# status of the storage daemon
-#
-Director {
- Name = rufus-mon
- Password = "9usxgc307dMbe7jbD16v0PXlhD64UVasIDD0DH2WAujcDsc6"
- Monitor = yes
-}
-#
-# Devices supported by this Storage daemon
-# To connect, the Director's bacula-dir.conf must have the
-# same Name and MediaType.
-#
-Autochanger {
- Name = Autochanger
- Device = Drive-1
- Device = Drive-2
- Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a %d"
- Changer Device = /dev/sg0
-}
-
-Device {
- Name = Drive-1 #
- Drive Index = 0
- Media Type = DLT-8000
- Archive Device = /dev/nst0
- AutomaticMount = yes; # when device opened, read it
- AlwaysOpen = yes;
- RemovableMedia = yes;
- RandomAccess = no;
- AutoChanger = yes
- Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
-}
-
-Device {
- Name = Drive-2 #
- Drive Index = 1
- Media Type = DLT-8000
- Archive Device = /dev/nst1
- AutomaticMount = yes; # when device opened, read it
- AlwaysOpen = yes;
- RemovableMedia = yes;
- RandomAccess = no;
- AutoChanger = yes
- Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
-}
-
-Device {
- Name = "HP DLT 80"
- Media Type = DLT8000
- Archive Device = /dev/nst0
- AutomaticMount = yes; # when device opened, read it
- AlwaysOpen = yes;
- RemovableMedia = yes;
-}
-#Device {
-# Name = SDT-7000 #
-# Media Type = DDS-2
-# Archive Device = /dev/nst0
-# AutomaticMount = yes; # when device opened, read it
-# AlwaysOpen = yes;
-# RemovableMedia = yes;
-#}
-#Device {
-# Name = Floppy
-# Media Type = Floppy
-# Archive Device = /mnt/floppy
-# RemovableMedia = yes;
-# Random Access = Yes;
-# AutomaticMount = yes; # when device opened, read it
-# AlwaysOpen = no;
-#}
-#Device {
-# Name = FileStorage
-# Media Type = File
-# Archive Device = /tmp
-# LabelMedia = yes; # lets Bacula label unlabeled media
-# Random Access = Yes;
-# AutomaticMount = yes; # when device opened, read it
-# RemovableMedia = no;
-# AlwaysOpen = no;
-#}
-#Device {
-# Name = "NEC ND-1300A"
-# Media Type = DVD
-# Archive Device = /dev/hda
-# LabelMedia = yes; # lets Bacula label unlabeled media
-# Random Access = Yes;
-# AutomaticMount = yes; # when device opened, read it
-# RemovableMedia = yes;
-# AlwaysOpen = no;
-# MaximumPartSize = 800M;
-# RequiresMount = yes;
-# MountPoint = /mnt/cdrom;
-# MountCommand = "/bin/mount -t iso9660 -o ro %a %m";
-# UnmountCommand = "/bin/umount %m";
-# SpoolDirectory = /tmp/backup;
-# WritePartCommand = "/etc/bacula/dvd-handler %a write %e %v"
-# FreeSpaceCommand = "/etc/bacula/dvd-handler %a free"
-#}
-#
-# A very old Exabyte with no end of media detection
-#
-#Device {
-# Name = "Exabyte 8mm"
-# Media Type = "8mm"
-# Archive Device = /dev/nst0
-# Hardware end of medium = No;
-# AutomaticMount = yes; # when device opened, read it
-# AlwaysOpen = Yes;
-# RemovableMedia = yes;
-#}
-#
-# Send all messages to the Director,
-# mount messages also are sent to the email address
-#
-Messages {
- Name = Standard
- director = rufus-dir = all
- operator = root = mount
-}
-\end{verbatim}
-\normalsize