RHEV/oVirt Enterprise Bacula Plugin Quick Guide

This Quick Guide presents the Bacula RHEV/oVirt Backup Plugin operational procedures for Enterprise Bacula version 10 and above.

The plugin provides clientless automated Virtual Machines image level backup, restore and granular file-level extraction. It also supports LAN Free backups.

Installation

The Red Hat Virtualization allows 2 different connection modes and both can be used by the Bacula Plugin: OAuth and HTTP Basic Authentication. For more information refer to https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.1/html/rest_api_guide/documents-002_authentication_and_security#authentication.

The Red Hat Virtualization plugin is a File Daemon plugin. It is based on Java SDK, therefore is non-machine dependent and is compatible with any Operative System where the Bacula File Daemon can run and the Java Virtual Machine is available.

Create a yum/apt repo according to the exclusive Enterprise Bacula repository RHEV plugin path, or download and install the package in a machine with a working Bacula Client. E.g.:

rpm -ivh bacula-enterprise-rhv-plugin-10.2.3.el7.x86_64.rpm

The Java Virtual Machine in an 8 version or greater is required and installed as a dependency.

Restart the bacula-fd service in order to load the plugin library.

VM Disks Preparation

In order to allow correct disks download during the backup processes, and due to an existing bug of RHEV (https://bugzilla.redhat.com/show_bug.cgi?id=1538814), the following configurations must be set:

For RHEV 4.1 (Compatible with RHEV 4.2)

Access the RHEV database PostgreSQL console. E.g.:

su postgres
psql -U postgres -d engine
UPDATE vdc_options SET option_value=999999 WHERE option_name='ImageTransferClientTicketValidityInSeconds';
For RHEV 4.2

Access the RHEV/oVirt manager machine shell.

engine-config --set ImageTransferClientTicketValidityInSeconds=999999

Certificate and TrustStore

Still at the Client Machine, generate the truststore that allows the Plugin to connect with the RHVM, as follows:

curl -o /root/rhvm.cer http://ovirtman/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA

Generate a password for the truststore certificate. Replace the Java Home Path if necessary.

keytool -import -alias "rhev truststore" -file /root/rhvm.cer -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/security/cacerts

It will ask for a password, the default value is: “changeit”.

RHEV Backup User

It is possible to use the ‘admin’ user for the plugin, or a user with restricted permissions. Read the referenced whitepaper for more details.

Installation Test

It is possible to use the Bacula Plugin directly to test the prior configurations and even list RHEV datacenters, templates, storage_domains, hosts, disks and others, as in the following example:

java -jar /opt/bacula/lib/rhvPlugin.jar --server=ovirtman --truststore_file=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/security/cacerts --truststore_password=changeit --auth=http --profile=internal --user=admin --password=xxx --operation=list --list_datacenters

Configuration

FileSet Creation

Create a new FileSet. All the Plugin options can be set at the bweb Bacula graphical interface Include – Plugin Options.

This example will backup all VMs from an RHEV Datacenter. The very same configuration is written below for easy copying and pasting.

rhv: server=rhv.example.com password=rhvpass123

It is also possible to select one or more VMs for backup using their name. Multiple plugin configuration lines can be used for different machines selection.

rhv: server=rhv.example.com password=rhvpass123 target_virtualmachine=vmExample

It is possible to exclude a VM disk from backup adding the following directive. Multiple disks ID can be listed between commas (,):

target_exclude_disks=[list_disks]

A regular expression can be used to select multiple VMs by name, and specific VMs can be excluded from backups:

target_virtualmachine_regex=vm* target_exclude_vms=vmname

Fetch the referenced Whitepaper for a full list and description of available backup options.

It is also possible to use all the mentioned Plugin options in a configuration file (e.g. /opt/bacula/etc/rhev.conf):

server=192.168.0.50
user=admin
password=xxx
truststore_file=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/security/cacerts/rhvm.truststore
truststore_password=changeit
target_datacenters=myDatacenter
operation=backup
abort_on_error=0

Just call the configuration file from the bweb FileSet Plugin options.

rhv: config_file=/opt/bacula/etc/rhv.conf

Save the new FileSet.

Job Creation

Create an ordinary Bacula backup Job, associating it to the RHEV machine File Daemon and the newly created FileSet.

Apply changes and run a test backup Job.

Restore

In order to restore a machine directly to RHEV, use the where=/ (origin) restore option and mark the whole VM backup directory for restoration (e.g. @rhev/vmname/).

In order to restore the VM XML configuration and disks to a filesystem, change the where= to the desired restoration directory (e.g. where=/tmp).

File-level Restore

From a restored disk, it is possible to mount it and extract one or several files for granular restore using the guestfish package. E.g.

guestmount -a [image.img] -i --ro [/path/to/mount]

Reference

Red Hat Virtualization Plugin – http://baculasystems.com

Disponível em: pt-brPortuguês (Portuguese (Brazil)) enEnglish esEspañol (Spanish)

Leave a Reply

Close Menu