Bacula Enterprise Backup for VMware


Bacula Enterprise Backup is a complete backup solution for organization to protect their VMware vSphere, Hyper-V, Xen, KVM and Proxmox environments allowing to store backups on-premises, off-site and in the cloud.

The product provides all the features modern data centers require to protect running workloads: full, differential, incremental, and virtual-full backup and data recovery capabilities as well as deduplication, REST API, cloud native integration, and many others. Bacula's backups can be stored on-premises (disks, NAS, SAN, tapes), off-site and in the cloud (AWS S3, Azure, Google Cloud and Oracle Cloud).

In addition to provide protection for VMware vSphere, Microsoft Hyper-V, etc. environments, the product also supports a good number of database platforms (MS-SQL, MySQL, PostgreSQL, Oracle, SAP and HANA, just to mention some). Bacula Enterprise Edition is highly flexible, in that it is equally effective for protecting physical, virtual and cloud IT infrastructures.


A complete list of features provided by Bacula Enterprise Backup Edition can be found in this page.



Bacula Enterprise Backup is composed by five main components:

  • Bacula Director - is the "brain" inside Bacula's architecture. For example, it runs all backup, restore, and verify operations, as well as well as backups scheduling and files recovery.
  • Bacula Console - is the program used by administrators to comunicate with the Director and the user interface is provided in three versions: graphical (simplest program run in a shell window), text (good option if scripts are used) and via web (BWeb is the most complete interface).
  • Bacula Client - is the Bacula client service (File Daemon) that must be installed on each machine to protect.
  • Bacula Storage - is the service that runs as daemon installed on machines equipped with backup devices responsible for reading and writing to storage media.
  • Catalog - maintains file indexes and volumes databases for all files backed up. It contains all info related to volumes used, jobs performed and saved files allowing an efficient restore process. Bacula supports three databases platforms: MySQL, PostgreSQL and SQLite (recommended for test environments only).



Supported OSs

Bacula Enterprise Backup software supports most Linux distributions (RHEL, SUSE, Debian, Ubuntu), Windows, MacOS X, AIX or Solaris.

The software is available and certified for the following operating systems:



Bacula Enterprise Backup for VMware

Because Bacula Enterprise Backup supports several platforms and provides plenty of features to protect all business types, this article is mainly focused on backup for VMware.

Bacula Enterprise Backup for VMware can be deployed on Debian Squeeze and RHEL/CentOS platforms and it works over a SAN (FC/ISCSI) or via Network Block Device (NBD).


Bacula performs image-level backups (snapshots technology) and takes benefit of the Changed Block Tracking (CBT) technology to backup only changed blocks from the initial full backup. This way optimizes not only the backup but saves space in the backup repository storage with a limited load on the network.


Main backup features

Bacula Enterprise Backup for VMware provides several features to protect your workloads, and main features can be summarized as follows:

  • VMware backup features - backups are performed at image-level (Full, Differential and Incremental) supporting the VSS technology to quiesce VSS-based applications to keep application backups consistent. Backups can be compressed, deduplicated and encrypted to provide best performance optimizing efficiency and security. VMDK files can be restored to alternate directory and granular restores of Active Directory, Exchange, SharePoint, MS-SQL, and many others applications objects are supported. Backups can be stored on many locations, such as local disks, NAS, SAN, tapes, cloud and off-site.
  • File Level Restore (FLR) - it can be perfomed from any VMs and file systems (Linux, Windows, LVM, EXT3/4, etc.) supported by VMware. FLR works over SAN or via NBD and can be performed via Web interface for an easier management or using the text interface especially useful if scripts are used.
  • Rapid File-Level Recovery - files can be located and restored quickly across physical and virtual environments, to apps and folders directly from VM backups with no need to restore the entire VM first.
  • Verification of the integrity and consistency - VM backups are verified and recovery operations are performed to ensure the integrity and the recoverability of backups avoiding issues due to corrupted backups or disk errors.
  • Global Endpoint Deduplication - data are optimized at block level storing the new block efficiently saving space in the used storage and network utilization.
  • Progressive Virtual Full - allows to save resources on the client side while consolidating incremental backups taking data from the local storage and build the full locally.
  • Backup to cloud - the S3 and Azure Bacula tools allow the administrators to store backups in the cloud taking advantage of the security and flexibility offered by these platforms optimizing costs. This feature provides also a DR environment in case of failures occured in production.


Install Bacula Backup for VMware on CentOS 7

Bacula Enterprise for VMware can be installed on Debian Squeeze and RHEL/CentOS platforms and requires an active subscription to access the download area. The following gives an overview of installation.


Configure the yum repository

To install the product on CentOS 7, a yum repository must be configured to perform the installation. To proceed, you need to import first the two GPG keys signature located in the root of the download area.

Download the GPG keys in your CentOS server and run the import with the following commands:

# rpm --import BaculaSystems-Public-Signature.asc
# rpm --import BaculaSystems-Public-Signature-08-2017.asc


Once the keys have been imported, add the following entries to /etc/yum.repos.d/Bacula-Enterprise-Edition.repo to download the rpm files needed to install the software. The correct baseurl value is provided by Bacula once the subscription will be activated.

# vi /etc/yum.repos.d/Bacula-Enterprise-Edition.repo

name=Red Hat Enterprise - Bacula - Enterprise



