FOSS Project Spotlight: Bareos, a Cross-Network, Open-Source Backup Solution
Bareos (Backup Archiving Recovery Open Sourced) is a cross-network, open-source backup solution that preserves, archives and recovers data from all major operating systems. The Bareos project started 2010 as a Bacula fork and is now being developed under the AGPLv3 license.
The client/server-based backup solution is actually a set of computer programs (Figure 1) that communicate over the network: the Bareos Director (BD), one or more Storage Dæmons (SD) and the File Dæmons (FD). Due to this modular design, Bareos is scalable—from single computer systems (where all components run on one machine) to large infrastructures with hundreds of computers (even in different geographies).
Figure 1. A Typical Bareos Setup: Director (with Database), File Dæmon(s), Storage Dæmon(s) and Backup Media
The director is the central control unit for all other dæmons. It manages the database (catalog), the connected clients, the file sets (they define which data Bareos should back up), the configuration of optional plugins, before and after jobs (programs to be executed before or after a backup job), the storage and media pool, schedules and the backup jobs. Bareos Director runs as a dæmon.
The catalog maintains a record of all backup jobs, saved files and volumes used. Current Bareos versions support PostgreSQL, MySQL and SQLite, with PostgreSQL being the preferred database back end.
The File Dæmon (FD) must be installed on every client machine. It is responsible for the backup as well as the restore process. The FD receives the director's instructions, executes them and transmits the data to the Bareos Storage Dæmon. Bareos offers pre-packed file dæmons for many popular operating systems, such as Linux, FreeBSD, AIX, HP-UX, Solaris, Windows and macOS. Like the director, the FD runs as a dæmon in the background.
The Storage Dæmon (SD) receives data from one or more File Dæmons (at the director's request). It stores the data (together with the file attributes) on the configured backup medium. Bareos supports various types of backup media, as shown in Figure 1, including disks, tape drives and even cloud storage solutions. During the restore process, the SD is responsible for sending the correct data back to the FD(s). The Storage Dæmon runs as a dæmon on the machine handling the backup device(s).
A backup job defines what to back up (
FileSet directive for the client), when
to back up (schedule) and where to back up (for example, on a disk, tape, etc.).
Bareos is quite flexible, and you can mix different directives. So you can have
different job definitions (resources), backing up different machines, but using
the same schedule, the same
FileSet and even the same backup medium.
The schedule describes what kind of backup (full, incremental or differential) runs on different days of the week or month. If more than one backup job relies on the same schedule, it's possible to set the job priority and tell Bareos which job is supposed to run first. Additionally, there are restore, verify and admin jobs.
bconsole and WebUI
The Bareos configuration is stored in text files. In order to communicate with
the director, administrators (and other authorized users) can use the
command-line tool Bareos Console (
bconsole). The shell interface allows you to
query Bareos' state, determine the status of a particular job, examine the
contents of the database and run jobs manually.
You can run
bconsole basically anywhere on your network—it doesn't have to
be the BD machine. Since Bareos Console is a shell interface, it also works via
The Bareos WebUI (Figure 2) has been part of the backup solution since version 15.2.0. The multilingual web interface can access multiple directors and catalogs. Its main purpose is to monitor the backup software, but it's also possible to start, cancel or rerun jobs. You can use the WebUI to restore files (even to a different client) and browse through a file tree of backup jobs.
Figure 2. The Bareos WebUI allows users to monitor the backup solution as well as restore their data.
Bareos values security and safety and supports transport encryption as well as data encryption. The software uses TLS (Transport Layer Security) for all network connections. On top of that, it's possible to encrypt and sign the data on the File Dæmon before the backup is sent to the Storage Dæmon. Encryption and signing are implemented using RSA private keys coupled with self-signed X.509 certificates (PKI, Public Key Infrastructure).
You can extend Bareos' functionality by adding plugins to the director, FD and SD. For example, there are LDAP plugins, plugins to back up and restore various database back ends (PGSQL, MySQL, MSSQL), extensions for GlusterFS and Ceph filesystem, and a VMware plugin for agentless backups of virtual machines running on VMware vSphere. The bpipe plugin is a generic pipe program that simply transmits the data from a specified program to Bareos and back.
Documentation and Support
For more information on Bareos, please have a look at the official documentation. There are also two mailing lists: bareos-users (for users, for help from the community) and bareos-devel (for developers, for discussions on how to modify the Bareos code). The source code is available in the Bareos GitHub repository.
The Bareos download servers offer packages for all major operating systems (stable Bareos version only). Subscription customers can get access to repositories with maintenance and bug-fix releases. The company Bareos GmbH & Co. KG (located in Cologne, Germany) also offers professional support.
—Heike Jurzik and Maik Aussendorf