Thursday, August 31, 2006

Bacula: Failed to connect to Storage daemon

I loaded up bconsole this morning to check the status of the full backups that were suppose to run last night and found out that all of the backups had failed. The error message: "Failed to connect to Storage daemon"

I discovered that bacula-sd (storage daemon) was only listening to 127.0.0.1. Then I changed it to the full qualified domain for the server, and the client file daemon still failed to connect to the storage daemon (form WinXP boxes). Then I changed it to the ip address of the server and everything started to work properly.

Config files I changed:

bacula-dir.conf:
  • Storage directive
    • Address #changed to bacula-sd server ip address

bacula-sd.conf:
  • Storage directive
    • SDAddress #changed to bacula-sd server ip address

Labels:

Tuesday, August 29, 2006

Open Source Network Backup Software: Bacula

After getting tired of maintaining and updating a custom Python based backup network script that used smbclient to backing up WinXP machines using samba, I decided to look into open source solutions. I found two high-end open source network based backup solutions that handle WinXP, Mac OS X, and Linux machines:
AMANDA has it's advantages, including paid enterprise support through Zmanda, which maybe be important to people in the business world.

The main reason why I choose bacula is because AMANDA uses samba for connecting to WinXP clients and I have one pesky WinXP box which came with some high-end biology equipment and therefore the company we bought it from decided to mangle WinXP enough that samba from Linux won't connect to it. And for the fear of bringing down an important piece of biology equipment, I have decided to not mess with that machine more than I need to. Bacula runs a file daemon (a.k.a. 'service' for you Windows users) which gets me past the samba problem. So, if you were looking here for me to tell you which one is better, I really don't know. I haven't tried AMANDA yet.

The other feature that really sold me is the Python scripting ability built into Bacula for extending the backup process.

Bacula seems to work great... Although the big test will be coming in next day to three months. I just finished setting up a bacula server and 7 clients... 6 WinXP clients and 1 Kubuntu client.

Quick overview:
Bacula consists of three daemons:
  1. director (runs the show)
  2. storage (manages storage pools & volumes: disk, tape, DVD, etc.)
  3. file (client side backup daemon/service)
What's confusing about bacula at first is it's concept of 'pools' and 'volumes'. My original thought was that 'pools' and 'volumes' were meant for tape drives and that I would only need one pool with one volume since I wanted to use file based storage on a raid-5 hard drive setup. As it turns out, it is convenient to use different pools for full, incremental, and differential backups. Also, within a pool, by putting multiple volumes (i.e. multiple disk files for it to write the backups to), you can set it up to recycle used volumes after a set amount of time! What does this mean for me... If I have enough hard drive space, it will just reuse the space over and over again. If everything is going well, I won't have to worry about backups. Automation is wonderful! Oh, and it does e-mail me when something goes wrong and there is this 'bconsole' which allows you to trigger backups, check backup status, create new pools/volumes and much much more!

Here is my pool/volume setup:

FullPool:
3 Volumes
28 Day Use
56 Day Expire

IncPool:
12 Volumes
7 Day Use
28 Day Expire

DiffPool:
4 Volumes
13 Day Use
28 Day Expire

Note that I only need a full backup to last a month and I have three volumes, so I should always have two full backups and the third will be recycled.

Here is the key schedule I use in the bacula-dir.conf:

Schedule {
Name = "WeeklyCycle"
Run = Level=Full Pool=FullBackupPool 1st sun at 23:05
Run = Level=Differential Pool=DiffPool 3rd-5th sun at 23:05
Run = Level=Incremental Pool=IncPool mon-sat at 23:05
}

Let me know if you would like me to post additional information.

Labels: