🦇Bacula - An introduction🦇

🦇Bacula - An introduction🦇#

496 words | 7 min read


Good reliable backups are critical to reducing system down-time, loss of data, productivity and real $$$ (or €€€ or any other currency). There is many a story of companies going out of business and people losing jobs due to bad or non-existent backups. And for many businesses (e.g. FDA-regulated organizations), having backups - for several years too! - is a legal and regulatory requirement.

While my personal need for a backup solution isn’t so critical, or the lack of backups likely to be so catastrophic as for a commercial organization, I still wanted to set up a mechanism to be able to recover my data in the event of a disk failure. It also gives me peace of mind, knowing that I have a backup to fall back on.

Having a good backup (and recovery) strategy is key. And a backup tool is only a part of the overall solution. Irrespective of the backup tool used, you should have a good strategy for backups that you test regularly, and refine. Discussing or defining a backup strategy is beyond the scope of this series of posts. We will instead talk mostly about the tool - Bacula.

If you’re here, chances that you have already heard about Bacula. Bacula is a free software that can backup and more importantly, recover the backed up data when required.

I had a few features that I was looking for, and both Amanda and Bacula checked pretty much every box:

  • Free (VERY important!)

  • Reliable (Again, VERY important!)

  • Stable and time-tested

  • Secure

  • Centralized configuration and control

  • Scheduled unattended backups

  • Manual backups on demand

  • Disk-based backup (not just tape-based or cloud-based)

  • Can backup on various OS’ and Filesystems

    • Linux

    • FreeBSD

    • Windows (including VSS protection)

  • Online community for help and troubleshooting (this checkbox wasn’t fully checked for me)

  • Reuse/preserve backup media automatically based on backup retention policy

  • Encrypted Backups

  • Encrypted data in transit

  • Full, differential and incremental backups

  • Powerful command line tool(s)

  • GUI (nice to have)

  • Scalable to any amount of data or computers to be backed up (why not?)

After several days of intense reading (without understanding much) and extensive hair-pulling and teeth-gnashing, I finally settled on (not settled for) Bacula.

The journey has included - as is the case with most self-taught stuff - blood, toil, tears and sweat (well…ok. Fine! No blood), but very rewarding in the end.

In the next few posts, I will try and document the steps needed for a simple backup system using Bacula. The learning curve is steep - because Bacula has so many features, and is so flexible and powerful. But once it’s set up properly, you can pretty much forget about it.

My setup has 3 computers. The OS does not really matter, but I prefer Linux for a lot of this. All the computers will be running Ubuntu (but if you choose to follow along, you can use whatever distribution you prefer).

  • One computer will be the main computer for running the various components of Bacula.

  • A second computer is a Web server running Apache

  • The 3rd computer is a Database Server that runs MariaDB

Let’s get going with Bacula…