Storage Resource

In general, the properties specified under the Storage resource define global properties of the Storage daemon. Each Storage daemon configuration file must have one and only one Storage resource definition.

Name

Name = <Storage-Daemon-Name> Specifies the Name of the Storage daemon. This directive is required.

Working Directory

Working Directory = <Directory> ** This directive is mandatory and specifies a directory in which the Storage daemon may put its status files. This directory should be used only by **Bacula, but may be shared by other Bacula daemons provided the names given to each daemon are unique. This directive is required.

Pid Directory

Pid Directory = <Directory> This directive is mandatory and specifies a directory in which the Storage daemon may put its process Id file. The process Id file is used to shutdown Bacula and to prevent multiple copies of from running simultaneously. This directive is required. Standard shell expansion of the PidDirectory is done when the configuration file is read so that values such as $HOME will be properly expanded.

Dedup Directory

Dedup Directory = <Directory> This directive is mandatory when using Global Endpoint Deduplication feature, and specifies a directory in which the Storage daemon may put data block files for all devices of the type dedup. The Dedup Directory can be very large after some point, we advise you to use a logical volume manager to be able to extend the filesystem when needed with new disks.

Dedup Index Directory

Dedup Index Directory = <Directory> This directive is optional and specifies a directory in which the Storage daemon may put its index files for all devices of the type dedup.

Encryption Command

Encryption Command = <command> The command specifies an external program that must provide the encryption keys for the volumes. This is related to the Volume Encryption directive in Device resource. More information can be found in the Volume Encryption chapter.

Heartbeat Interval

Heartbeat Interval = <time-interval> This directive defines an interval of time in seconds. When the Storage daemon is waiting for the operator to mount a tape, each time interval, it will send a heartbeat signal to the File daemon. The default interval is 300s. This feature is particularly useful if you have a router that does not follow Internet standards and times out a valid connection after a short duration despite the fact that keepalive is set. This usually results in a broken pipe error message.

Client Connect Wait

Client Connect Wait = <time-interval> This directive defines an interval of time in seconds that the Storage daemon will wait for a Client (the File daemon) to connect. The default is 30 minutes. Be aware that the longer the Storage daemon waits for a Client, the more resources will be tied up.

Maximum Concurrent Jobs

Maximum Concurrent Jobs = <number> where <number> is the maximum number of Jobs that may run concurrently. The default is set to 20, but you may set it to a larger number. Each contact from the Director (e.g. status request, job start request) is considered as a Job, so if you want to be able to do a status request in the console at the same time as a Job is running, you will need to set this value greater than 1. To run simultaneous Jobs, you will need to set a number of other directives in the Director’s configuration file. Which ones you set depend on what you want, but you will almost certainly need to set the Maximum Concurrent Jobs in the Storage resource in the Director’s configuration file and possibly those in the Job and Client resources.

SDAddresses

SDAddresses = <IP-address-specification> Specify the ports and addresses on which the Storage daemon will listen for Director connections. Normally, the default is sufficient and you do not need to specify this directive. Probably the simplest way to explain how this directive works is to show an example:

SDAddresses = { ip = {
    addr = 1.2.3.4; port = 1205; }
    ipv4 = {
        addr = 1.2.3.4; port = http; }
    ipv6 = {
        addr = 1.2.3.4;
        port = 1205;
    }
    ip = {
        addr = 1.2.3.4
        port = 1205
    }
    ip = {
        addr = 1.2.3.4
    }
    ip = {
        addr = 201:220:222::2
    }
    ip = {
        addr = bluedot.thun.net
    }
}

where ip, ip4, ip6, addr, and port are all keywords.

Note

The address can be specified as either a dotted quadruple, or IPv6 colon notation, or as a symbolic name (only in the ip specification). Also, port can be specified as a number or as the mnemonic value from the /etc/services file. If a port is not specified, the default will be used. If an ip section is specified, the resolution can be made either by IPv4 or IPv6. If ip4 is specified, then only IPv4 resolutions will be permitted, and likewise with ip6.

Using this directive, you can replace both the SDPort and SDAddress directives shown below.

SD Port

SDPort = <port-number> Specifies port number on which the Storage daemon listens for Director connections. The default is 9103.

SDAddress

SDAddress = <IP-Address> This directive is optional, and if it is specified, it will cause the Storage daemon server (for Director and File daemon connections) to bind to the specified IP-Address, which is either a domain name or an IP address specified as a dotted quadruple. If this directive is not specified, the Storage Daemon will bind to any available address (the default).

FIPS Require

FIPS Require = <yes|no> Require FIPS cryptographic module to start the daemon.

CommCompression

CommCompression = <yes|no> If the two Bacula components (DIR, FD, SD, bconsole) have the comm line compression enabled, the line compression will be enabled. The default value is yes.

In many cases, the volume of data transmitted across the communications line can be reduced by a factor of three when this directive is enabled. In the case that the compression is not effective, Bacula turns it off on a record by record basis.

If you are backing up data that is already compressed the comm line compression will not be effective, and you are likely to end up with an average compression ratio that is very small. In this case, Bacula reports None in the Job report.

Note

TLS Directives in the Storage resource of bacula-sd.conf

Bacula has built-in network encryption code to provide secure network transport similar to that offered by stunnel or ssh . The Bacula TLS encryption applies only to information transmitted across a network, so the data written to Volumes by the Storage daemon is not encrypted by this code.

For more information how to enable TLS encryption, click here.

The following is a typical Storage daemon Storage definition.

#
# "Global" Storage daemon configuration specifications appear
# under the Storage resource.
#
Storage {
    Name = "bacula-sd"
    Address = baculasd.example.com
    WorkingDirectory = "/opt/bacula/working"
    PidDirectory = "/opt/bacula/working"
}

Go back to Storage Daemon Resource Types page.

Go back to the Technical Reference for Storage Daemon.

Go back to the main Technical Reference page.