Bacula

Posted by Scott Laird Fri, 06 Aug 2004 03:38:22 GMT

Backups suck. They always have, they always will, it’s just the nature of the beast. The big problem is that open-source backup solutions tend to suck really bad, and decent commercial solutions obey Joel’s pricing law, where no enterprise software costs between $3,000 and $100,000. At Internap, we paid well over $100k to Legato for their buggy, inflexible backup software, and we paid a similar amount of money for backup hardware. That’s what it took to do good backups of several hundred machines per night. On a smaller scale, people seem to have decent luck with Arkeia, but I’m not all that convinced that it’s much cheaper then Legato or Veritas once you pile on dozens of clients.

I’ve wanted a decent open-source solution for years. In ‘97 or so, I used Amanda for a while, but it had a kind of bizarre approach to tapes, weird security needs, and it didn’t scale very well. It still seems to be under some sort of active development, but I was using version 2.4.0 in the late ’90s, and the current release is 2.4.4p3; draw your own conclusions. I’ve been spending around one afternoon per year since then looking for something free that can handle a couple dozen mixed Linux and Windows systems, and can back up to a mix of tape and disk, and I’ve come away empty-handed every time.

Until today. Somehow, Bacula slipped past me without my noticing it. Besides the catchy name and motto (“It comes by night and sucks the vital essence from your computers”), it seems to have the features that I’m looking for. It understands tape changers as well as filesystem backups. It’s network based with clients for Windows and Unix (and sort of OS X). It looks like it does an okay job at backup parallelism. It doesn’t have plugins for hot backups of popular databases, but most of the time, it’s easier to dump the database to a file and then back up the file, at least when you’re dealing with smallish databases.

It’s currently at version 1.34, although Debian seems stuck at 1.32f4 for some reason. I’ll be doing some testing tonight at home, since I’ve been without a comprehensive backup solution for years, but I’m feeling pretty good about this.

Having said that, it still lacks a few things that I’d consider rather useful:

  • It can’t migrate backups between storage devices. No staging from disk to tape, for instance.
  • It doesn’t do anything with optical disks. I’ve had good luck with doing full backups of important data to CDs or DVDs; it’d be nice to integrate that into one central backup system. This is better for smaller-scale setups, though.
  • It can’t stripe a single backup across multiple drives.
  • It’s not clear if it can interleave backups onto a single tape. When you’re backing up slow hosts over a big network, this can be critical. For LAN usage with cheap tape drives, it’s less critical.

They maintain a to-do list online. I haven’t really looked into their security history; there are a couple worrisome comments about sscanf in their to-do list, but it can’t be any worse then Legato Networker–it had holes that you could drive a bus through along with a few really fun failure modes. We triggered a great DDoS on ourselves one night in 2000 with every single backup client in the company sending 64-byte UDP packets to our backup server as fast as they could transmit them. We really loved them for that.

Update (8/6/2004): I let it rip last night. First, its UI needs work. Most configuration is done via text files, which is okay, but monitoring and management can be done via either a bad CLI without command-completion, or via a bad GUI which is basically just the CLI in a window with a scrollbar. Windows backups don’t include open files *or* the registry. Mac backups don’t include resource forks, but I knew that going into it. Finally, I’m not getting any email notification of success or failure, but that might be a mail problem on my backup server. All in all, it’s still better then most of the free solutions that I’ve looked at, but still not 100% there. It’s usable if you only care about Unix systems and you’re willing to spend a bit of time learning and scripting. It’s not usable if you’re looking for an out-of-the-box system that’ll work with Windows.

A friend suggested that I look at Box Backup. It doesn’t do tapes at all, which is a bit of a shortcoming in my mind, but it looks like it might be better for pure-Unix backups. On the other hand, it’s designed to do continuous backups, not nightly snapshots, which is probably a better design, if you can handle the load.

I should really write the backup strategy guide that I keep meaning to write. Leave a comment if you’re interested.

Posted in  | Tags , ,  | 7 comments

Comments

  1. Boris Mann said 1 day later:

    Keep meaning to drop you a line – have been reading your stuff for about 6 months or so now.

    We are just finishing a backup overhaul at work, and we chose Bacula (and by we I mean our great sysadmin). We contracted some of the developers of Bacula to help out with the implementation, and it seems to be working out well.

    I’m just fiddling with some of the home computers (2x OS X and one Linux) right now to lock down a good backup strategy. With 9GB of pictures, it’s starting to get a little ugly. So yes, a backup strategy guid would be good! :p

  2. Steltek said 23 days later:

    Just a few comments to this article:

    • Bacula can be used to do backups to optical media like CD-Rs or DVD-Rs, check the Bacula mailing list for more information (I know of at least one person who uses that and who provided scripts there)
    • Bacula can do staging to disk and then destage to tape (called spooling in the Bacula manual). You’re right in that it cannot currently migrate jobs between volumes but that’s on the ToDo list.
    • Striping to multiple tape drives: Same thing here, this is currently not available but being worked on. (c.f. item 3 here http://news.gmane.org/gmane.comp.sysutils.backup.bacula.general/cutoff=8527)
    • It can interleave backups to tape but that is a mostly untested feature. The preferred way is to use the previously mentioned spooling (ie, spool a certain amount to the backup server’s HDD and then flush it to tape) which, in combination with running concurrent jobs greatly reduces backup time (and prevents ‘shoe-shining’ even for single jobs).
    • It does send e-mail notifications (and you can extend it to use other notification mechanisms)

    That said, there are some points that still do need work. I personally don’t mind the UI (it works quite well once you’re used to it) but of course it’s not allowing for a quick’n’easy setup. The Win32 client not backing up the registry can be countered by running an export of the latter and backing that up, the only way around the ‘cannot access already open files’ is unfortunately some commercial software (StBernard’s Open File Manager). This issue has come up several times already but nobody seems to have the knowledge or resources to get the FD to back up open files.

    That said, Bacula is a very active open source project and always looking for input. Everybody willing to contribute is welcome (if you know a way to backup open files under Windows I bet the Bacula devels would be glad to hear from you).

  3. Steltek said 23 days later:

    Got the link above wrong, it should be: http://article.gmane.org/gmane.comp.sysutils.backup.bacula.general/8502

  4. Scott Laird said 23 days later:

    Well, I have to say that I’m not very fond of Bacula’s UI, at least for the version that I have installed. It does command-completion, sort of, but it’s actually completing filenames in /etc/bacula, not bacula CLI commands. That’s not very useful, even if it is a step in the right direction.

    On the other hand, the windows open-file problem is more excusable. Open File Manager has been the traditional solution to that problem for years, so it’s hard to count it against Bacula.

    All in all, I’m pretty happy with the framework, I just wish that it was further along. It seems to be headed in the right direction, it just needs more time. And that’s okay with me–it’s usable now, and more work will just make it better.

  5. Steltek said 24 days later:

    BTW: When you refer to the GUI, do you mean the gnome console (gconsole) or the wxWidgets one (wx-console)? The latter is a little newer and at least offers some graphical help for doing restores and looks promising (it’s rather new and still very far from complete).

  6. Dan Langille said over 2 years later:

    FYI: Design of a GUI is now underway. This will be part of a Bacula project, not an external entity.

  7. Dan Langille said over 2 years later:

    Bacula can now migrate jobs.

    Yes, you can interleave jobs, but it is not something I would do. I would rather spool to disk, then stream to tape. Much better for restores.

Comments are disabled