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}
11 \index[general]{General}
12 \addcontentsline{toc}{subsection}{General}
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.
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
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:
34 \ilink{Storage}{StorageResource} -- to define the name of the
37 \ilink{Director}{DirectorResource1} -- to define the Director's
38 name and his access password.
40 \ilink{Device}{DeviceResource} -- to define the
41 characteristics of your storage device (tape drive).
43 \ilink{Messages}{_ChapterStart15} -- to define where error and
44 information messages are to be sent.
47 \subsection*{Storage Resource}
48 \label{StorageResource}
49 \index[general]{Resource!Storage}
50 \index[general]{Storage Resource}
51 \addcontentsline{toc}{subsection}{Storage Resource}
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.
59 \item [Name = \lt{}Storage-Daemon-Name\gt{}]
61 Specifies the Name of the Storage daemon. This directive is required.
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
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.
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.
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.
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.
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:
120 SDAddresses = { ip = {
121 addr = 1.2.3.4; port = 1205; }
123 addr = 1.2.3.4; port = http; }
136 addr = 201:220:222::2
139 addr = bluedot.thun.net
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.
153 Using this directive, you can replace both the SDPort and SDAddress
154 directives shown below.
156 \item [SDPort = \lt{}port-number\gt{}]
158 Specifies port number on which the Storage daemon listens for Director
159 connections. The default is 9103.
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).
171 The following is a typical Storage daemon Storage definition.
176 # "Global" Storage daemon configuration specifications appear
177 # under the Storage resource.
180 Name = "Storage daemon"
182 WorkingDirectory = "~/bacula/working"
183 Pid Directory = "~/bacula/working"
188 \subsection*{Director Resource}
189 \label{DirectorResource1}
190 \index[general]{Director Resource}
191 \index[general]{Resource!Director}
192 \addcontentsline{toc}{subsection}{Director Resource}
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.
201 \item [Name = \lt{}Director-Name\gt{}]
203 Specifies the Name of the Director allowed to connect to the Storage daemon.
204 This directive is required.
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.
211 \item [Monitor = \lt{}yes|no\gt{}]
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
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
224 The following is an example of a valid Director resource definition:
230 Password = my_secret_password
235 \label{DeviceResource}
236 \subsection*{Device Resource}
237 \index[general]{Resource!Device}
238 \index[general]{Device Resource}
239 \addcontentsline{toc}{subsection}{Device Resource}
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.
248 \item [Name = {\it Device-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
257 \ilink{Device directive}{StorageResource2} in its Storage
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.
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.
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.
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.
305 The Archive Device directive is required.
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.
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.
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.
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.
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.
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:
366 Changer Command = "/path/mtx-changer %c %o %S %a %d"
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}.
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.
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
396 An example of the use of this command to print Tape Alerts in the Job report
401 Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
406 and an example output when there is a problem could be:
410 bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface
411 between tape drive and initiator.
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}.
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.
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.
449 Please note that if you want to set your changer wait time to
450 10 minutes, you must specify:
453 Maximum Changer Wait = 600
456 This directive will not accept qualifiers (such as "minutes").
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.
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.
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
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.
489 For File storage, this directive is ignored. For a FIFO storage device, you
490 must set this to {\bf No}.
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
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}
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
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.
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.
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).
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.
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.
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}.
567 For example, suppose you want a fixed block size of 100K bytes, then you
573 Minimum block size = 100K
574 Maximum block size = 100K
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.
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:
591 Minimum block size = 64K
592 Maximum blocksize = 200K
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.
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).
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.
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
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.
644 Default setting for Fast Forward Space File is {\bf Yes}.
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.
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.
670 \item [TWO EOF = {\it Yes|No}]
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.
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.
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.
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.
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.
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
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
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.
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
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.
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
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.
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.
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.
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
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.
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.
808 Otherwise, it is left on the hard disk.
810 It is ignored for tape and FIFO devices.
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)}
820 All the directives in this section are implemented only in
821 Bacula version 1.37 and later.
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.
833 \item [Mount Point = {\it directory}]
834 \index[sd]{Mount Point }
835 Directory where the device can be mounted.
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
843 Most frequently, you will define it as follows:
847 Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
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
857 Most frequently, you will define it as follows:
861 Unmount Command = "/bin/umount %m"
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.
872 For a DVD, you will most frequently specify the Bacula supplied {\bf
873 dvd-writepart} script as follows:
877 Write Part Command = "/path/dvd-writepart %e %a %v"
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.
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.
895 For a DVD, you will most frequently specify the Bacula supplied {\bf
896 dvd-freespace} script as follows:
900 Free Space Command = "/path/dvd-freespace %a"
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.
912 If you do not set it, Bacula will expect there is always free space on the
917 \label{AutochangerRes}
918 \label{AutochangerResource1}
919 \input{autochangerres}
921 \subsection*{Capabilities}
922 \index[general]{Capabilities}
923 \addcontentsline{toc}{subsection}{Capabilities}
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
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.
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.
950 \subsection*{Messages Resource}
951 \label{MessagesResource1}
952 \index[general]{Resource!Messages}
953 \index[general]{Messages Resource}
954 \addcontentsline{toc}{subsection}{Messages Resource}
956 For a description of the Messages Resource, please see the
957 \ilink{Messages Resource}{_ChapterStart15} Chapter of this
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}
966 A example Storage Daemon configuration file might be the following:
971 # Default Bacula Storage Daemon Configuration file
973 # For Bacula release 1.37.2 (07 July 2005) -- gentoo 1.4.16
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.
981 Storage { # definition of myself
984 WorkingDirectory = "$HOME/bacula/bin/working"
985 Pid Directory = "$HOME/bacula/bin/working"
986 Maximum Concurrent Jobs = 20
989 # List Directors who are permitted to contact Storage daemon
993 Password = "ZF9Ctf5PQoWCPkmR3s4atCB0usUPg+vWWyIo2VS5ti6k"
996 # Restricted Director, used by tray-monitor to get the
997 # status of the storage daemon
1001 Password = "9usxgc307dMbe7jbD16v0PXlhD64UVasIDD0DH2WAujcDsc6"
1005 # Devices supported by this Storage daemon
1006 # To connect, the Director's bacula-dir.conf must have the
1007 # same Name and MediaType.
1013 Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a %d"
1014 Changer Device = /dev/sg0
1020 Media Type = DLT-8000
1021 Archive Device = /dev/nst0
1022 AutomaticMount = yes; # when device opened, read it
1024 RemovableMedia = yes;
1027 Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
1033 Media Type = DLT-8000
1034 Archive Device = /dev/nst1
1035 AutomaticMount = yes; # when device opened, read it
1037 RemovableMedia = yes;
1040 Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
1045 Media Type = DLT8000
1046 Archive Device = /dev/nst0
1047 AutomaticMount = yes; # when device opened, read it
1049 RemovableMedia = yes;
1053 # Media Type = DDS-2
1054 # Archive Device = /dev/nst0
1055 # AutomaticMount = yes; # when device opened, read it
1057 # RemovableMedia = yes;
1061 # Media Type = Floppy
1062 # Archive Device = /mnt/floppy
1063 # RemovableMedia = yes;
1064 # Random Access = Yes;
1065 # AutomaticMount = yes; # when device opened, read it
1069 # Name = FileStorage
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;
1079 # Name = "NEC ND-1300A"
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;
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"
1097 # A very old Exabyte with no end of media detection
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
1106 # RemovableMedia = yes;
1109 # Send all messages to the Director,
1110 # mount messages also are sent to the email address
1114 director = rufus-dir = all
1115 operator = root = mount