Install Bacula Enterprise Backup

First install the recommended PostgreSQL database for Bacula Enterprise with the command:

# yum install postgresql-server


Initialize the database and set the auto-start at boot:

# postgresql-setup initdb
# systemctl enable postgresql.service


When the database has been initialized, install Bacula software using the command:

# yum install bacula-enterprise-postgresql


Start the PostgreSQL database.

# systemctl start postgresql.service


Next step is the creation of the database granting the correct ownership.

# su - postgres
> /opt/bacula/scripts/create_postgresql_database
> /opt/bacula/scripts/make_postgresql_tables
> /opt/bacula/scripts/grant_postgresql_privileges
> exit


Launch the Bacula services.

# systemctl start bacula-fd.service
# systemctl start bacula-sd.service
# systemctl start bacula-dir.service


Open the required TCP ports 9101, 9102, and 9103 in the firewall with the following commands:

# firewall-cmd --permanent --add-port=9101/tcp
# firewall-cmd --permanent --add-port=9102/tcp
# firewall-cmd --permanent --add-port=9103/tcp


Since SELinux may cause some issues, check if SELinux is enabled in your system. Edit the /etc/selinux/config file to disable it if needed.

# sestatus
# vi /etc/selinux/config


To disable SELinux, change the SELINUX entry in the /etc/selinux/config file as follows:



Save and reboot your system. Once rebooted, check the SElinux status once again. This time the feature has been disabled successfully.

# sestatus


Run the following test to check if the system works as expected.

# sudo -u bacula /opt/bacula/bin/bconsole


Enter the following commands:

* run job=BackupCatalog
* messages
* status dir
* quit


If no errors are reported, the system is working properly.


Install BWeb

BWeb is the web interface used to manage Bacula Enterprise.

To install the web interface using yum, edit the /etc/yum.repos.d/bacula-enterprise.repo file and add the following entry since it is required another URL:

# vi /etc/yum.repos.d/bacula-enterprise.repo

name=Red Hat Enterprise - BWeb Management Suite

name=Red Hat Enterprise - Bacula Systems dag for BWeb


Install the BWeb component with the following command:

# yum install bacula-enterprise-bweb


Finalize the installation running the command:

# /opt/bweb/bin/


Set BWeb to auto-start during boot and start the service.

# systemctl enable bweb.service
# systemctl start bweb.service


Because BWeb is accessible through port 9180, you need to open such port in the system's firewall.

# firewall-cmd --permanent --add-port=9180/tcp


Now access the web console by entering the address http://IP_Bacula_Server:9180. It is recommended to use Firefox as browser. Check if the listed parameters are correct then click Save at the bottom of the screen to save the configuration.


Now test the configuration in the Configuration > Configure BWeb section.


Click Check BWeb configuration at the bottom of the screen.


The check result reports missing packages and errors.



Install vSphere packages

To perform the backup for VMware infrastructures, you need to install the correct RPM packages. Packages can be easily installed using yum but you need to specify the correct repository in your system. Edit the /etc/yum.repos.d/bacula-enterprise.repo file and add the following entry:

# vi  /etc/yum.repos.d/bacula-enterprise.repo

name=Red Hat Enterprise - Bacula Systems vSphere


Install the required packages needed to ensure that the Bacula Enterprise Edition version is compatible with the vSphere Plugin.

# yum install bacula-enterprise-vsphere*



BWeb vSphere Integration

To integrate VMware with BWeb, you need to install the VMware Perl SDK package. Download the .GZ package in your system and extract the files. 

# tar -xzvf VMware-vSphere-Perl-SDK-6.7-0-8156551.x86_64.tar.gz


Once the files has been extracted, enter the created directory and run the following commands to install the VMware Perl SDK:

# cd vmware-vsphere-cli-distrib
# /


Accept the EULA by typing yes when prompted then press Enter.


If missing dependencies required by viperl are detected, install all required packages.


When all dependencies have been fixed, the VMware Perl SDK installs successfully.


Now run the following command to retrieve the vCenter thumbprint needed in the plugin configuration:

# /opt/bacula/bin/vsphere-ctl thumbprint <IP_vCenter>


Edit the /opt/bacula/etc/vsphere_global.conf file end enter the details of your vCenter or ESXi host. As thumbprint, enter the value obtained from previous step.

# vi /opt/bacula/etc/vsphere_global.conf


Test the vSphere plugin by running this command. You should see the list of virtual machines running in the vCenter.

# /opt/bacula/bin/vsphere-ctl update


Now to enable the VMware Integration support, the viperl libraries must be installed in the system. From the previously extracted directory vmware-vsphere-cli-distrib, copy the files included in the lib/VMware/share/VMware folder to a perl include path.

# cp vmware-vsphere-cli-distrib/lib/VMware/share/VMware/* /usr/local/share/perl5/


Before protecting your vSphere environment, you need to configure your backup infrastructure. Access the web console's dashboard go to Configuration > Configure Bacula to access the configuration area and start configuring the product. From this section you can define your backup environment: backup jobs, backup repositories, backup policies, etc.


Bacula Enterprise Backup provides so many features and capabilities to protect and secure IT infrastructures that even the most demanding administrator can find the product complete.

Bacula Enterprise Backup is available to download as 30-day trial with documentation and example user test scenarios.