`
OpenNaive
  • 浏览: 14759 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

笔记:配置Bacula

阅读更多

Bacula主要包括四个配置文件,分别对应Director(dir)、Storage Daemon(sd)、File Daemon(fd)和Console。在bacula-dir.conf文件里记录了Director的各种资源,这是最复杂也是最常用的配置文件,不 论是添加新的fd和sd,还是修改文件集,都需要用到这个配置文件。在bacula-sd.conf和bacula-fd.conf文件中,分别记录了 sd和fd自身的属性,以及登录dir需要的密码等。Console是管理员控制dir的接口,bconsole.conf里记录了dir的ip地址、端 口、密码等。这幅图是从main文档中摘下来的,表明了各个配置文件的内容。

 

1.配置Director

Director的资源类型有很多种,包括:

  • Director-定义Director的名字以及Console登录的密码。每一个bacula-dir.conf文件只能定义一个Director。如果系统里有/dev/random或者bc,bacula会生成一个随机数作为密码,否则密码为空。
  • Job-定义备份/恢复作业,并且关联每个作业都需要用到的Client、FileSet和Schedule资源。 
  • JobDefs-这是可选的资源,可以为Job提供各种默认的资源。
  • Schedule-定义一个Job的运行计划。每个Job有且只有一个Schedule资源。
  • FileSet-定义一个备份的文件集。每个Job有且只有一个FileSet资源。
  • Client-定义需要备份的客户端。每个Job有且只有一个Client资源。
  • Storage-定义Volume会被挂在到哪个物理设备。可以定义多个Storage。
  • Pool-定义一个Volume的集合。大多数用户只需要一个默认的Pool就足够了,但是假如客户端和卷很多,可能就会需要多个Pool资源,可以限制某些作业或客户端使用指定的Volume。
  • Catalog-定义数据库资源,包括数据库名,登录用户名和密码。数据库保存了备份的文件列表和文件所属的卷名。通常情况只需要一个Catalog资源,但是也可以在Director规模很大的情况下定义多个Catalog资源。
  • Messages-定义消息的发送。

虽然Bacula计划在未来支持多个Director,但是现在的版本只支持一个Director,所以bacula-dir.conf只能定义一个Director资源。Director必须有一个Name 来标识,Password 是提供给Console登录用的,必须和bconsole.conf里的Director资源里的Password一致;必须给Director指定一个Messages 资源,用于传递Director产生的和Job无关的信息;Working Directory 用于指定Director存放状态文件的目录,也是必须的;DirPort 用于指定Director监听Console连接请求的端口号,默认是9101;Console的Query命令需要一些封装好的SQL表达式,QueryFile 就指定了这些表达式存放在哪个文件里,但是我在配置文件描述的位置却没有找到query.sql文件,所以当使用Query命令时会提示打不开文件 ;关闭Bacula的脚本需要使用Bacula的进程号,所以在PidDirectory 指定的目录中创建pid文件保存进程号,同时也有防止多个Bacula同时运行的功能;Maximum Concurrent Jobs 定 义了Director可以同时运行多少个作业,默认是1,如果允许多个并行作业,卷的格式会变得更复杂,恢复操作会因为不同作业的块在卷上交替而变得更 慢,为了避免这个问题可以给每个并发的作业分配不同卷,或者使用spooling技术,先暂时写到磁盘上的缓冲区,最后一次性写到卷上("This can be avoided by having each simultaneous job write to a different volume or by using data spooling, which will first spool the data to disk simultaneously, then write one spool file at a time to the volume thus avoiding excessive interleaving of the different job blocks.")。

bacula-dir.conf 写道
Director { # define myself
Name = fubuntu-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/root/bacula/bin/query.sql"
WorkingDirectory = "/root/bacula/bin/working"
PidDirectory = "/root/bacula/bin/working"
Maximum Concurrent Jobs = 1
Password = "/+Zm3xCkDLA8WcsgC6Gnby4rqSz4ikrJ24rh8afDjPTM" # Console password
Messages = Daemon
}

Job定义了一个备份或者恢复作业。每个Job定义都包括一个Name ,作业的类型 ( Type ), 要备份的客户端(Client )和文件集(FileSet ),作业的运行计划(Schedule ),数据存储的位置(Storage ) 等。Type一共有四种,Backup、Restore、Verify和Admin,通常只需要定义一个Restore作业作为原型,由于历史的原因,恢 复作业也要指定文件集,但是现在已经不会被用到了。现在的Bacula每个Job只能使用一个Storage。恢复一个作业要用到Client和 FileSet,所以如果多个Job有相同的Client和FileSet,恢复将不能正常进行,解决的办法是定义多个FileSet,它们的Name必 须不同,但是内容可以一样。除此之外还有很多有用的指令,Enable 可以关闭作业计划的自动执行;Level 和 Schedule是二选一的,一般Level会被Schedule覆盖,增量备份的原理是比较上次备份的时间和文件的修改时间(st_mtime和 st_ctime),因为mv不会修改st_mtime和st_ctime,所以最好使用cp命令保证增量备份正确执行,另外自上一次全量备份以来删除的 文件也会被恢复,和这方面相关的有一个Accurate Mode;Accurate 用于开启Accurate Mode, 这个模式可以精确地知道哪些文件自上一次备份以来被删除或者重命名了,这个模式比较消耗File Daemon的内存,500000个文件需要大约64MB的RAM;Write Bootstrap 指定一个bacula用于写bootstrap的文件,用于恢复系统的状态;Messages指定了这个作业使用的消息资源;Pool 定义这个作业使用的卷池;Priority 定义了作业的优先级,数值越高优先级越低。

bacula-dir.conf 写道
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = localhost.localdomain-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = "/root/bacula/bin/working/%c.bsr"
}


#
# Define the main nightly save backup job
# By default, this job will back up to disk in /tmp
Job {
Name = "BackupClient1"
JobDefs = "DefaultJob"
}

#
# Standard Restore template, to be changed by Console program
# Only one such job is needed for all Jobs/Clients/Storage ...
#
Job {
Name = "RestoreFiles"
Type = Restore
Client=localhost.localdomain-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where = /tmp/bacula-restores
}

Schedule资源定义了Job的运行计划,如果Job没有引用Schedule,那么只能手动运行。Schedule必须有一个Name 作为标识;Run 就 是一个运行计划,每个Schedule可以有多个运行计划,每个运行计划都包括Level、Date-time-specification等,其中时间 的配置比较复杂。Bacula在底层使用bit mask保存Schedule,一共有六种掩码和一个minute域来表示时间,六种掩码分别是hour,day of the month(mday),month,day of the week(wday),week of the month(wom),week of the year(woy)。Schedule会被初始化为每个小时都运行。

bacula-dir.conf 写道
Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 23:05
Run = Differential 2nd-5th sun at 23:05
Run = Incremental mon-sat at 23:05
}

FileSet定义了备份哪些文件以及过滤哪些文件。FileSet必须有一个Name ;如果Ignore FileSet Changes 被设置为no,bacula会监控Include和Exclude,如果它们被修改那么下一次备份会被强制进行全备份,设置为yes则会忽略Include和Exclude的变化;Enable VSS 设置是否需要VSS快照,只有Windows的客户端有效;Include包括需要备份的文件和目录,以及这个文件集需要的签名、压缩等选项,路径只能是绝对路径,每个FileSet可以有多个Include;Exclude 指出哪些文件被过滤;Options 定义了一个Include的选项,包括从中过滤哪些文件、压缩、签名等。

bacula-dir.conf 写道
FileSet {
Name = "Full Set"
Include {
Options {
Compression=GZIP
signature=SHA1
Sparse = yes
}
File = /etc/backup.list
}
Include {
Options {
wildfile = "*.o"
wildfile = "*.exe"
Exclude = yes
}
File = /root/myfile
File = /usr/lib/another_file
}
Exclude {
File = /tmp
}
}

Client资源定义了File Daemon的属性,需要为每一台机器定义一个Client资源。按照惯例,Client需要一个NameAddress 是计算机名,或者是一个IP地址;FD Port 是这个File Daemon的端口号,默认是9102;Catalog 指明此File Daemon使用的数据库资源;Password 是File Daemon与Director建立链接时使用的密码;File Retention 定义了文件信息在数据库的保存时间,如果AutoPrune为yes,bacula会自动清理,但是并不会删除备份数据;Job Retention 定义了作业信息在数据库保留的时间;AutoPrune 定义了是否自动清理过期的文件和作业信息;Maximum Concurrent Jobs 定义了Client能同时运行的作业数。

bacula-dir.conf 写道
Client {
Name = localhost.localdomain-fd
Address = localhost
FDPort = 9102
Catalog = MyCatalog
Password = "PcG4GwVcAkqnu/dJ4XjX3G6UfyUD23Y39NKvrNZEBzti" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Storage资源定义了Director可以使用的Storage Daemon。必须得有NameAddressSD PortPassword由于每个Storage Daemon可以有多个Device资源, Device 表示使用Storage Daemon配置文件中定义的哪一个Device资源。

bacula-dir.conf 写道
Storage {
Name = File
# Do not use "localhost" here
# Address = localhost # N.B. Use a fully qualified name here
Address = 192.168.0.62
SDPort = 9103
Password = "FB5F/cbhqGiaOjhtB8E0AcEbd/XIvK30ZzDWl8l9iBdy"
Device = FileStorage
Media Type = File
}

在试用了Bacula后,一直觉得很奇怪,难道所有的人都使用一个满权限的Console与Directory打交道?原来Bacula的Console 分为三种。默认Console具有所有权限,没有Name,只有一个连接Director的密码;第二种Console有NamePassword , 需要在bacula-dir.conf中为其定义Console资源,并赋予一些权限;第三种和第二种类似,只是Name与某个Client资源相同,这 就可以使用SetIP命令将Client的Address更新为Console的Address,这方便了使用DHCP的用户。可以为Console配置 很多权限控制列表,包括JobACLStorageACLClientACL 等等。

2.配置File Daemon

在File Daemon(也就是Client)的配置文件中,主要包括三种资源:

  • FileDaemon-定义需要备份的客户端自身的属性。 
  • Director-定义连接的Director的名字和密码。
  • Messages-定义消息存放在哪里。

FileDaemon资源首先必须有一个Name 作为标识符;Working Directory 定义了客户端存放状态文件的目录;Pid Directory 定义了存放进程ID的文件的位置,这个文件用于关闭Bacula客户端以及防止多个客户端同时运行;Maximum Concurrent Jobs 定义了能同时运行的作业数,值得注意的是,所有与Director的交互都算作业,包括查询状态等,所以最好将其设为大于1的数,这一点和bacula-dir.conf文件中Director资源的Maximum Concurrent Jobs不同;FDport 定义了客户端监听Director连接的端口号,默认是9102。

bacula-fd.conf 写道
FileDaemon { # this is me
Name = localhost.localdomain-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /root/bacula/bin/working
Pid Directory = /root/bacula/bin/working
Maximum Concurrent Jobs = 20
}

Director资源定义了客户端登陆Director所使用的账号和密码等信息。Name是所要登陆的Director的名字;Password是登陆 需要的密码,必须和bacula-dir.conf文件中对应的Client资源的密码一致;Monitor如果是yes,那么Director只能查询 客户端的状态。

bacula-fr.conf 写道
Director {
Name = localhost.localdomain-dir
Password = "PcG4GwVcAkqnu/dJ4XjX3G6UfyUD23Y39NKvrNZEBzti"
}
 

3.配置Storage Daemon

Storage Daemon可以定义相对比较少的资源,主要包括四种:

  • Storage-定义Storage Daemon的名字等。
  • Director-定义所要登陆的Director名字和密码。
  • Device-定义存储设备的特性。
  • Messages-定义消息存放在哪里。

Storage资源定义了Storage Daemon的全局属性,每个配置文件只有一个Storage资源。必须有NameWorking Directory 定义了状态文件的位置;Pid Directory 定义了进程ID文件的位置;Maximum Concurrent Jobs 定义了并发作业数;SDPort定义了端口号,默认9103。

bacula-sd.conf 写道
Storage { # definition of myself
Name = localhost.localdomain-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/root/bacula/bin/working"
Pid Directory = "/root/bacula/bin/working"
Maximum Concurrent Jobs = 20
}
 

Director资源定义了可以使用Storage Daemon服务的Director Daemon。Name 指出是哪一个Director;Password 是Director要使用此Storage时需要提供的密码,必须和bacula-dir.conf保持一样;Monitor 等于yes表明Director只能查询Storage Daemon的状态。

Device资源定义了此Storage Daemon可以使用的存储设备,由于存储设备的多样性,Device资源的指令很多。Name 是这个Device资源的逻辑名字;Archive Device 是存储设备的物理名字,通常是一个设备文件名,当存储设备是磁盘时也可以是一个目录; Media Type 命名了此设备支持的媒质类型,因为在恢复时Bacula使用这个来选择存储设备所以要小心命名,如果使用的是磁盘设备,每个设备资源有不同的挂载点,必须给它们唯一的Media Type;AlwaysOpen 如 果是yes,那么bacula会始终保持这个设备为打开的状态,如果是no,当所有使用这个设备的作业都完成后,bacula会释放这个资源,可以在 Console使用mount和unmount命令来挂载、卸载设备;RemovableMedia描述这个设备是否支持移动介质;Random Access 描述这个设备是否支持lseek操作,即随机访问;LabelMedia 设置是否自动标注空白media;AutomaticMount 为yes时允许bacula检查设备是否包含一个有标签的卷。

bacula-sd.conf 写道
Device {
Name = FileStorage
Media Type = File
Archive Device = /tmp
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
 

4.配置Console

Console的配置文件是最简单的,通常只需要修改密码。Director资源定义了要连接 的Director Daemon,需要提供此Dird的名字、IP地址、端口号和密码;Console资源是可选的,除非想要修改Console的权限,否则不需要配置这个 资源,这个资源最重要的地方就是访问控制列表。   

分享到:
评论

相关推荐

    bacula、bacula-gui、bacula-web安装配置手册

    ### Bacula、Bacula-GUI、Bacula-Web 安装配置手册 #### Bacula简介 **Bacula** 是一套允许系统管理员通过网络在不同类型的计算机之间管理数据备份、恢复和验证的计算机程序集合。Bacula 也可以完全运行在单台...

    笔记:使用源码安装Bacula 5.0.3

    5. 配置Bacula: 安装完成后,你需要配置Bacula以适应你的网络和存储环境。主要的配置文件位于`/etc/bacula`目录下,包括`bacula-dir.conf`(Director)、`bacula-fd.conf`(File Daemon)和`bacula-sd.conf`...

    bacula-utils:与bacula一起使用的工具集合

    bacula-utils:与bacula一起使用的工具集合

    bacula-web:用于Bacula的基于开源Web的报告和监视工具

    Bacula-Web Bacula-Web是用PHP编写的基于Web的工具,可为您提供备份基础结构的摘要视图。 它从Bacula目录数据库中获取他的信息。 这是我对项目的一点贡献。 产品特点 Bacula-Web主要功能 ...董事报告:所有已配置

    bacula 安装配置

    ### Bacula安装与配置详解 #### 一、Bacula简介 Bacula是一个开源备份系统,设计用于在不同的操作系统之间执行数据备份、验证以及恢复等操作。它采用客户端/服务器模式进行工作,支持多种平台,是跨平台备份解决...

    Centos7.5 安装Bacula 11.05详细教程

    在 CentOS 7.5 上安装Bacula 11.05的步骤包括下载源码、安装必要的组件、配置数据库、编译和安装Bacula、以及设置和启动服务。以下是详细的步骤: 1. **下载Bacula源码** 首先,你需要从Bacula官方网站下载最新的...

    Bacula网络备份环境搭建

    - 通过`bacula-fd.conf`文件来配置File Daemon,如指定要备份的文件路径、排除某些文件不进行备份等。 4. **性能优化**: - 根据实际情况调整Bacula的备份策略,比如设置适当的备份时间窗口、优化备份数据的压缩...

    bacula的配置文件

    在你提供的文件名中,`bacula-dir.conf` 是 Director 的配置文件,`bacula-sd.conf` 是 Storage Daemon 的配置文件,而 `bacula-fd.conf` 是 File Daemon 的配置文件。 ### bacula-dir.conf (导演配置文件) **目录...

    Bacula True64 客户端软件

    - 配置文件模板:提供默认设置,帮助快速配置 Bacula 客户端。 - 文档:可能包括用户手册、快速入门指南和其他相关文档,介绍如何安装和使用 Bacula。 - 库文件:可能包含 Bacula 所需的库文件,以确保与 Tru64 UNIX...

    Bacula_配置文件详解

    ### Bacula配置文件详解 #### 一、各配置文件的关系 Bacula备份系统由三个主要组件构成:主控端(Director)、存储端(Storage Daemon,SD)和客户端(File Daemon,FD)。每个组件都有自己的配置文件,分别对应...

    freenas-bacula:FreeNAS 9 的 Bacula 插件

    - 安装和配置:FreeNAS-Bacula 插件简化了在 FreeNAS 上安装和配置 Bacula 的过程,用户可以通过 FreeNAS 的 Web 界面完成设置。 - 存储池管理:插件允许用户定义和管理不同的存储池,这些池可以是本地磁盘、网络...

    基于Linux的Bacula备份系统的研究

    2. 配置Bacula:根据网络环境和需求,编写配置文件,包括Director、FileDaemons、Storage Daemons的配置。 3. 创建备份策略:定义备份时间、类型(全量、增量、差异),以及保留规则等。 4. 测试和验证:在实际部署...

    bacula配置安装[整理].pdf

    bacula配置安装[整理].pdf

    灾备恢复及安全管理bacula

    Bacula的配置文件结构清晰,但需要仔细阅读文档以理解每个组件的作用和配置选项。 总之,灾备恢复及安全管理Bacula提供了企业级的数据保护方案。通过理解其重要性,熟悉各种开源备份工具的特点,以及掌握Bacula的...

    基于Linux的Bacula备份系统的研究.pdf

    Bacula的安装配置相对简单,采用模块化设计,具有良好的扩展性和内置的任务调度程序,可以设置任务优先级,同时提供了数据安全性的保障,如通过CRA M-MD5口令验证和MD5或SHA1签名验证确保数据安全。 Bacula系统由三...

    开源备份软件之bacula--介绍与源码框架

    1. Director:这是Bacula的指挥中心,负责计划备份作业、管理备份策略和配置其他组件。Director通过SQL接口与Catalog交互,存储备份元数据,以便于检索和恢复。 2. File Daemon:在每个需要备份的主机上运行,负责...

    bacula:bacula.org研发测试实验室

    在 Bacula-master 文件夹中,我们可以期待找到 Bacula 源代码、开发文档、测试脚本、配置示例以及可能的开发工具。源代码将展示 Bacula 的实现细节,包括 PHP 部分,这可能对开发者理解如何集成或扩展 Bacula 的 Web...

    PyPI 官网下载 | bacula_configuration-0.92.tar.gz

    Bacula Configuration 模块是 Python 编写的工具,主要用于管理和配置 Bacula,这是一个开源的数据备份和恢复系统。PyPI(Python Package Index)是 Python 应用程序常用的分发平台,此处提到的 "bacula_...

    bacula-7.2.

    Bacula是一款功能强大的开源网络备份系统,专为各种操作系统(包括Linux、Unix和Windows)设计。这个工具的主要目标是提供企业级别的数据保护服务,确保在数据丢失或损坏时能够进行有效的恢复。标题中的"bacula-7.2....

Global site tag (gtag.js) - Google Analytics