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