Bacula 是一款开源的跨平台网络备份工具,它提供了基于企业级的客户端/服务器的备份恢复解决方案。通过它,系统管理人员可以对数据进行备份、恢复,以及完整性验证等操作。同时,它还提供了许多高级存储管理功能,使系统管理人员能够很容易发现并恢复丢失的或已经损坏的文件。正因为如此,Bacula 也被誉为最好的开源企业级备份工具。
本Chat将会带来:
- Bacula 总体结构概览。
- 在 Centos 部署安装 Bacula。
- Bacula-Gui(Baculum)安装部署。
- 实战:Bacula 跨平台(Windows,Linux)备份配置。
- Bacula 配置和使用中要注意的坑。
Bacula
是一款开源的跨平台网络备份工具,它提供了基于企业级的客户端/服务器的备份恢复解决方案。通过它,系统管理人员可以对数据进行备份、恢复,以及完整性验证等操作。同时,它还提供了许多高级存储管理功能,使系统管理人员能够很容易发现并恢复丢失的或已经损坏的文件。
正因为如此,Bacula 也被誉为最好的开源企业级备份工具。
Overview
Bacula 由 5 个主要服务构成:Director,Console,File,Storage,and Monitor services。
废话少说,先上一张官网上的结构图
Director
Dir 是 Bacula 的核心,也是整个系统的中心节点,负责管理所有的备份、恢复、验证、归档作业。系统管理员可以使用 Bacula Director 制定备份计划。Director 作为一个服务运行在后台。
Console
管理控制台,用户可以通过这个控制台连接到 Director Daemon 进行管理备份与恢复操作,有三种管理方式:console、 QT 编写的界面和 wxWidgets 的图形界面。
第一种:最易用的 console,大多数系统管理员会发现它完全能满足需求。
第二种:GNOME 图形界面,一个半吊子产品,还没开发完,但是包含了大部分口控制台提供的功能。
第三种:wxWidget GUI,提供交互式的文件恢复。它也包含了 console 的大部分功能,并且实现了tab键自动补全命令,智能提示。(在没有 gui 的 linux,后两种都是扯淡,不过可以在 windows 安装连接到远程 director)
Database-server
(catalog,它不在官方介绍的五大部件里,但是我觉得有必要介绍一下)
恢复目录包括用于维护所有备份文件索引的程序和数据库,它可以使管理员或用户快速定位和恢复受损的文件。恢复目录的引入使得 Bacula 和简单备份程序(tar,bru)区别开来,因为恢复目录维护了一个所有使用卷的记录,所有的计划任务,目标文件,提供高效的还原管理。
catalog支持三种数据库,MysqlSql、PostgreSQL 和 SQLite,前两种必须在编译时指定,推荐使用前两种因为 SQLite 功能太少,性能太差。
File(client)
安装在需要备份数据的机器上的客户端软件。它运行在特定的操作系统上,并且为 director 备份提供可靠的数据和文件信息,client 也负责在目标机器上执行恢复操作。fd 作为一个后台服务运行在 linux 机器上,同样也有 windows 版本。
Storage
sd 是一组程序,负责实际读写存储介质。
Monitor services
(我倒不觉得它是重要部件之一)linux gnome/kde 桌面程序,进程监控端,负责监控 Director Daemon、Storage Daemon 和 File Daemon 的守护进程。
(可有可无,没装图形界面的 linux 安装不了,推荐使用 web 端的监控)
下面我们从一个备份作业理解一下上面这张图,一个作业可以是手动从 console 发起的,也可以是在 dir 的配置文件中配置的 job 自动发起的。
当 dir 收到一个 job 后,会将具体的指令发送给 File server,接下来的文件传输则不再经过 dir,而是由 File server 直接传向 storage。
Installation & Deployment
为什么要用这么大篇幅说安装和部署呢?相信我们都有过这种痛苦的经历,在上手一个新东西的时候,花大量的时间在环境搭建上。
Bacula 可以安装部署在 Linux、Windows 或者是 Mac,这里我们以 Centos6 为例。
准备工作
- 源码,可以在这里得到 http://blog.bacula.org/source-download-center/
需要下载两个包,