]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/main/storedconf.tex
Add marker for bweb documentation
[bacula/docs] / docs / manuals / en / main / storedconf.tex
1 %%
2 %%
3
4 \chapter{Storage Daemon Configuration}
5 \label{StoredConfChapter}
6 \index[general]{Storage Daemon Configuration}
7 \index[general]{Configuration!Storage Daemon}
8
9 The Storage Daemon configuration file has relatively few resource definitions.
10 However, due to the great variation in backup media and system capabilities,
11 the storage daemon must be highly configurable. As a consequence, there are
12 quite a large number of directives in the Device Resource definition that
13 allow you to define all the characteristics of your Storage device (normally a
14 tape drive). Fortunately, with modern storage devices, the defaults are
15 sufficient, and very few directives are actually needed.
16
17 Examples of {\bf Device} resource directives that are known to work for a
18 number of common tape drives can be found in the {\bf
19 \lt{}bacula-src\gt{}/examples/devices} directory, and most will also be listed
20 here.
21
22 For a general discussion of configuration file and resources including the
23 data types recognized by {\bf Bacula}, please see the
24 \ilink{Configuration}{ConfigureChapter} chapter of this manual. The
25 following Storage Resource definitions must be defined:
26
27 \begin{bsysitemize}
28 \item
29    \ilink{Storage}{StorageResource2} -- to define the  name of the
30    Storage daemon.
31 \item
32    \ilink{Director}{DirectorResource1} -- to  define the Director's
33    name and his access password.
34 \item
35    \ilink{Device}{DeviceResource} -- to define  the
36    characteristics of your storage device (tape  drive).
37 \item
38    \ilink{Messages}{MessagesChapter} -- to define where error  and
39    information messages are to be sent.
40 \end{bsysitemize}
41
42 \section{Storage Resource}
43 \label{StorageResource2}
44 \index[general]{Resource!Storage}
45 \index[general]{Storage Resource}
46
47 In general, the properties specified under the Storage resource define global
48 properties of the Storage daemon. Each Storage daemon configuration file must
49 have one and only one Storage resource definition.
50
51 \begin{description}
52
53 \label{Storage:Storage:Name}
54 \item [Name = \lt{}Storage-Daemon-Name\gt{}]
55    \index[sd]{Name}
56    \index[sd]{Directive!Name}
57    Specifies the Name of the Storage daemon. This  directive is required.
58
59 \label{Storage:Storage:WorkingDirectory}
60 \item [Working Directory = \lt{}Directory\gt{}]
61    \index[sd]{Working Directory}
62    \index[sd]{Directive!Working Directory}
63    This directive  is mandatory and specifies a directory in which the Storage
64    daemon  may put its status files. This directory should be used only  by {\bf
65    Bacula}, but may be shared by other Bacula daemons provided the names
66    given to each daemon are unique. This  directive is
67    required
68
69 \label{Storage:Storage:PidDirectory}
70 \item [Pid Directory = \lt{}Directory\gt{}]
71    \index[sd]{Pid Directory}
72    \index[sd]{Directive!Pid Directory}
73    This directive  is mandatory and specifies a directory in which the Director
74    may put its process Id file files. The process Id file is used to  shutdown
75    Bacula and to prevent multiple copies of  Bacula from running simultaneously.
76    This directive is required. Standard shell expansion of the {\bf Directory}
77    is done when the configuration file is read so that values such  as {\bf
78    \$HOME} will be properly expanded.
79
80    Typically on Linux systems, you will set this to:  {\bf /var/run}. If you are
81    not installing Bacula in the  system directories, you can use the {\bf Working
82    Directory} as  defined above.
83
84 \label{Storage:Storage:HeartbeatInterval}
85 \item [Heartbeat Interval = \lt{}time-interval\gt{}]
86    \index[sd]{Heartbeat Interval}
87    \index[sd]{Directive!Heartbeat Interval}
88    \index[general]{Heartbeat Interval}
89    \index[general]{Broken pipe}
90    This directive defines an interval of time in seconds.  When
91    the Storage daemon is waiting for the operator to mount a
92    tape, each time interval, it will send a heartbeat signal to
93    the File daemon.  The default interval is zero which disables
94    the heartbeat.  This feature is particularly useful if you
95    have a router such as 3Com that does not follow Internet
96    standards and times out an valid connection after a short
97    duration despite the fact that keepalive is set.  This usually
98    results in a broken pipe error message.
99
100 \label{Storage:Storage:ClientConnectWait}
101 \item [Client Connect Wait = \lt{}time-interval\gt{}]
102    \index[sd]{Connect Wait}
103    \index[sd]{Directive!Connect Wait}
104    \index[general]{Client Connect Wait}
105    This directive defines an interval of time in seconds that
106    the Storage daemon will wait for a Client (the File daemon)
107    to connect.  The default is 30 minutes.  Be aware that the
108    longer the Storage daemon waits for a Client, the more
109    resources will be tied up.
110
111 \label{Storage:Storage:MaximumConcurrentJobs}
112 \item [Maximum Concurrent Jobs = \lt{}number\gt{}]
113    \index[sd]{Maximum Concurrent Jobs}
114    \index[sd]{Directive!Maximum Concurrent Jobs}
115    where \lt{}number\gt{} is the maximum number of Jobs that may run
116    concurrently.  The default is set to 10, but you may set it to a larger
117    number.  Each contact from the Director (e.g.  status request, job start
118    request) is considered as a Job, so if you want to be able to do a {\bf
119    status} request in the console at the same time as a Job is running, you
120    will need to set this value greater than 1.  To run simultaneous Jobs,
121    you will need to set a number of other directives in the Director's
122    configuration file.  Which ones you set depend on what you want, but you
123    will almost certainly need to set the {\bf Maximum Concurrent Jobs} in
124    the Storage resource in the Director's configuration file and possibly
125    those in the Job and Client resources.
126
127 \label{Storage:Storage:SDAddresses}
128 \item [SDAddresses = \lt{}IP-address-specification\gt{}]
129    \index[sd]{SDAddresses}
130    \index[sd]{Directive!SDAddresses}
131    Specify the ports and addresses on which the Storage daemon will listen
132    for Director connections.  Normally, the default is sufficient and you
133    do not need to specify this directive.  Probably the simplest way to
134    explain how this directive works is to show an example:
135
136 \footnotesize
137 \begin{lstlisting}
138  SDAddresses  = { ip = {
139         addr = 1.2.3.4; port = 1205; }
140     ipv4 = {
141         addr = 1.2.3.4; port = http; }
142     ipv6 = {
143         addr = 1.2.3.4;
144         port = 1205;
145     }
146     ip = {
147         addr = 1.2.3.4
148         port = 1205
149     }
150     ip = {
151         addr = 1.2.3.4
152     }
153     ip = {
154         addr = 201:220:222::2
155     }
156     ip = {
157         addr = bluedot.thun.net
158     }
159 }
160 \end{lstlisting}
161 \normalsize
162
163 where ip, ip4, ip6, addr, and port are all keywords. Note, that  the address
164 can be specified as either a dotted quadruple, or  IPv6 colon notation, or as
165 a symbolic name (only in the ip specification).  Also, port can be specified
166 as a number or as the mnemonic value from  the /etc/services file.  If a port
167 is not specified, the default will be used. If an ip  section is specified,
168 the resolution can be made either by IPv4 or  IPv6. If ip4 is specified, then
169 only IPv4 resolutions will be permitted,  and likewise with ip6.
170
171 Using this directive, you can replace both the SDPort and SDAddress
172 directives shown below.
173
174 \label{Storage:Storage:SdPort}
175 \item [SDPort = \lt{}port-number\gt{}]
176    \index[sd]{SDPort}
177    \index[sd]{Directive!SDPort}
178    Specifies port number on which the Storage daemon  listens for Director
179    connections. The default is 9103.
180
181 \label{Storage:Storage:SdAddress}
182 \item [SDAddress = \lt{}IP-Address\gt{}]
183    \index[sd]{SDAddress}
184    \index[sd]{Directive!SDAddress}
185    This directive is optional, and if it is specified, it will cause the
186    Storage daemon server (for Director and File daemon connections) to bind
187    to the specified {\bf IP-Address}, which is either a domain name or an
188    IP address specified as a dotted quadruple.  If this directive is not
189    specified, the Storage daemon will bind to any available address (the
190    default).
191
192 \label{Storage:Storage:End}
193 \end{description}
194
195 The following is a typical Storage daemon Storage definition.
196
197 \footnotesize
198 \begin{lstlisting}
199 #
200 # "Global" Storage daemon configuration specifications appear
201 # under the Storage resource.
202 #
203 Storage {
204   Name = "Storage daemon"
205   Address = localhost
206   WorkingDirectory = "~/bacula/working"
207   Pid    Directory = "~/bacula/working"
208 }
209 \end{lstlisting}
210 \normalsize
211
212 \section{Director Resource}
213 \label{DirectorResource1}
214 \index[general]{Director Resource}
215 \index[general]{Resource!Director}
216
217 The Director resource specifies the Name of the Director which is permitted
218 to use the services of the Storage daemon.  There may be multiple Director
219 resources.  The Director Name and Password must match the corresponding
220 values in the Director's configuration file.
221
222 \begin{description}
223
224 \label{Storage:Director:Name}
225 \item [Name = \lt{}Director-Name\gt{}]
226    \index[sd]{Name}
227    \index[sd]{Directive!Name}
228    Specifies the Name of the Director allowed to connect  to the Storage daemon.
229    This directive is required.
230
231 \label{Storage:Director:Password}
232 \item [Password = \lt{}Director-password\gt{}]
233    \index[sd]{Password}
234    \index[sd]{Directive!Password}
235    Specifies the password that must be supplied by the above named  Director.
236    This directive is required.
237
238 \label{Storage:Director:Monitor}
239 \item [Monitor = \lt{}yes\vb{}no\gt{}]
240    \index[sd]{Monitor}
241    \index[sd]{Directive!Monitor}
242    If Monitor is set to {\bf no} (default), this director will have full
243    access to this Storage daemon.  If Monitor is set to {\bf yes}, this
244    director will only be able to fetch the current status of this Storage
245    daemon.
246
247    Please note that if this director is being used by a Monitor, we highly
248    recommend to set this directive to {\bf yes} to avoid serious security
249    problems.
250
251 \end{description}
252
253 The following is an example of a valid Director resource definition:
254
255 \footnotesize
256 \begin{lstlisting}
257 Director {
258   Name = MainDirector
259   Password = my_secret_password
260 }
261 \end{lstlisting}
262 \normalsize
263
264 \label{DeviceResource}
265 \section{Device Resource}
266 \index[general]{Resource!Device}
267 \index[general]{Device Resource}
268
269 The Device Resource specifies the details of each device (normally a tape
270 drive) that can be used by the Storage daemon.  There may be multiple
271 Device resources for a single Storage daemon.  In general, the properties
272 specified within the Device resource are specific to the Device.
273
274 \begin{description}
275
276 \label{Storage:Device:Name}
277 \item [Name = {\it Device-Name}]
278    \index[sd]{Name}
279    \index[sd]{Directive!Name}
280    Specifies the Name that the Director will use when asking to backup or
281    restore to or from to this device. This is the logical  Device name, and may
282    be any string up to 127 characters in length.  It is generally a good idea to
283    make it correspond to the English  name of the backup device. The physical
284    name of the device is  specified on the {\bf Archive Device} directive
285    described below.  The name you specify here is also used in your Director's
286    conf  file on the
287    \ilink{Device directive}{StorageResource2}  in its Storage
288    resource.
289
290 \label{Storage:Device:ArchiveDevice}
291 \item [Archive Device = {\it name-string}]
292    \index[sd]{Archive Device}
293    \index[sd]{Directive!Archive Device}
294    The specified {\bf name-string} gives the system file name of the  storage
295    device managed by this storage daemon. This will usually be  the device file
296    name of a removable storage device (tape drive),  for example "{\bf
297    /dev/nst0}" or "{\bf /dev/rmt/0mbn}".  It may also be a directory name
298    if you are archiving to disk storage.  In this case, you must supply the
299    full absolute path to the directory.  When specifying a tape device, it
300    is preferable that the "non-rewind" variant of the device file name be
301    given.  In addition, on systems such as Sun, which have multiple tape
302    access methods, you must be sure to specify to use Berkeley I/O
303    conventions with the device.  The {\bf b} in the Solaris (Sun) archive
304    specification {\bf /dev/rmt/0mbn} is what is needed in this case.
305    Bacula does not support SysV tape drive behavior.
306
307    As noted above, normally the Archive Device is the name of a tape drive, but
308    you may also specify an absolute path to an existing directory. If the
309    Device is a directory Bacula will write to file storage in the specified
310    directory, and the filename used will be the Volume name as specified in the
311    Catalog.  If you want to write into more than one directory (i.e.  to spread
312    the load to different disk drives), you will need to define two Device
313    resources, each containing an Archive Device with a different directory.
314    \label{SetupFifo}
315    In addition to a tape device name or a directory name, Bacula will  accept the
316    name of a FIFO. A FIFO is a special kind of file that  connects two programs
317    via kernel memory. If a FIFO device is specified  for a backup operation, you
318    must have a program that reads what Bacula  writes into the FIFO. When the
319    Storage daemon starts the job, it  will wait for {\bf MaximumOpenWait} seconds
320    for the read program to start reading, and then time it out and  terminate
321    the job. As a consequence, it is best to start the read  program at the
322    beginning of the job perhaps with the {\bf RunBeforeJob}  directive. For this
323    kind of device, you never want to specify  {\bf AlwaysOpen}, because you want
324    the Storage daemon to open it only  when a job starts, so you must explicitly
325    set it to {\bf No}.  Since a FIFO is a one way device, Bacula will not attempt
326    to read  a label of a FIFO device, but will simply write on it. To create a
327    FIFO Volume in the catalog, use the {\bf add} command rather than the {\bf
328    label} command to avoid attempting to write a label.
329
330 \footnotesize
331 \begin{lstlisting}
332 Device {
333   Name = FifoStorage
334   Media Type = Fifo
335   Device Type = Fifo
336   Archive Device = /tmp/fifo
337   LabelMedia = yes
338   Random Access = no
339   AutomaticMount = no
340   RemovableMedia = no
341   MaximumOpenWait = 60
342   AlwaysOpen = no
343 }
344 \end{lstlisting}
345 \normalsize
346
347    During a restore operation, if the Archive Device is a FIFO, Bacula  will
348    attempt to read from the FIFO, so you must have an external program  that
349    writes into the FIFO. Bacula will wait {\bf MaximumOpenWait} seconds  for the
350    program to begin writing and will then time it out and  terminate the job. As
351    noted above, you may use the {\bf RunBeforeJob}  to start the writer program
352    at the beginning of the job.
353
354    The Archive Device directive is required.
355
356 \label{Storage:Device:DeviceType}
357 \item [Device Type = {\it type-specification}]
358    \index[sd]{Device Type}
359    \index[sd]{Directive!Device Type}
360    The Device Type specification allows you to explicitly tell Bacula
361    what kind of device you are defining. It the {\it type-specification}
362    may be one of the following:
363    \begin{description}
364    \item [File]
365      Tells Bacula that the device is a file. It may either be a
366      file defined on fixed medium or a removable filesystem such as
367      USB.  All files must be random access devices.
368    \item [Tape]
369      The device is a tape device and thus is sequential access. Tape devices
370      are controlled using ioctl() calls.
371    \item [Fifo]
372      The device is a first-in-first out sequential access read-only
373      or write-only device.
374   \end{description}
375
376   The Device Type directive is not required, and if not specified, Bacula
377   will attempt to guess what kind of device has been specified using the
378   Archive Device specification supplied. There are several advantages to
379   explicitly specifying the Device Type. First, on some systems, block and
380   character devices have the same type.
381   Secondly, if you explicitly specify the Device Type, the mount point
382   need not be defined until the device is opened. This is the case with
383   most removable devices such as USB that are mounted by the HAL daemon.
384   If the Device Type is not explicitly specified, then the mount point
385   must exist when the Storage daemon starts.
386
387   This directive was implemented in Bacula version 1.38.6.
388
389
390 \label{Storage:Device:MediaType}
391 \item [Media Type = {\it name-string}]
392    \index[sd]{Media Type}
393    \index[sd]{Directive!Media Type}
394    The specified {\bf name-string} names the type of media supported by this
395    device, for example, "DLT7000".  Media type names are arbitrary in that you
396    set them to anything you want, but they must be known to the volume
397    database to keep track of which storage daemons can read which volumes.  In
398    general, each different storage type should have a unique Media Type
399    associated with it.  The same {\bf name-string} must appear in the
400    appropriate Storage resource definition in the Director's configuration
401    file.
402
403    Even though the names you assign are arbitrary (i.e.  you choose the name
404    you want), you should take care in specifying them because the Media Type
405    is used to determine which storage device Bacula will select during
406    restore.  Thus you should probably use the same Media Type specification
407    for all drives where the Media can be freely interchanged.  This is not
408    generally an issue if you have a single Storage daemon, but it is with
409    multiple Storage daemons, especially if they have incompatible media.
410
411    For example, if you specify a Media Type of "DDS-4" then during the
412    restore, Bacula will be able to choose any Storage Daemon that handles
413    "DDS-4".  If you have an autochanger, you might want to name the Media Type
414    in a way that is unique to the autochanger, unless you wish to possibly use
415    the Volumes in other drives.  You should also ensure to have unique Media
416    Type names if the Media is not compatible between drives.  This
417    specification is required for all devices.
418
419    In addition, if you are using disk storage, each Device resource will
420    generally have a different mount point or directory. In order for
421    Bacula to select the correct Device resource, each one must have a
422    unique Media Type.
423
424
425 \label{Storage:Device:Autochanger}
426 \label{Autochanger}
427 \item [Autochanger = {\it yes\vb{}no}]
428    \index[sd]{Autochanger}
429    \index[sd]{Directive!Autochanger}
430    If {\bf Yes}, this device belongs to an automatic tape changer, and you
431    must specify an {\bf Autochanger} resource that points to the {\bf
432    Device} resources.  You must also specify a
433    {\bf Changer Device}.  If the Autochanger directive is set to {\bf
434    No} (default), the volume must be manually changed.  You should also
435    have an identical directive to the
436    \ilink{Storage resource}{Autochanger1}  in the Director's
437    configuration file so that  when labeling tapes you are prompted for the slot.
438
439 \label{Storage:Device:ChangerDevice}
440 \item [Changer Device = {\it name-string}]
441    \index[sd]{Changer Device}
442    \index[sd]{Directive!Changer Device}
443    The specified {\bf name-string} must be the {\bf generic SCSI} device
444    name of the autochanger that corresponds to the normal read/write
445    {\bf Archive Device}  specified in the Device resource. This
446    generic SCSI device name should be specified if you have an autochanger
447    or if you have a standard tape drive and want to use the
448    {\bf Alert Command} (see below). For example, on Linux systems, for
449    an Archive Device name of {\bf /dev/nst0}, you would specify {\bf
450    /dev/sg0} for the Changer Device name. Depending on your exact
451    configuration, and the number of autochangers or the type of
452    autochanger, what you specify here can vary.  This directive is
453    optional.  See the \ilink{ Using Autochangers}{AutochangersChapter} chapter
454    of this manual for more details of using this and the following
455    autochanger directives.
456
457 \label{Storage:Device:ChangerCommand}
458 \item [Changer Command = {\it name-string}]
459    \index[sd]{Changer Command}
460    \index[sd]{Directive!Changer Command}
461    The {\bf name-string} specifies an external program to be called  that will
462    automatically change volumes as required by {\bf Bacula}.  Normally,
463    this directive will be specified only in the {\bf AutoChanger} resource,
464    which is then used for all devices.  However, you may also specify
465    the different {\bf Changer Command} in each Device resource.
466    Most frequently,
467    you will specify the Bacula supplied {\bf mtx-changer}  script as follows:
468
469 \footnotesize
470 \begin{lstlisting}
471 Changer Command = "/path/mtx-changer %c %o %S %a %d"
472 \end{lstlisting}
473 \normalsize
474
475    and you will install the {\bf mtx} on your system (found  in the {\bf depkgs}
476    release). An example of this command is in the default bacula-sd.conf file.
477    For more details on the substitution characters that may be specified  to
478    configure your autochanger please see  the
479    \ilink{Autochangers}{AutochangersChapter} chapter of this  manual.
480    For FreeBSD users, you might want to see one of the  several {\bf chio}
481    scripts in {\bf examples/autochangers}.
482
483 \label{Storage:Device:AlertCommand}
484 \item [Alert Command = {\it name-string}]
485    \index[sd]{Alert Command}
486    The {\bf name-string} specifies an external program to be called at the
487    completion of each Job after the device is released.  The purpose of this
488    command is to check for Tape Alerts, which are present when something is
489    wrong with your tape drive (at least for most modern tape drives).  The same
490    substitution characters that may be specified in the Changer Command may
491    also be used in this string.  For more information, please see the
492    \ilink{Autochangers}{AutochangersChapter} chapter of this manual.
493
494
495    Note, it is not necessary to have an autochanger to use this command. The
496    example below uses the {\bf tapeinfo} program that comes with the {\bf mtx}
497    package, but it can be used on any tape drive. However, you will need to
498    specify a {\bf Changer Device} directive in your Device resource (see above)
499    so that the generic SCSI device name can be edited into the command (with
500    the \%c).
501
502    An example of the use of this command to print Tape Alerts  in the Job report
503    is:
504
505 \footnotesize
506 \begin{lstlisting}
507 Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
508
509 \end{lstlisting}
510 \normalsize
511
512 and an example output when there is a problem could be:
513
514 \footnotesize
515 \begin{lstlisting}
516 bacula-sd  Alert: TapeAlert[32]: Interface: Problem with SCSI interface
517                   between tape drive and initiator.
518
519 \end{lstlisting}
520 \normalsize
521
522 \label{Storage:Device:DriveIndex}
523 \item [Drive Index = {\it number}]
524    \index[sd]{Drive Index}
525    \index[sd]{Directive!Drive Index}
526    The {\bf Drive Index} that you specify is passed to the {\bf
527    mtx-changer} script and is thus passed to the {\bf mtx} program.  By
528    default, the Drive Index is zero, so if you have only one drive in your
529    autochanger, everything will work normally.  However, if you have
530    multiple drives, you must specify multiple Bacula Device resources (one
531    for each drive).  The first Device should have the Drive Index set to 0,
532    and the second Device Resource should contain a Drive Index set to 1,
533    and so on.  This will then permit you to use two or more drives in your
534    autochanger.  As of Bacula version 1.38.0, using the {\bf Autochanger}
535    resource, Bacula will automatically ensure that only one drive at a time
536    uses the autochanger script, so you no longer need locking scripts as in
537    the past -- the default mtx-changer script works for any number of
538    drives.
539
540 \label{Storage:Device:Autoselect}
541 \item [Autoselect = {\it yes\vb{}no}]
542    \index[sd]{Autoselect}
543    \index[sd]{Directive!Autoselect}
544    If this directive is set to {\bf yes} (default), and the Device
545    belongs to an autochanger, then when the Autochanger is referenced
546    by the Director, this device can automatically be selected. If this
547    directive is set to {\bf no}, then the Device can only be referenced
548    by directly using the Device name in the Director. This is useful
549    for reserving a drive for something special such as a high priority
550    backup or restore operations.
551
552 \item[Maximum Concurrent Jobs = {\it num}]
553 \index[sd]{MaximumConcurrentJobs}
554
555 {\bf Maximum Concurrent Jobs} is a directive that permits setting the maximum
556 number of Jobs that can run concurrently on a specified Device.  Using this
557 directive, it is possible to have different Jobs using multiple drives, because
558 when the Maximum Concurrent Jobs limit is reached, the Storage Daemon will
559 start new Jobs on any other available compatible drive.  This facilitates
560 writing to multiple drives with multiple Jobs that all use the same Pool.
561
562 \label{Storage:Device:MaximumChangerWait}
563 \item [Maximum Changer Wait = {\it time}]
564    \index[sd]{Maximum Changer Wait}
565    \index[sd]{Directive!Maximum Changer Wait}
566    This directive specifies the maximum time in seconds for Bacula to wait
567    for an autochanger to change the volume.  If this time is exceeded,
568    Bacula will invalidate the Volume slot number stored in the catalog and
569    try again.  If no additional changer volumes exist, Bacula will ask the
570    operator to intervene.  The default is 5 minutes.
571 % TODO: if this is the format, then maybe "5 minutes" should be in
572 % TODO: quotes? define style. see others.
573
574 \label{Storage:Device:MaximumRewindWait}
575 \item [Maximum Rewind Wait = {\it time}]
576    \index[sd]{Maximum Rewind Wait}
577    \index[sd]{Directive!Maximum Rewind Wait}
578    This directive specifies the maximum time in seconds for Bacula to wait
579    for a rewind before timing out.  If this time is exceeded,
580    Bacula will cancel the job.  The default is 5 minutes.
581
582 \label{Storage:Device:MaximumOpenWait}
583 \item [Maximum Open Wait = {\it time}]
584    \index[sd]{Maximum Open Wait}
585    \index[sd]{Directive!Maximum Open Wait}
586    This directive specifies the maximum time in seconds for Bacula to wait
587    for a open before timing out.  If this time is exceeded,
588    Bacula will cancel the job.  The default is 5 minutes.
589
590 \label{Storage:Device:AlwaysOpen}
591 \item [Always Open = {\it yes\vb{}no}]
592    \index[sd]{Always Open}
593    \index[sd]{Directive!Always Open}
594    If {\bf Yes}, Bacula will always keep the device open unless
595    specifically {\bf unmounted} by the Console program.  This permits
596    Bacula to ensure that the tape drive is always available, and properly
597    positioned. If you set
598    {\bf AlwaysOpen} to {\bf no} (default) {\bf Bacula} will only open the
599    drive when necessary, and at the end of the Job if no other Jobs are
600    using the drive, it will be freed.  The next time Bacula wants to append
601    to a tape on a drive that was freed, Bacula will rewind the tape and
602    position it to the end.  To avoid unnecessary tape positioning and to
603    minimize unnecessary operator intervention, it is highly recommended
604    that {\bf Always Open = yes}.  This also ensures that the drive is
605    available when Bacula needs it.
606
607    If you have {\bf Always Open = yes} (recommended) and you want to use the
608    drive for something else, simply use the {\bf unmount} command in the
609    Console program to release the drive. However, don't forget to remount the
610    drive with {\bf mount} when the drive is available or the next Bacula job
611    will block.
612
613    For File storage, this directive is ignored. For a FIFO storage  device, you
614    must set this to {\bf No}.
615
616    Please note that if you set this directive to {\bf No} Bacula  will release
617    the tape drive between each job, and thus the next job  will rewind the tape
618    and position it to the end of the data. This  can be a very time consuming
619    operation. In addition, with this directive set to no, certain multiple
620    drive autochanger operations will fail.  We strongly recommend to keep
621    {\bf Always Open} set to {\bf Yes}
622
623 \label{Storage:Device:VolumePollInterval}
624 \item [Volume Poll Interval = {\it time}]
625    \index[sd]{Volume Poll Interval}
626    \index[sd]{Directive!Volume Poll Interval}
627    If the time  specified on this directive is non-zero, after  asking the
628    operator to mount a new volume Bacula will  periodically poll (or read) the
629    drive at the specified  interval to see if a new volume has been mounted. If
630    the  time interval is zero (the default), no polling will occur.  This
631    directive can be useful if you want to avoid operator  intervention via the
632    console. Instead, the operator can  simply remove the old volume and insert
633    the requested one,  and Bacula on the next poll will recognize the new tape
634    and  continue. Please be aware that if you set this interval  too small, you
635    may excessively wear your tape drive if the  old tape remains in the drive,
636    since Bacula will read it on  each poll. This can be avoided by ejecting the
637    tape using  the {\bf Offline On Unmount} and the {\bf Close on Poll}
638    directives.
639    However, if you are using a Linux 2.6 kernel or other OSes
640    such as FreeBSD or Solaris, the Offline On Unmount will leave the drive
641    with no tape, and Bacula will not be able to properly open the drive and
642    may fail the job.  For more information on this problem, please see the
643    \bsysxrlink{description of Offline On Unmount}{NoTapeInDrive}{problems}{subsection}
644    in the \bsysxrlink{Tape Testing}{TapeTestingChapter}{problems}{chapter} of the \problemsman{}.
645
646 \label{Storage:Device:CloseOnPoll}
647 \item [Close on Poll = {\it yes\vb{}no}]
648    \index[sd]{Close on Poll}
649    \index[sd]{Directive!Close on Poll}
650    If {\bf Yes}, Bacula close the device (equivalent to  an unmount except no
651    mount is required) and reopen it at each  poll. Normally this is not too
652    useful unless you have the  {\bf Offline on Unmount} directive set, in which
653    case the  drive will be taken offline preventing wear on the tape  during any
654    future polling. Once the operator inserts a new  tape, Bacula will recognize
655    the drive on the next poll and  automatically continue with the backup.
656    Please see above more more details.
657
658 \label{Storage:Device:MaximumOpenWait}
659 \item [Maximum Open Wait = {\it time}]
660    \index[sd]{Maximum Open Wait}
661    \index[sd]{Directive!Maximum Open Wait}
662    This directive specifies the maximum amount of time in seconds that
663    Bacula will wait for a device that is busy.  The default is 5 minutes.
664    If the device cannot be obtained, the current Job will be terminated in
665    error.  Bacula will re-attempt to open the drive the next time a Job
666    starts that needs the the drive.
667
668
669 \label{Storage:Device:RemovableMedia}
670 \label{removablemedia}
671 \item [Removable Media = {\it yes\vb{}no}]
672    \index[sd]{Removable media}
673    \index[sd]{Directive!Removable media}
674    If {\bf Yes}, this device supports removable media (for example, tapes
675    or CDs).  If {\bf No}, media cannot be removed (for example, an
676    intermediate backup area on a hard disk). If {\bf Removable media} is
677    enabled on a File device (as opposed to a tape) the Storage daemon will
678    assume that device may be something like a USB device that can be
679    removed or a simply a removable harddisk. When attempting to open
680    such a device, if the Volume is not found (for File devices, the Volume
681    name is the same as the Filename), then the Storage daemon will search
682    the entire device looking for likely Volume names, and for each one
683    found, it will ask the Director if the Volume can be used.  If so,
684    the Storage daemon will use the first such Volume found.  Thus it
685    acts somewhat like a tape drive -- if the correct Volume is not found,
686    it looks at what actually is found, and if it is an appendable Volume,
687    it will use it.
688
689    If the removable medium is not automatically mounted (e.g. udev), then
690    you might consider using additional Storage daemon device directives
691    such as {\bf Requires Mount}, {\bf Mount Point}, {\bf Mount Command},
692    and {\bf Unmount Command}, all of which can be used in conjunction with
693    {\bf Removable Media}.
694
695
696 \label{Storage:Device:RandomAccess}
697 \item [Random Access = {\it yes\vb{}no}]
698    \index[sd]{Random access}
699    \index[sd]{Directive!Random access}
700    If {\bf Yes}, the archive device is assumed to be a random access medium
701    which supports the {\bf lseek} (or {\bf lseek64} if Largefile is enabled
702    during configuration) facility. This should be set to {\bf Yes} for all
703    file systems such as USB, and fixed files.  It should be set to
704    {\bf No} for non-random access devices such as tapes and named pipes.
705
706
707 \label{Storage:Device:RequiresMount}
708 \item [Requires Mount = {\it yes\vb{}no}]
709    \index[sd]{Requires Mount  }
710    When this directive is enabled, the Storage daemon will submit
711    a {\bf Mount Command} before attempting to open the device.
712    You must set this directive to {\bf yes} for removable
713    file systems such as USB devices that are not automatically mounted
714    by the operating system when plugged in or opened by Bacula.
715    It should be set to {\bf no} for
716    all other devices such as tapes and fixed filesystems. It should also
717    be set to {\bf no} for any removable device that is automatically
718    mounted by the operating system when opened (e.g. USB devices mounted
719    by udev or hotplug). This directive
720    indicates if the device requires to be mounted using the {\bf Mount
721    Command}.  To be able to write devices need a mount, the following
722    directives must also be defined: {\bf Mount Point}, {\bf Mount Command},
723    and {\bf Unmount Command}.
724
725 \label{Storage:Device:MountPoint}
726 \item [Mount Point = {\it directory}]
727    \index[sd]{Mount Point}
728    Directory where the device can be mounted.
729    This directive is used only
730    for devices that have {\bf Requires Mount} enabled such as
731    USB file devices.
732
733 \label{Storage:Device:MountCommand}
734 \item [Mount Command = {\it name-string}]
735    \index[sd]{Mount Command}
736    This directive specifies the command that must be executed to mount
737    devices such as many USB devices. Before the command is
738    executed, \%a is replaced with the Archive Device, and \%m with the Mount
739    Point.
740
741 See the \ilink {Edit Codes}{mountcodes} section below for more details of
742 the editing codes that can be used in this directive.
743
744   If you need to specify multiple commands, create a shell script.
745
746 \label{Storage:Device:UnmountCommand}
747 \item [Unmount Command = {\it name-string}]
748    \index[sd]{Unmount Command}
749    This directive specifies the command that must be executed to unmount
750    devices such as many USB devices. Before the command  is
751    executed, \%a is replaced with the Archive Device, and \%m with the  Mount
752    Point.
753
754    Most frequently, you will define it as follows:
755
756 \footnotesize
757 \begin{lstlisting}
758   Unmount Command = "/bin/umount %m"
759 \end{lstlisting}
760 \normalsize
761
762 See the \ilink {Edit Codes}{mountcodes} section below for more details of
763 the editing codes that can be used in this directive.
764
765   If you need to specify multiple commands, create a shell script.
766
767 \item[Block Checksum = {\it yes/no}]
768
769   You may turn off the Block Checksum (CRC32) code that Bacula uses when
770   writing blocks to a Volume. Doing so can reduce the Storage daemon CPU usage
771   slightly.  It will also permit Bacula to read a Volume that has corrupted
772   data.
773
774   The default is {\bf yes} -- i.e. the checksum is computed on write and
775   checked on read.
776
777   \textbf{We do not recommend to turn this off} particularly on older tape
778   drives or for disk Volumes where doing so may allow corrupted data to go
779   undetected.
780
781 \label{Storage:Device:MinimumBlockSize}
782 \item [Minimum block size = {\it size-in-bytes}]
783    \index[sd]{Minimum block size}
784    \index[sd]{Directive!Minimum block size}
785    On most modern tape drives, you will not need or want to specify this
786    directive, and if you do so, it will be to make Bacula use fixed block
787    sizes.  This statement applies only to non-random access devices (e.g.
788    tape drives).  Blocks written by the storage daemon to a non-random
789    archive device will never be smaller than the given {\bf size-in-bytes}.
790    The Storage daemon will attempt to efficiently fill blocks with data
791    received from active sessions but will, if necessary, add padding to a
792    block to achieve the required minimum size.
793
794    To force the block size to be fixed, as is the case for some non-random
795    access devices (tape drives), set the {\bf Minimum block size} and the
796    {\bf Maximum block size} to the same value (zero included).  The default
797    is that both the minimum and maximum block size are zero and the default
798    block size is 64,512 bytes.
799
800    For  example, suppose you want a fixed block size of 100K bytes, then you
801    would specify:
802
803 \footnotesize
804 \begin{lstlisting}
805
806     Minimum block size = 100K
807     Maximum block size = 100K
808
809 \end{lstlisting}
810 \normalsize
811
812    Please note that if you specify a fixed block size as shown above,  the tape
813    drive must either be in variable block size mode, or  if it is in fixed block
814    size mode, the block size (generally  defined by {\bf mt}) {\bf must} be
815    identical to the size specified  in Bacula -- otherwise when you attempt to
816    re-read your Volumes,  you will get an error.
817
818    If you want the  block size to be variable but with a 64K minimum and 200K
819    maximum (and  default as well), you would specify:
820
821 \footnotesize
822 \begin{lstlisting}
823
824     Minimum block size = 64K
825     Maximum blocksize = 200K
826
827 \end{lstlisting}
828 \normalsize
829
830 \label{Storage:Device:MaximumBlockSize}
831 \item [Maximum block size = {\it size-in-bytes}]
832    \index[sd]{Maximum block size}
833    \index[sd]{Directive!Maximum block size}
834    On most modern tape drives, you will not need to specify this directive.
835    If you do so, it will most likely be to use fixed block sizes (see
836    Minimum block size above).  The Storage daemon will always attempt to
837    write blocks of the specified {\bf size-in-bytes} to the archive device.
838    As a consequence, this statement specifies both the default block size
839    and the maximum block size.  The size written never exceed the given
840    {\bf size-in-bytes}.  If adding data to a block would cause it to exceed
841    the given maximum size, the block will be written to the archive device,
842    and the new data will begin a new block.
843
844    If no value is specified or zero is specified, the Storage daemon will
845    use a default block size of 64,512 bytes (126 * 512).
846
847    The maximum {\bf size-in-bytes} possible is 2,000,000.
848
849 \label{Storage:Device:HardwareEndOfMedium}
850 \item [Hardware End of Medium = {\it yes\vb{}no}]
851    \index[sd]{Hardware End of Medium}
852    \index[sd]{Directive!Hardware End of Medium}
853    If {\bf No}, the archive device is not required to support end of medium
854    ioctl request, and the storage daemon will use the forward space file
855    function to find the end of the recorded data. If {\bf Yes}, the archive
856    device must support the {\tt ioctl} {\tt MTEOM} call, which will position
857    the tape to the end of the recorded data. In addition, your SCSI driver must
858    keep track of the file number on the tape and report it back correctly by
859    the {\bf MTIOCGET} ioctl. Note, some SCSI drivers will correctly forward
860    space to the end of the recorded data, but they do not keep track of the
861    file number.  On Linux machines, the SCSI driver has a {\bf fast-eod}
862    option, which if set will cause the driver to lose track of the file
863    number. You should ensure that this option is always turned off using the
864    {\bf mt} program.
865
866    Default setting for Hardware End of Medium is {\bf Yes}. This  function is
867    used before appending to a tape to ensure that no  previously written data is
868    lost. We recommend if you have a non-standard or unusual tape drive that you
869    use the {\bf btape} program  to test your drive to see whether or not it
870    supports this function.  All modern (after 1998) tape drives support this
871    feature.
872
873 \label{Storage:Device:FastForwardSpaceFile}
874 \item [Fast Forward Space File = {\it yes\vb{}no}]
875    \index[sd]{Fast Forward Space File}
876    \index[sd]{Directive!Fast Forward Space File}
877    If {\bf No}, the archive device is not required to support  keeping track of
878    the file number ({\bf MTIOCGET} ioctl) during  forward space file. If {\bf
879    Yes}, the archive device must support  the {\tt ioctl} {\tt MTFSF} call, which
880    virtually all drivers  support, but in addition, your SCSI driver must keep
881    track of the  file number on the tape and report it back correctly by the
882    {\bf MTIOCGET} ioctl. Note, some SCSI drivers will correctly  forward space,
883    but they do not keep track of the file number or more  seriously, they do not
884    report end of medium.
885
886    Default setting for Fast Forward Space File is {\bf Yes}.
887
888 \label{Storage:Device:UseMtiocget}
889 \item [Use MTIOCGET = {\it yes\vb{}no}]
890    \index[sd]{Use MTIOCGET}
891    \index[sd]{Directive!Use MTIOCGET}
892    If {\bf No}, the operating system is not required to support keeping track of
893    the file number and reporting it in the ({\bf MTIOCGET} ioctl). The default
894    is {\bf Yes}. If you must set this to No, Bacula will do the proper file
895    position determination, but it is very unfortunate because it means that
896    tape movement is very inefficient.
897    Fortunately, this operation system deficiency seems to be the case only
898    on a few *BSD systems.  Operating systems known to work correctly are
899    Solaris, Linux and FreeBSD.
900
901 \label{Storage:Device:BsfAtEom}
902 \item [BSF at EOM = {\it yes\vb{}no}]
903    \index[sd]{BSF at EOM}
904    \index[sd]{Directive!BSF at EOM}
905    If {\bf No}, the default, no special action is taken by Bacula with the End
906    of Medium (end of tape) is reached because the tape will be positioned after
907    the last EOF tape mark, and Bacula can append to the tape as desired.
908    However, on some systems, such as FreeBSD, when Bacula reads the End of
909    Medium (end of tape), the tape will be positioned after the second EOF tape
910    mark (two successive EOF marks indicated End of Medium). If Bacula appends
911    from that point, all the appended data will be lost. The solution for such
912    systems is to specify {\bf BSF at EOM} which causes Bacula to backspace over
913    the second EOF mark. Determination of whether or not you need this directive
914    is done using the {\bf test} command in the {\bf btape} program.
915
916
917 \label{Storage:Device:TwoEof}
918 \item [TWO EOF = {\it yes\vb{}no}]
919    \index[sd]{TWO EOF}
920    \index[sd]{Directive!TWO EOF}
921    If {\bf Yes}, Bacula will write two end of file marks when terminating a
922    tape -- i.e. after the last job or at the end of the medium. If {\bf No},
923    the default, Bacula will only write one end of file to terminate the tape.
924
925 \label{Storage:Device:BackwardSpaceRecord}
926 \item [Backward Space Record = {\it yes\vb{}no}]
927    \index[sd]{Backward Space Record}
928    \index[sd]{Directive!Backward Space Record}
929    If {\it Yes}, the archive device supports the {\tt MTBSR ioctl} to backspace
930    records. If {\it No}, this call is not used and the device must be rewound
931    and advanced forward to the desired position. Default is {\bf Yes} for non
932    random-access devices. This function if enabled is used at the end of a
933    Volume after writing the end of file and any ANSI/IBM labels to determine
934    whether or not the last block was written correctly. If you turn this
935    function off, the test will not be done. This causes no harm as the re-read
936    process is precautionary rather than required.
937
938 \label{Storage:Device:BackwardSpaceFile}
939 \item [Backward Space File = {\it yes\vb{}no}]
940    \index[sd]{Backward Space File}
941    \index[sd]{Directive!Backward Space File}
942    If {\it Yes}, the archive device supports the {\bf MTBSF} and  {\bf MTBSF
943   ioctl}s to backspace over an end of file mark and to the  start of a file. If
944   {\it No}, these calls are not used and the  device must be rewound and
945   advanced forward to the desired position.  Default is {\bf Yes} for non
946   random-access devices.
947
948 \label{Storage:Device:ForwardSpaceRecord}
949 \item [Forward Space Record = {\it yes\vb{}no}]
950    \index[sd]{Forward Space Record}
951    \index[sd]{Directive!Forward Space Record}
952    If {\it Yes}, the archive device must support the {\bf MTFSR  ioctl} to
953    forward space over records. If {\bf No}, data must  be read in order to
954    advance the position on the device. Default is  {\bf Yes} for non
955    random-access devices.
956
957 \label{Storage:Device:ForwardSpaceFile}
958 \item [Forward Space File = {\it yes\vb{}no}]
959    \index[sd]{Forward Space File}
960    \index[sd]{Directive!Forward Space File}
961    If {\bf Yes}, the archive device must support the {\tt MTFSF  ioctl} to
962    forward space by file marks. If {\it No}, data  must be read to advance the
963    position on the device. Default is  {\bf Yes} for non random-access devices.
964
965 \label{Storage:Device:OfflineOnUnmount}
966 \item [Offline On Unmount = {\it yes\vb{}no}]
967    \index[sd]{Offline On Unmount}
968    \index[sd]{Directive!Offline On Unmount}
969    The default for this directive is {\bf No}. If {\bf Yes} the  archive device
970    must support the {\tt MTOFFL ioctl} to rewind and  take the volume offline. In
971    this case, Bacula will issue the  offline (eject) request before closing the
972    device during the {\bf unmount}  command. If {\bf No} Bacula will not attempt
973    to offline the  device before unmounting it. After an offline is issued,  the
974    cassette will be ejected thus {\bf requiring operator intervention}  to
975    continue, and on some systems require an explicit load command  to be issued
976    ({\bf mt -f /dev/xxx load}) before the system will recognize  the tape. If you
977    are using an autochanger, some devices  require an offline to be issued prior
978    to changing the volume. However,  most devices do not and may get very
979    confused.
980
981    If you are using a Linux 2.6 kernel or other OSes
982    such as FreeBSD or Solaris, the Offline On Unmount will leave the drive
983    with no tape, and Bacula will not be able to properly open the drive and
984    may fail the job.  For more information on this problem, please see the
985    \bsysxrlink{description of Offline On Unmount}{NoTapeInDrive}{problems}{subsection}
986    in the \bsysxrlink{Tape Testing}{TapeTestingChapter}{problems}{chapter} of the \problemsman{}.
987
988
989 \label{Storage:Device:MaximumConcurrentJobs}
990 \item [Maximum Concurrent Jobs = \lt{}number\gt{}]
991    \index[sd]{Device Maximum Concurrent Jobs}
992    \index[sd]{Directive!Device Maximum Concurrent Jobs}
993    \index[sd]{Directive!New in 3.0.3}
994    where \lt{}number\gt{} is the maximum number of Jobs that can run
995    concurrently on a specified Device.  Using this directive, it is possible
996    to have different Jobs using multiple drives, because when
997    the Maximum Concurrent Jobs limit is
998    reached, the Storage Daemon will start new Jobs on any other available
999    compatible drive.  This facilitates writing to multiple drives with
1000    multiple Jobs that all use the same Pool.
1001
1002 \label{Storage:Device:MaximumVolumeSize}
1003 \item [Maximum Volume Size = {\it size}]
1004    \index[sd]{Maximum Volume Size}
1005    \index[sd]{Directive!Maximum Volume Size}
1006    No more than {\bf size} bytes will be written onto a given volume on the
1007    archive device.  This directive is used mainly in testing Bacula to
1008    simulate a small Volume.  It can also be useful if you wish to limit the
1009    size of a File Volume to say less than 2GB of data.  In some rare cases
1010    of really antiquated tape drives that do not properly indicate when the
1011    end of a tape is reached during writing (though I have read about such
1012    drives, I have never personally encountered one).  Please note, this
1013    directive is deprecated (being phased out) in favor of the {\bf Maximum
1014    Volume Bytes} defined in the Director's configuration file.
1015
1016 \label{Storage:Device:MaximumFileSize}
1017 \item [Maximum File Size = {\it size}]
1018    \index[sd]{Maximum File Size}
1019    \index[sd]{Directive!Maximum File Size}
1020    No more than {\bf size} bytes will be written into a given logical file
1021    on the volume.  Once this size is reached, an end of file mark is
1022    written on the volume and subsequent data are written into the next
1023    file.  Breaking long sequences of data blocks with file marks permits
1024    quicker positioning to the start of a given stream of data and can
1025    improve recovery from read errors on the volume.  The default is one
1026    Gigabyte.  This directive creates EOF marks only on tape media.
1027    However, regardless of the medium type (tape, disk, USB ...) each time
1028    a the Maximum File Size is exceeded, a record is put into the catalog
1029    database that permits seeking to that position on the medium for
1030    restore operations. If you set this to a small value (e.g. 1MB),
1031    you will generate lots of database records (JobMedia) and may
1032    significantly increase CPU/disk overhead.
1033
1034    If you are configuring an LTO-3 or LTO-4 tape, you probably will
1035    want to set the {\bf Maximum File Size} to 2GB to avoid making
1036    the drive stop to write an EOF mark.
1037
1038    Note, this directive does not limit the size of Volumes that Bacula
1039    will create regardless of whether they are tape or disk volumes. It
1040    changes only the number of EOF marks on a tape and the number of
1041    block positioning records (see below) that are generated. If you
1042    want to limit the size of all Volumes for a particular device, use
1043    the {\bf Maximum Volume Size} directive (above), or use the
1044    {\bf Maximum Volume Bytes} directive in the Director's Pool resource,
1045    which does the same thing but on a Pool (Volume) basis.
1046
1047 \label{Storage:Device:BlockPositioning}
1048 \item [Block Positioning = {\it yes\vb{}no}]
1049    \index[sd]{Block Positioning}
1050    \index[sd]{Directive!Block Positioning}
1051    This directive tells Bacula not to use block positioning when doing restores.
1052    Turning this directive off can cause Bacula to be {\bf extremely} slow
1053    when restoring files.  You might use this directive if you wrote your
1054    tapes with Bacula in variable block mode (the default), but your drive
1055    was in fixed block mode. The default is {\bf yes}.
1056
1057 \label{Storage:Device:MaximumNetworkBufferSize}
1058 \item [Maximum Network Buffer Size = {\it bytes}]
1059    \index[sd]{Maximum Network Buffer Size}
1060    \index[sd]{Directive!Maximum Network Buffer Size}
1061    where {\it bytes} specifies the initial network buffer  size to use with the
1062    File daemon.  This size will be adjusted down if it is too large until
1063    it is accepted by the OS. Please use care in setting this value since if
1064    it is too large, it will be trimmed by 512 bytes until the OS is happy,
1065    which may require a large number of system calls.  The default value is
1066    32,768 bytes.
1067
1068    The default size was chosen to be relatively large but not too big in
1069    the case that you are transmitting data over Internet.  It is clear that
1070    on a high speed local network, you can increase this number and improve
1071    performance. For example, some users have found that if you use a value
1072    of 65,536 bytes they get five to ten times the throughput.  Larger values for
1073    most users don't seem to improve performance. If you are interested
1074    in improving your backup speeds, this is definitely a place to
1075    experiment. You will probably also want to make the corresponding change
1076    in each of your File daemons conf files.
1077
1078
1079 \label{Storage:Device:MaximumSpoolSize}
1080 \item [Maximum Spool Size = {\it bytes}]
1081    \index[sd]{Maximum Spool Size}
1082    \index[sd]{Directive!Maximum Spool Size}
1083    where the bytes specify the maximum spool size for all jobs that are
1084    running.  The default is no limit.
1085
1086 \label{Storage:Device:MaximumJobSpoolSize}
1087 \item [Maximum Job Spool Size = {\it bytes}]
1088    \index[sd]{Maximum Job Spool Size}
1089    \index[sd]{Directive!Maximum Job Spool Size}
1090    where the bytes specify the maximum spool size for any one job  that is
1091    running. The default is no limit.
1092    This directive is implemented only in version 1.37 and later.
1093
1094 \label{Storage:Device:SpoolDirectory}
1095 \item [Spool Directory = {\it directory}]
1096    \index[sd]{Spool Directory}
1097    \index[sd]{Directive!Spool Directory}
1098    specifies the name of the directory to be used to store  the spool files for
1099    this device. This directory is also used to store  temporary part files when
1100    writing to a device that requires mount (USB).  The default is to use the
1101    working directory.
1102
1103 \label{Storage:Device:MaximumPartSize}
1104 \item [Maximum Part Size = {\it bytes}]
1105    \index[sd]{Maximum Part Size}
1106    \index[sd]{Directive!Maximum Part Size}
1107    This is the maximum size of a volume part file. The default is no limit.
1108    This directive is implemented only in version 1.37 and later.
1109
1110    If the device requires  mount, it is transferred to the device when this size
1111    is reached.  In this case, you must take care to have enough disk space left
1112    in  the spool directory.
1113
1114    Otherwise, it is left on the hard disk.
1115
1116    It is ignored for tape and FIFO devices.
1117
1118
1119 \end{description}
1120
1121 \label{mountcodes}
1122 \section{Edit Codes for Mount and Unmount Directives}
1123 \index[general]{Directives!Edit Codes}
1124 \index[general]{Edit Codes for Mount and Unmount Directives }
1125
1126 Before submitting the {\bf Mount Command}, {\bf Unmount Command},
1127 {\bf Write Part Command}, or {\bf Free Space Command} directives
1128 to the operating system, Bacula performs character substitution of the
1129 following characters:
1130
1131 \footnotesize
1132 \begin{lstlisting}
1133     %% = %
1134     %a = Archive device name
1135     %e = erase (set if cannot mount and first part)
1136     %n = part number
1137     %m = mount point
1138     %v = last part name (i.e. filename)
1139 \end{lstlisting}
1140 \normalsize
1141
1142
1143 \section{Devices that require a mount (USB)}
1144 \index[general]{Devices that require a mount (USB)}
1145
1146 All the directives in this section are implemented only in
1147 Bacula version 1.37 and later and hence are available in version 1.38.6.
1148
1149 As of version 1.39.5, the directives
1150 "Requires Mount", "Mount Point", "Mount Command", and "Unmount Command"
1151 apply to removable filesystems such as USB.
1152
1153 \begin{description}
1154
1155 \label{Storage:Device:RequiresMount}
1156 \item [Requires Mount = {\it yes\vb{}no}]
1157    \index[sd]{Requires Mount}
1158    \index[sd]{Directive!Requires Mount}
1159    You must set this directive to {\bf yes} for removable devices such as
1160    USB unless they are automounted, and to {\bf no} for all other devices
1161    (tapes/files).  This directive indicates if the device requires to be
1162    mounted to be read, and if it must be written in a special way.  If it
1163    set, {\bf Mount Point}, {\bf Mount Command}, {\bf Unmount Command} and
1164    {\bf Write Part Command} directives must also be defined.
1165
1166 \label{Storage:Device:MountPoint}
1167 \item [Mount Point = {\it directory}]
1168    \index[sd]{Mount Point}
1169    \index[sd]{Directive!Mount Point}
1170    Directory where the device can be mounted.
1171
1172 \label{Storage:Device:MountCommand}
1173 \item [Mount Command = {\it name-string}]
1174    \index[sd]{Mount Command}
1175    \index[sd]{Directive!Mount Command}
1176    Command that must be executed to mount the device. Before the command is
1177    executed, \%a is replaced with the Archive Device, and \%m with the Mount
1178    Point.
1179
1180    Most frequently, you will define it as follows:
1181
1182 \footnotesize
1183 \begin{lstlisting}
1184   Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
1185 \end{lstlisting}
1186 \normalsize
1187
1188 For some media, you may need multiple commands.  If so, it is recommended
1189 that you use a shell script instead of putting them all into the Mount
1190 Command.  For example, instead of this:
1191
1192 \footnotesize
1193 \begin{lstlisting}
1194   Mount Command = "/usr/local/bin/mymount"
1195 \end{lstlisting}
1196 \normalsize
1197
1198 Where that script contains:
1199
1200 \footnotesize
1201 \begin{lstlisting}
1202 #!/bin/sh
1203 ndasadmin enable -s 1 -o w
1204 sleep 2
1205 mount /dev/ndas-00323794-0p1 /backup
1206 \end{lstlisting}
1207 \normalsize
1208
1209 Similar consideration should be given to all other Command parameters.
1210
1211 \label{Storage:Device:UnmountCommand}
1212 \item [Unmount Command = {\it name-string}]
1213    \index[sd]{Unmount Command}
1214    \index[sd]{Directive!Unmount Command}
1215    Command that must be executed to unmount the device. Before the command  is
1216    executed, \%a is replaced with the Archive Device, and \%m with the  Mount
1217    Point.
1218
1219    Most frequently, you will define it as follows:
1220
1221 \footnotesize
1222 \begin{lstlisting}
1223   Unmount Command = "/bin/umount %m"
1224 \end{lstlisting}
1225 \normalsize
1226
1227   If you need to specify multiple commands, create a shell script.
1228
1229 \end{description}
1230
1231 %% This pulls in the Autochanger resource from another file.
1232 \label{AutochangerRes}
1233 \label{AutochangerResource1}
1234 \input{autochangerres}
1235
1236 \section{Capabilities}
1237 \index[general]{Capabilities}
1238
1239 \begin{description}
1240
1241 \label{Storage:Device:LabelMedia}
1242 \item [Label Media = {\it yes\vb{}no}]
1243    \index[general]{Label Media}
1244    \index[sd]{Label Media}
1245    \index[sd]{Directive!Label Media}
1246    If {\bf Yes}, permits this device to automatically label blank media
1247    without an explicit operator command.  It does so by using an internal
1248    algorithm as defined on the \ilink{Label Format}{Label} record in each
1249    Pool resource.  If this is {\bf No} as by default, Bacula will label
1250    tapes only by specific operator command ({\bf label} in the Console) or
1251    when the tape has been recycled.  The automatic labeling feature is most
1252    useful when writing to disk rather than tape volumes.
1253
1254 \label{Storage:Device:AutomaticMount}
1255 \item [Automatic mount = {\it yes\vb{}no}]
1256    \index[sd]{Automatic mount}
1257    \index[sd]{Directive!Automatic mount}
1258    If {\bf Yes} (the default), permits the daemon to examine the device to
1259    determine if it contains a Bacula labeled volume.  This is done
1260    initially when the daemon is started, and then at the beginning of each
1261    job.  This directive is particularly important if you have set
1262    {\bf Always Open = no} because it permits Bacula to attempt to read the
1263    device before asking the system operator to mount a tape.  However,
1264    please note that the tape must be mounted before the job begins.
1265
1266 \end{description}
1267
1268 \section{Messages Resource}
1269 \label{MessagesResource1}
1270 \index[general]{Resource!Messages}
1271 \index[general]{Messages Resource}
1272
1273 For a description of the Messages Resource, please see the
1274 \ilink{Messages Resource}{MessagesChapter} Chapter of this
1275 manual.
1276
1277 \section{Sample Storage Daemon Configuration File}
1278 \label{SampleConfiguration}
1279 \index[general]{File!Sample Storage Daemon Configuration}
1280 \index[general]{Sample Storage Daemon Configuration File}
1281
1282 A example Storage Daemon configuration file might be the following:
1283
1284 \footnotesize
1285 \begin{lstlisting}
1286 #
1287 # Default Bacula Storage Daemon Configuration file
1288 #
1289 #  For Bacula release 1.37.2 (07 July 2005) -- gentoo 1.4.16
1290 #
1291 # You may need to change the name of your tape drive
1292 #   on the "Archive Device" directive in the Device
1293 #   resource.  If you change the Name and/or the
1294 #   "Media Type" in the Device resource, please ensure
1295 #   that bacula-dir.conf has corresponding changes.
1296 #
1297 Storage {                               # definition of myself
1298   Name = rufus-sd
1299   Address = rufus
1300   WorkingDirectory = "$HOME/bacula/bin/working"
1301   Pid Directory = "$HOME/bacula/bin/working"
1302   Maximum Concurrent Jobs = 20
1303 }
1304 #
1305 # List Directors who are permitted to contact Storage daemon
1306 #
1307 Director {
1308   Name = rufus-dir
1309   Password = "ZF9Ctf5PQoWCPkmR3s4atCB0usUPg+vWWyIo2VS5ti6k"
1310 }
1311 #
1312 # Restricted Director, used by tray-monitor to get the
1313 #   status of the storage daemon
1314 #
1315 Director {
1316   Name = rufus-mon
1317   Password = "9usxgc307dMbe7jbD16v0PXlhD64UVasIDD0DH2WAujcDsc6"
1318   Monitor = yes
1319 }
1320 #
1321 # Devices supported by this Storage daemon
1322 # To connect, the Director's bacula-dir.conf must have the
1323 #  same Name and MediaType.
1324 #
1325 Autochanger {
1326   Name = Autochanger
1327   Device = Drive-1
1328   Device = Drive-2
1329   Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a %d"
1330   Changer Device = /dev/sg0
1331 }
1332
1333 Device {
1334   Name = Drive-1                      #
1335   Drive Index = 0
1336   Media Type = DLT-8000
1337   Archive Device = /dev/nst0
1338   AutomaticMount = yes;               # when device opened, read it
1339   AlwaysOpen = yes;
1340   RemovableMedia = yes;
1341   RandomAccess = no;
1342   AutoChanger = yes
1343   Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
1344 }
1345
1346 Device {
1347   Name = Drive-2                      #
1348   Drive Index = 1
1349   Media Type = DLT-8000
1350   Archive Device = /dev/nst1
1351   AutomaticMount = yes;               # when device opened, read it
1352   AlwaysOpen = yes;
1353   RemovableMedia = yes;
1354   RandomAccess = no;
1355   AutoChanger = yes
1356   Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
1357 }
1358
1359 Device {
1360   Name = "HP DLT 80"
1361   Media Type = DLT8000
1362   Archive Device = /dev/nst0
1363   AutomaticMount = yes;                 # when device opened, read it
1364   AlwaysOpen = yes;
1365   RemovableMedia = yes;
1366 }
1367 #Device {
1368 #  Name = SDT-7000                     #
1369 #  Media Type = DDS-2
1370 #  Archive Device = /dev/nst0
1371 #  AutomaticMount = yes;               # when device opened, read it
1372 #  AlwaysOpen = yes;
1373 #  RemovableMedia = yes;
1374 #}
1375 #Device {
1376 #  Name = Floppy
1377 #  Media Type = Floppy
1378 #  Archive Device = /mnt/floppy
1379 #  RemovableMedia = yes;
1380 #  Random Access = Yes;
1381 #  AutomaticMount = yes;               # when device opened, read it
1382 #  AlwaysOpen = no;
1383 #}
1384 #Device {
1385 #  Name = FileStorage
1386 #  Media Type = File
1387 #  Archive Device = /tmp
1388 #  LabelMedia = yes;                   # lets Bacula label unlabeled media
1389 #  Random Access = Yes;
1390 #  AutomaticMount = yes;               # when device opened, read it
1391 #  RemovableMedia = no;
1392 #  AlwaysOpen = no;
1393 #}
1394 #
1395 # A very old Exabyte with no end of media detection
1396 #
1397 #Device {
1398 #  Name = "Exabyte 8mm"
1399 #  Media Type = "8mm"
1400 #  Archive Device = /dev/nst0
1401 #  Hardware end of medium = No;
1402 #  AutomaticMount = yes;               # when device opened, read it
1403 #  AlwaysOpen = Yes;
1404 #  RemovableMedia = yes;
1405 #}
1406 #
1407 # Send all messages to the Director,
1408 # mount messages also are sent to the email address
1409 #
1410 Messages {
1411   Name = Standard
1412   director = rufus-dir = all
1413   operator = root = mount
1414 }
1415 \end{lstlisting}
1416 \normalsize