|Developer(s)||Kern Sibbald, and team|
|Stable release||5.2.13 / February 20, 2013|
|License||Affero General Public License v3.0|
Bacula is an open source, enterprise level computer backup system for heterogeneous networks. It is designed to automate backup tasks that had often required intervention from a systems administrator or computer operator.
Bacula supports Linux, UNIX, Windows, and Mac OS X backup clients, and a range of professional backup devices including tape libraries. Administrators and operators can configure the system via a command line console, GUI or web interface; its back-end is a catalog of information stored by MySQL, PostgreSQL, or SQLite.
Bacula is a set of computer programs for managing backup, recovery, and verification of computer data across a network—providing a backup solution for mixed operating system environments.
Bacula is the collective work of many developers, including Kern Sibbald, and its current release has been built upon ten years of development. It is open source and available without fees for both commercial and non-commercial application, with respect to the GPL version 2 license with exceptions to permit linking with OpenSSL and distributing Windows binaries.
According to project information published on SourceForge, since April 2002, Bacula has over 1.3 million downloads, which makes it the most downloaded open source backup program.
Bacula's features include:
- TCP/IP - client–server communication uses standard ports and services instead of RPC for NFS, CIFS, etc.; this eases firewall administration and network security
- CRAM-MD5 - configurable client–server authentication
- GZIP/LZO - client-side compression to reduce network bandwidth consumption; this runs separate from hardware compression done by the backup device
- TLS - network communication encryption
- MD5/SHA - verify file integrity
- CRC - verify data block integrity
- PKI - backup data encryption
- NDMP - enterprise version plugin
- Native NDMP support is implemented in the director of the Bareos open source fork.
- POSIX ACL - needed to restore Windows NT ACE's and Samba servers
- Unicode/UTF-8 - cross-platform filenames
- VSS - calls Microsoft's snapshot service
- LVM - pre-script setup for Linux/UNIX snapshot
- LFS - backup files larger than 2GiB
- raw - backup devices without a filesystem
- pooling - allocates backup volumes according to job needs and retention configuration
- spooling - writes backup data to spool until target backup medium is allocated so jobs can continue uninterrupted
- media-spanning - such as spanning tapes
- multi-streaming - write multiple, simultaneous data streams to the same medium
- ANSI & EBCDIC - IBM compatibility
- Barcodes - reading tape barcodes in libraries
- autoloaders - virtually every tape autoloader available (called autochangers in Bacula)
- most tape drives, including DDS, DLT, SDLT, LTO-1-5
- Starting at LTO-4 and upward, LTO hardware encryption is supported by the Bareos fork
The client software, executed by a "file daemon" running on a Bacula client, supports many operating systems,  including:
- Linux - most major distributions, including: CentOS, Debian, Fedora, Gentoo, Mandriva, OpenSUSE, Red Hat and Ubuntu.
- FreeBSD - all released versions
- Windows (File daemon supported on all 32 and 64 bit Windows OSes)
- Mac OS X
A Bacula installation contains three kinds of daemons to execute backup and restore functionality:
- Director Daemon
- manages other daemons, queries and updates catalog, interfaces with operator front-ends, automates backup schedules
- Storage Daemon
- makes system calls to drive backup media, responds to read/write requests from Director, and receives backup/restore data from file daemon
- File Daemon
- negotiates client-side communication, encryption and compression, opens file handles to access a client's data
- Bacula Console
- the control interface from which the user can enter commands to operate Bacula tasks. the console is a command line interface.
- Bat (Bacula Administrative Tool) Console
- a GUI interface from which the user can enter commands to operate Bacula tasks.
- Tray Monitor
- is a GUI that can be installed on any desktop to monitor the Bacula operations.
- a web interface that allows systems management views of all the Bacula backups. It also permits most all operations that can be done with the console.
These daemons can run on independent hosts but typical installations consist of three kinds of Bacula hosts:
- Client machines
- the machines that contain the files to be backed up
- Storage machines
- machines that contain the media used to store the backups
- Backup Servers
- that orchestrate the backup processes
The Director manages everything so is called a "backup server"; the client and storage daemons run as its subordinates and have no direct control of the back up process. While this structure suggests that the three daemons run on three different machines, an equally valid setup is to run all three daemons on the machine that controls the backup process and backup additional machines that have just a file daemon installed. It is also possible to mount remote files and storage resources into the Director's filesystem over SMB or NFS, however, the Bacula developers discourage this in favor of having a File daemon installed on each machine to be backed up. In practice, however, the Director and Storage Daemon are often run on one machine (often referred to as the Bacula Server). The File Daemon is then run on each machine to be backed up (including the Bacula server—because its catalog is dumped as SQL).
Backup data can be stored on various media, including tape, and disk.
Bacula stores backup data in an open and documented yet unique volume format; there are Bacula standalone tools to read/write the backup data (bls, bcopy, bscan, bextract), these tools are not compatible with other Unix backup utilities such as tar or dump.
By default, Bacula's differential and incremental backups are based on system time stamps. Consequently, if you move files into an existing directory or move a whole directory into the backup FileSet after a full backup, those files may not be backed up by an incremental save because they may have old dates. You must explicitly update the date/time stamp on all moved files. Bacula versions starting with 3.0 or later support Accurate backup, which is an option that addresses this issue.
|January 2000||Project started|
|April 14, 2002||First release to SourceForge.net (version 1.16)|
|June 29, 2006||Release 1.38.11 (Final version 1 release)|
|January 2007||Release 2.0.0|
|September 2007||Release 2.2.3|
|June 2008||Release 2.4.0|
|April 2009||Release 3.0.0|
|January 2010||Release 5.0.0|
|September 2010||Release 5.0.3|
|January 2012||Release 5.2.4|
|February 2012||Release 5.2.6|
|June 2012||Release 5.2.9|
|February 2013||Release 5.2.13|
- Storz, Philipp (2013). Bacula. Open Source Press. ISBN 978-3-95539-002-0.
- Preston, W. Curtis (2007). Backup & Recovery. O'Reilly Media. ISBN 0-596-10246-1. Retrieved 10 May 2010. Chapter 7 covers Bacula
- Enterprise Networking article
- Server Watch article
- O'Reilly SysAdmin interview article
- Deduplication article
- "Bacula Copyright, Trademark, and Licenses". Bacula.org. Retrieved 2012-06-09.
- Bacula Enterprise Plugins
- "Supported Operating Systems". Bacula.org. Retrieved 2012-06-09.
- "New Features in 3.0.0". Bacula.org. Retrieved 2012-06-09.
- "Bacula fork Bareos".
- "Better Backups". ADMIN Magazine 17/2013. Retrieved 2013-11-26.