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