Filippo Zanardo's Blog

to blog or not to blog

XenServer Backup with Bacula VM director and web interface

with 2 comments

Ok guys now it’s time to put the director on a virtual machine, usually i use debian but u can use whatever distro you like, with mysql-server and apache2 installed.

It’s simply in xenserver create a Debian vm as long you install also linux pack, just make new vm from debian template 🙂

Next install some packages needed for bacula and bweb (web interface that i use with bacula).
Run this command:

apt-get install apache2 mysql-server mysql-client libmysqlclient15-dev php5-mysql php5-mysql

This packages install mysql-server apache2 and php5, make sure you have make and some compiler cause i will compile bacula, or simply install this:

apt-get install build-essential

ok now we have quiet done with prerequisites, we can go to the bacula sourceforge page and copy the direct link from download page, and execute:

wget http://downloads.sourceforge.net/project/bacula/bacula/5.0.0/bacula-5.0.0.tar.gz?use_mirror=sunet

also donwload bacula gui:

wget http://downloads.sourceforge.net/project/bacula/bacula/5.0.0/bacula-gui-5.0.0.tar.gz?use_mirror=sunet

ok now extract bacula with the command:

tar -xzvf bacula-5.0.0.tar.gz

enter the bacula folder and configure for compiling using:

./configure –sysconfdir=/etc/bacula –with-scriptdir=/etc/bacula/scripts –with-smtp-host=localhost –with-mysql –with-tcp-wrappers –enable-smartalloc

after configuration’s finished launch this command:

make
make install

Compile the information needed by bacula database prompted and we are ready.

u can check the state of bacula using bconsole use the command:

/etc/bacula/bconsole

ok now go back 1 folder and extract bacula gui, go into this folder/bweb, and run this command needed by bweb, or check INSTALL file:

apt-get install libgd-graph-perl libhtml-template-perl libexpect-perl \
libdbd-mysql-perl libdbd-pg-perl libdbi-perl \
libdate-calc-perl libtime-modules-perl

now install with this command:

perl Makefile.PL
make install

copy the bweb perl program to your cgi location

mkdir -m 755 /usr/lib/cgi-bin/bweb
install -m 755 -o root -g root bweb/cgi/*.pl /usr/lib/cgi-bin/bweb

get a config file, if you want to use an other place edit lib/Bweb.pm

echo ‘$VAR1 = { template_dir => “/usr/share/bweb/tpl” };’ > /etc/bacula/bweb.conf
chown www-data /etc/bacula/bweb.conf

copy the bweb template file

mkdir -p /usr/share/bweb/tpl/en
install -m 644 -o root -g root bweb/lang/en/tpl/*.tpl /usr/share/bweb/tpl/en

copy the bweb graphics elements (bweb elements must reside in /bweb)

mkdir /var/www/bweb
install -m 644 -o root -g root bweb/html/*.{js,png,css,gif,ico,html} /var/www/bweb

done, reload your apachewith ” /etc/init.d/apache2 reload” and you can finally browse at http://yourip/bweb
and insert information needed by bweb for the configuration file.

Ok now part one is done, we only need to configure our director to talk with the other daemon, and the one we installed on xen server host machine, open the file /etc/bacula/bacula-dir.conf and add this line for the storage daemon:

# Definition of DDS tape storage device
Storage {
Name = Tape
Address = x.x.x.x # N.B. Use a fully qualified name here
SDPort = 9103
Password = “yourpassword” # password for Storage daemon
Device = ULTRIUM # must be same as Device in Storage daemon
Media Type = ULTRIUM # must be same as MediaType in Storage daemon
}

remember to put the same name device, and media type specified in bacula-sd.conf in the xenserver host machine.

For the file daemon:

Client {
Name = f10-64-build-fd
Address = 10.0.0.14
FDPort = 9102
Catalog = MyCatalog
Password = “pippo” # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Name must be the same that the one specified in bacula-fd.conf on xenserver host machine.

Restart bacula-director with “/etc/bacula/bacula restart” You can check the status of the connection using bconsole (/etc/bacula/bconsole) type st in the console and type 4 for the status of all components, if no error message show you configure well and u can begin to create a pool and a backup job.

Read the documentation about bacula for setting up the job, or maybe later i will blog about that.

Comments for help!
Cheers

Advertisements

Written by pipposan

February 16, 2010 at 17:57

2 Responses

Subscribe to comments with RSS.

  1. I tried this yesterday on Xenserver 5.5 update 2 with a LTO4 SAS tape drive, and a suse 11 enterprise guest vm. Everything looks good until you start a backup from the guest vm to the tape drive. After writing 1 – 2GB to the tape the networking bridge stops forwarding (cannot conenct to any guests). The bridge does start forwarding again after a few minutes with the backup job showing timed out writing to the SD. Nothing obvious in the logs!

    brwb

    April 10, 2010 at 09:15

    • What version of bacula do you use?
      Linux Firewall is off?
      tcp wrappers is compiled in bacula?

      pipposan

      April 13, 2010 at 10:00


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: