Bacula

Bacula 是一组计算机程序,允许系统管理员跨不同类型的计算机网络管理计算机数据的备份、恢复和验证。(Bacula is a set of computer programs that permits the system administrator to manage backup, recovery, and verification of computer data across a network of computers of different kinds.)

Github星跟蹤圖

简介

Bacula 是一组计算机程序,允许系统管理员跨不同类型的计算机网络管理计算机数据的备份、恢复和验证。Bacula 还可以完全在一台计算机上运行,并可以备份到各种类型的媒体,包括磁带和磁盘。

从技术上讲,它是一个基于网络客户机服务器的备份程序。Bacula 相对容易使用和有效,同时提供了许多先进的存储管理功能,使查找和恢复丢失或损坏的文件变得容易。由于其模块化设计,Bacula 可以从小型的单个计算机系统扩展到由位于大型网络上的数百台计算机组成的系统。

谁需要 Bacula?

如果您目前正在使用 tar、dump 或 bru 等程序来备份计算机数据,并且希望使用网络解决方案、更灵活的功能或目录服务,那么 Bacula 很可能提供您需要的附加功能。但是,如果您是 Unix 系统的新手,或者没有使用复杂备份包的经验, Bacula 项目不建议使用 Bacula,因为它比 tar 或 dump 更难设置和使用。

如果你希望 Bacula 表现得像上面提到的简单程序并且写在你放入驱动器的任何磁带上,那么你会发现使用 Bacula 很困难。 Bacula 旨在按照您指定的规则保护您的数据,这意味着仅重复使用磁带作为最后的手段。可以“强制” Bacula 写入驱动器中的任何磁带,但使用更简单的程序进行此类操作更容易,更有效。

如果您想要一个可以写入多个卷的备份程序(即不受磁带驱动器容量限制),Bacula 最有可能满足您的需求。此外,相当多的 Bacula 用户报告说 Bacula 比其他同等程序更易于设置和使用。

如果您目前正在使用 Legato Networker 等复杂的商业软件包。 ARCserveIT、Arkeia 或 PerfectBackup+,您可能对 Bacula 感兴趣,它提供了许多相同的功能,并且是 GNU Version 2 软件许可下的免费软件。

Bacula 组件或服务

Bacula 由以下五个主要组件或服务组成:Director、Console、File、Storage 和 Monitor 服务。

Bacula Director

Bacula Director 服务是监督所有备份、恢复、验证和归档操作的程序。系统管理员使用 Bacula Director 来安排备份和恢复文件。有关详细信息,请参阅 Bacula 开发人员指南中的 Director Services 守护程序设计文档。 Director 在后台运行作为守护进程(或服务)。

Bacula Console(控制台)

Bacula控制台服务是允许管理员或用户与 Bacula Director 通信的程序。目前, Bacula 控制台有三个版本:基于文本的控制台界面、基于 QT 的界面和 wxWidgets 图形界面。第一个也是最简单的是在 shell 窗口(即 TTY 接口)中运行Console 程序。大多数系统管理员会发现这完全足够。第二个版本是一个 GNOME GUI 界面,它远非完整,但功能很强大,因为它具有 shell 控制台的大部分功能。第三个版本是带有交互式文件恢复的 wxWidgets GUI。它还具有 shell 控制台的大部分功能,允许使用 tab 完成命令,并为您提供有关所键入命令的即时帮助。有关详细信息,请参阅 Bacula 控制台设计文档_ConsoleChapter。

Bacula File

Bacula File 服务(也称为客户端程序)是安装在要备份的计算机上的软件程序。它特定于运行它的操作系统,并负责在 Director 请求时提供文件属性和数据。文件服务还负责在恢复操作期间还原文件属性和数据的文件系统相关部分。有关更多详细信息,请参阅 Bacula 开发人员指南中的文件服务守护程序设计文档。该程序作为要备份的计算机上的守护程序运行。除 Unix/Linux 文件守护程序外,还有一个 Windows 文件守护程序(通常以二进制格式分发)。 Windows 文件守护程序在当前 Windows 版本(NT、2000、XP、2003,可能还有 Me 和 98)上运行。

Bacula 存储

Bacula 存储服务由执行文件属性和数据存储和恢复到物理备份媒体或卷的软件程序组成。换句话说,Storage 守护程序负责读取和写入磁带(或其他存储介质,例如文件)。有关更多详细信息,请参阅 Bacula 开发人员指南中的 Storage Services 后台程序设计文档。 Storage 服务在具有备份设备(通常是磁带驱动器)的计算机上作为守护程序运行。

Catalog 目录服务

Catalog 服务由负责维护备份的所有文件的文件索引和卷数据库的软件程序组成。 Catalog 服务允许系统管理员或用户快速定位和恢复任何所需文件。Catalog 目录服务将 Bacula 与 tar 和 bru 之类的简单备份程序区分开来,因为目录保留了所有使用的卷,所有作业运行和所有文件保存的记录,允许有效的恢复和卷管理。 Bacula 目前支持三种不同的数据库:MySQL、PostgreSQL 和 SQLite,在构建 Bacula 时必须选择其中之一。

