一、Bacula简介

    Bacula是一款开源的跨平台企业级备份软件。它采用C/S架构,可以实现对数据备份、恢复及校验;支持完全备份、增量备份和差异备份;支持多种操作系统和文件系统(例如windows和linux系统);支持定时备份,无需人工干预;支持终端命令控制,更加灵活;支持正则表达式,可以对备份文件进行更严格的匹配;支持MD5和SHA1签名校验;支持压缩备份和断点续传功能。

wKioL1drQBiCkYRjAAIRoszzPQs814.png-wh_50

1.1 Bacula的组成

    Bacula主要由以下六部份组成:

 wKioL1drPWWT80TfAAHmP0LHyfw072.png-wh_50

Bacula Director:

    全局设置。负责备份的验证、运行、计划任务、备份和恢复的各种定义和执行操作。配置文件是bacula-dir.conf。以下简称主控端。

Bacula Console:

    终端管理控制台。通过该控制台连接Bacula Director查看或执行系统的备份、恢复操作。配置文件是bconsole.conf。以下简称console端。

Bacula File:

    需要备份的机器。安装在需要备份数据的机器上的守护进程,在备份数据时,它负责把文件传出,在恢复数据时负责接收数据并执行恢复操作。配置文件为bacula-fd.conf。以下简称客户端。

Bacula Storage:

    备份文件的存放介质。负责将数据备份到存储介质上,而在数据恢复时,负责将数据从存储介质中传送出去。其配置文件为bacula-sd.conf。以下简称介质端。

Bacula Monitor:

    备份进程的监控。显示进程的备份或恢复时的状态信息。以下简称监控端。

Catalog:备份信息元数据。用于记录系统运行的状态信息。

wKiom1drPa7iVcTUAAC6SLwPnck482.png-wh_50 

1.2 Bacula的恢复流程

    通过上图可知,系统的恢复流程如下:

1、通过Console连接到Director端,开始恢复操作。

2、Director端从自己的Catalog中取出备份的记录信息,同时对存储端SD和客户端FD的任务进行协调。

3、客户端FD验证Director的操作许可,验证通过后连接到存储端SD。

4、客户端FD根据Director发出的请求去连接SD,将FD端的数据按恢复要求重新存储到SD端或FD端。

二、Bacula安装

2.1 系统环境

CentOS7最小化安装

主机名
IP地址
系统版本
角色
bacula-test
192.168.17.100
Centos7
DIR、SD、Console

192.168.17.98
Windows10

FD

2.2 系统更新

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean
yum makecache
yum update

2.3 禁用selinux

vim /etc/selinux/config

2.4 下载安装包

wget http://www.bacula.com.br/wp-content/uploads/2016/01/bacula-7.4.0.tar.gz -P /root
tar zxvf bacula-7.4.0.tar.gz

2.5 安装相关软件包

yum install gcc-c++ readline-devel zlib-devel lzo-devel libacl-devel \
mt-st mtx postfix libssl-dev mariadb-devel mariadb-server

2.6 编译安装

cd bacula
./configure  --disable-conio --bindir=/usr/bin --sbindir=/usr/sbin \
--with-scriptdir=/usr/libexec/bacula/ \
 --with-working-dir=/var/spool/bacula/ \
--with-logdir=/var/log --enable-smartalloc --with-mysql \
--with-hostname=192.168.17.100 --sysconfdir=/etc/bacula --with-systemd
make
make install
make install-autostart

完成后检查相关文件和目录是否存在。可以参考编译的参数查找对应的文件和目录,如下图所示。

wKioL1drPyDwD9koAAD0px3cO-U655.png-wh_50 

2.7 MYSQL数据库配置

    数据库MariaDB通过yum的方式安装,版本是5.5.47,以下的数据库设置针对该版本,其它版本的数据库请对照修改。

vim /etc/my.cnf

wKiom1drP1Lzj5fcAACmWSBKajM900.png-wh_50

mysql_secure_installation
mysql -u root -p
create database bacula;
set password for bacula@'%'=password('password'); 
set password for bacula@'localhost'=password('password'); 
grant all privileges on bacula.* to ‘bacula’@’%’;
grant all privileges on bacula.* to ‘bacula’@’localhost’;
select user,host,password from mysql.user;

wKiom1drP3mSn4SMAAD_AJiNc3E642.png-wh_50

/usr/libexec/bacula/grant_mysql_privileges -p
/usr/libexec/bacula/create_mysql_database -p
/usr/libexec/bacula/make_mysql_tables -p
use bacula;
show tables;

wKioL1drP7bDDspFAABCQc5DV90974.png-wh_50