Storage Troubleshooting

I Change Recycling, Retention Periods, or File Sizes in My Pool Resource and They Still Don’t Work.

The different variables associated with a Pool are defined in the Pool Resource, but are actually read by Bacula from the Catalog database.

When Bacula creates a Media record (Volume), it uses many default values from the Pool record. If you subsequently change the Pool record, the new values will be used as a default for the next Volume that is created, but if you want the new values to apply to existing Volumes, you must manually update the Volume Catalog entry using the update volume command in the Console program.

I Have Configured Compression On, But None of My Files Are Compressed. Why?

There are two kinds of compression. One is tape compression. This is done by the tape drive hardware, and you either enable or disable it with system tools such as mt. This compression works independently of Bacula, and when it is enabled, you should not use the Bacula software compression.

Bacula also has software compression code in the File daemons, which you normally need to enable only when backing up to file Volumes.

Bacula is Asking for a New Tape After 2 GB of Data but My Tape Holds 33 GB. Why?

There are several reasons why Bacula will request a new tape.

  • There is an I/O error on the tape. Bacula prints an error message and requests a new tape. Bacula does not attempt to continue writing after an I/O error.

  • Bacula encounters and end of medium on the tape. This is not always distinguishable from an I/O error.

  • You have specifically set some size limitation on the tape. For example the Maximum Volume Bytes or Maximum Volume Files in the Director’s Pool resource, or Maximum Volume Size in the Storage daemon’s Device resource.

Why Does Bacula Ignore the MaxVolumeSize Set in My Pool?

The MaxVolumeSize that Bacula uses comes from the Media record, so most likely you changed your Pool, which is used as the default for creating Media records, after you created your Volume. Check what is in the Media record by doing:

llist Volume=xxx

If it doesn’t have the right value, you can use:

update Volume=xxx

to change it.

How Do I Test Wild-card Expressions against a File of Data?

bwild is a simple program that will allow you to test wild-card expressions against a file of data.

bwild is found in the src/tools directory and it is normally installed with your system binaries. To run it, use:

Usage: bwild [-d debug_level] -f <data-file>
    -f specify file of data to be matched
    -l suppress line numbers
    -n print lines that do not match
    -? print this message.

The <data-file> is a filename that contains lines of data to be matched (or not) against one or more patterns. When the program is run, it will prompt you for a wild-card pattern, then apply it one line at a time against the data in the file. Each line that matches will be printed preceded by its line number. You will then be prompted again for another pattern.

Enter an empty line for a pattern to terminate the program. You can print only lines that do not match by using the -n option, and you can suppress printing of line numbers with the -l option.

This program can be useful for testing wild expressions to be applied against a list of filenames.

How Do I Test Wild-card Regular against a File of Data?

bregex is a simple program that will allow you to test regular expressions against a file of data. This can be useful because the regex libraries on most systems differ, and in addition, regex expressions can be complicated.

bregex is found in the src/tools directory and it is normally installed with your system binaries. To run it, use:

Usage: bregex [-d debug_level] -f <data-file>
    -f specify file of data to be matched
    -l suppress line numbers
    -n print lines that do not match
    -? print this message.

The <data-file> is a filename that contains lines of data to be matched (or not) against one or more patterns. When the program is run, it will prompt you for a regular expression pattern, then apply it one line at a time against the data in the file. Each line that matches will be printed preceded by its line number. You will then be prompted again for another pattern.

Enter an empty line for a pattern to terminate the program. You can print only lines that do not match by using the -n option, and you can suppress printing of line numbers with the -l option.

This program can be useful for testing regex expressions to be applied against a list of filenames.

Go back to the Bacula Enterprise Troubleshooting chapter.