目前支持的三个 SQL 数据库(MySQL、PostgreSQL 或 SQLite)提供了许多功能,包括快速索引、任意查询和安全性。虽然 Bacula 项目计划支持其他主要的 SQL 数据库,但目前的 Bacula 实现仅与 MySQL、PostgreSQL 和 SQLite 接口。有关技术和移植详细信息,请参阅开发人员记录的目录服务设计文档。

MySQL 和 PostgreSQL 的软件包可用于多种操作系统。或者,从源代码安装非常简单,有关详细信息,请参阅本文档的安装和配置 MySQL Chapter 章节。有关 MySQL 的更多信息,请访问:www.mysql.com 。或者请参阅本文档的安装和配置PostgreSQL Chapter 章节以获取详细信息。有关 PostgreSQL 的更多信息,请参阅:www.postgresql.org

配置和构建 SQLite 更加容易。有关配置 SQLite 的详细信息,请参阅本文档的“安装和配置SQLiteChapter”一章。

Bacula Monitor

Bacula Monitor 服务是一个程序,允许管理员或用户观察 Bacula Director、Bacula File Daemons 和 Bacula Storage Daemons 的当前状态。目前,只有 GTK+ 版本可用,它与 GNOME、KDE 或任何支持 FreeDesktop.org 系统托盘标准的窗口管理器一起使用。

要成功执行保存或还原,必须配置并运行以下四个守护程序:Director守护程序,File守护程序,Storage守护程序和Catalog服务(MySQL,PostgreSQL或SQLite)。

Bacula 配置

为了让 Bacula 了解您的系统,您想要备份的客户端以及如何备份,您必须创建包含资源(或对象)的许多配置文件。以下是整体情况:

本文档中使用的约定

Bacula 处于进化状态,因此,本手册并不总是与代码一致。如果本手册中的项目前面带有星号(*),则表示未实现特定功能。如果前面带有加号(+),则表示可以部分实现该功能。

如果您正在阅读本软件的发行版本中提供的本手册,则上述段落也适用。如果您正在阅读本手册的在线版本,请访问 http://www.bacula.org,请注意此版本描述了当前正在开发的版本(在CVS中),其中可能包含不在发布的版本。同样,它通常略微落后于代码。

系统要求

  • Bacula 已在 OpenSuSE Linux、FreeBSD 和 Solaris 系统上编译和运行。
  • 它需要 GNU C++ 版本 2.95 或更高版本才能编译。您可以尝试使用其他编译器和旧版本,但您可以自己动手。我们已经使用 GNU C++ 版本 4.1.3 成功编译和使用了 Bacula。注意,一般来说 GNU C++ 是 GNU C 的独立包(例如 RPM),因此您需要加载它们。在 Red Hat 系统上,C++ 编译器是 gcc-c++ rpm 包的一部分。
  • Bacula 可能需要某些第三方软件包。除了 MySQL 和 PostgreSQL 之外,它们都可以在 depkgs 和 depkgs1 版本中找到。但是,大多数当前的 Linux 和 FreeBSD 系统都将这些作为系统包提供。
  • Bacula 支持的每个数据库的最低版本如下:
    • MySQL 4.1
    • PostgreSQL 7.4
    • SQLite 3
  • 如果要构建 Win32 二进制文件,请参阅 src/win32 目录中的 README.mingw32 文件。我们在 Linux 上交叉编译 Win32 版本。我们提供了构建 Win32 版本的文档,但由于其复杂性,如果您想自己构建它,那么您几乎可以自己动手。
  • Bacula 需要很好地实现 pthread 才能工作。某些 BSD 系统不是这种情况。
  • 源代码在编写时考虑了可移植性,并且主要与 POSIX 兼容。因此,移植到任何 POSIX 兼容的操作系统应该相对容易。
  • GNOME 控制台程序是在 GNOME 2.x 下开发和测试的。不再支持 GNOME 1.4。
  • wxWidgets 控制台程序是使用最新的稳定的 ANSI 或 Unicode 版本的 wxWidgets(2.6.1) 开发和测试的。它适用于Windows 和 GTK 开发和测试的。它适用于 Windows 和 GTK+-2.x 版本的 wxWidgets,也适用于 wxWidgets 支持的其他平台。
  • Tray Monitor 程序是为 GTK+-2.x 开发的。它需要 GNOME 小于或等于 2.2,KDE 大于或等于 3.1 或任何支持 FreeDesktop 系统托盘标准的窗口管理器http://www.freedesktop.org/Standards/systemtray-spec。
  • 如果要启用命令行编辑和历史记录,则需要使用/usr/include/termcap.h并加载termcap或ncurses库(libtermcap-devel或ncurses-devel)。
  • 如果要使用 DVD 作为备份媒体,则需要下载 dvd+ rw-tools 5.21.4.10.8 http://fy.chalmers.se/appro/linux/DVD+RW/,应用其中的补丁主源树的 patches 目录使这些工具与 Bacula 兼容,然后编译并安装它们。 dvd+rw-tools 版本 6.1 还有一个补丁,我们希望补丁集成到更高版本中。除非您确定它包含补丁,否则请勿使用您的发行版提供的 dvd+rw 工具。没有补丁的 DVD+rw-tools 将不适用于 Bacula。由于可靠性低,不建议将 DVD 介质用于严重或重要的备份。

原文:https://www.bacula.org/what-is-bacula/

(Second edition: vz revised at 2019.09.18)

概覽

去到頂部