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