"It comes in the night and sucks the essence from your computers" — This quote from Bacula's lead developer Kern Sibbald drastically explains what happens if you don't have a working backup solution. For doing their backups many people still rely on tools like tar and dump. This is fine if you have only a few machines and your backup strategy is rather simple. However, in more complex situations, things start to get out of control. Race conditions create inconsistent backups, redundant backup archives shorten the available storage space and for restoring a single file from two weeks ago, a user (or the sysadmin) has to go through a series of complicated steps.
This is where a modern backup solution like Bacula suddenly looks like Heaven on earth. Bacula is network-based, which means that all communication is done via TCP connections, even if the backup strategy involves only a single computer. Bacula consists of three major parts:
The first decision to make when installing Bacula is to select a database backend. Bacula stores the information about which files have been stored when and where in its catalog, an ordinary SQL database. At the moment PostgreSQL, MySQL and SQLite are supported as database backends.
After choosing the backend, all daemons have to be configured. Most work has to be done for the director, however the documentation helps here a lot and gives detailed examples. Sometimes it can be difficult to implement a backup strategy from paper form into a working Bacula configuration, especially when it comes to writing to multiple tapes. Bacula supports all widely used tape drives by directly accessing the device in /dev/.
Unfortunately, tape changing can be a painful job. The tape selection algorithm is far from intuitive and using five different states for a medium certainly doesn't help here. So if you are writing your backups on tape be prepared to often get the message that the currently inserted tape is unacceptable for some reason. Such messages are sent by mail, and in case that a local interception is needed, the recipient can be another mailbox than for the rest.
Once you've gotten around all the quirks that make your life difficult in the beginning, Bacula does its job pretty well. The backup speed is on the fast side, as the various daemons generated little overhead. Together with the flexible options to create backup schedules and select files to be stored this means that Bacula does indeed deliver a scalable backup solution.
Restoring data is very comfortable, either with the console client or the GUI version. Bacula will assist you to find the files in the version you are looking for. Restoring can be done by less privileged clients which means that user's can retrieve their own files without having to bother the administrator.
On the security side, Bacula can be protected by a TLS layer against several attack types proprietary products have problems with (PDF). However, encrypted storage is equally important, which Bacula currently does not support. A successful fund-raising campaign lead to the creation of a patch for data encryption, which is expected to be included in future versions.
But if you don't need data encryption you can use Bacula right now without any doubts. You will need to invest some time to get everything going, but afterwards you will be rewarded with a scalable and stable backup solution.