ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 网络通讯 >

使用bacula备份

日期:2006-08-03 作者:R0meal 来自:饮水思源站


    手头有三台机器,为了安全,就打算做一个网络备份,让这三台机器互相备份一些重要
文档。上网逛了一会,发现bacula(www.bacula.org)挺符合自己的要求。



    bacula采用模块化设计,采用c/s构架,理论上可以把任意n台主机的资料备份到任意n台
中,而你不需要在每台机器上都写一个配置文件控制他们运作,所有主要的工作都在一
台director上控制。登陆上director你就可以知道什么备份正在运行,什么备份成功了
,什么备份失败了,所有的log也会集中到你指定的地方,让管理工作更简单一点。恢复
的时候也很简单,简单运行几个命令你就可以把指定的备份恢复。支持完全备份,差异
备份,增量备份;支持把备份写到硬盘文件中,也支持写到磁带中。支持平台相当多,
设置包括win平台(备份win,还不支持备份到win)。当然也有一些缺点,比如对并发备
份支持未经彻底测试,作者宣称最好不要尝试,除非你自己经过测试。还有一点就是文
档中没有一个quick start。。。。文档太详细了点,没有点耐心读不完。。。。
1,前期准备
bacula有三个模块组成。一个是Director,用于指挥整个系统运行,job schedule,通知
另外两个模块工作。一个是Storage Daemon,它是存储端,负责把网络中传来的数据备
份到本机,恢复的时候负责把数据传出去。最后一个是File Daemon,备份时把文件传出
,恢复时接受数据并恢复。其实上面的三个模块并不能让bacula运行,另外一个模块是
数据库模块。这个模块可以通过SQLite(编译进bacula),也可以使用MySql和PostgreS
ql,作者推荐的是mysql。还需要一些第三方库才能编译:GZIP和Readline。文档中没有
说明,但其实还需要另外一个软件才能保证正常运行:ntp。因为差异备份和增量备份都
依赖于文件修改时间来决定是否备份。单机备份问题不大,网络备份就需要考虑各个主
机的时间差异了。所以我推荐所有主机每天运行两次ntpdate来调准时间。如果你在sjtu
网络里面,可以使用dns.sjtu.edu.cn来调校时间。
如果你使用的是磁带机备份,还需要检查一下你的磁带机是否被支持。而且最好去阅读
文档中的Understanding Pools, Volumes and Labels一节。否则配置的时候你会搞得晕
乎乎的。

2,编译
编译过程很简单,文档也很详细,就不具体介绍了。注意一点是被备份机器上可以使用-
-enable-client-only编译。

3,数据库建立
下面说说mysql的建立过程。首先在代码根目录中
cd src/cats/
./grant_mysql_privileges
./create_mysql_database
./make_mysql_tables
如果mysql不是在本机上,可以增加-h参数指定。默认采用空密码的root用户,可以用-p
参数使其采用密码验证。如果要采用其它用户就只能修改脚本了,很简单的。
默认建立的bacula用户,而且是空密码。推荐还是修改密码。
bacula可以使用任意多的数据库,也就是说你可以使用两个数据库,然后再让这两个数
据库互相备份。

4,运行File Daemon(fd)
配置前先说明一点需要注意的,配置中指定主机地址时,最好使用ip,我配置时使用主机
名貌似不可以。。。而且要是对外的ip,用127.0.0.1不行
fd运行在被备份主机上。配置相当简单,指定哪个Director可以运行调度它,密码是什
么,fd的名字,工作目录,log往哪里发就可以了。修改修改标配就可以了。

5,运行Storage Daemon(sd)
sd运行在接受备份的机器上。配置也相当简单,只是比fd多出了一个device用于指定使
用什么硬件备份数据。可以把多个数据备份到一个device,如果是磁带机备份bacula在
恢复的时候会告诉你要使用哪个磁带。因为我使用的是文件备份的模式,所以就给每个
备份配置一个device,把不同的备份放到不同目录去,下面是一个简单文件备份device
配置
Device {
Name = dbdev
Media Type = File #这个随便写,但是在配置Director中的Storage时,必须写一
样的
Archive Device = /var/bak/db #备份到哪个目录,必须存在
LabelMedia = yes; # 自动label
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

6,运行Director(dir)
这个配置最麻烦,因为所有配置都集中到这里,包括备份工作调度,数据库配置,fd和s
d协作配置都在这里。
Director项目的配置不说了,很简单
Client项目告诉dir去哪里找被备份机器
Client {
Name = dbfd #必须跟fd配置的名字相同
Address = 202.120.x.x
FDPort = 9102
Catalog = 225catalog #使用哪个数据库存储信息
Password = "6662f353d83dc85013690aefc00f" # 与fd配置相同即可
AutoPrune = yes # 自动清除过期的Jobs/Files
}
Storage项目告诉dir去哪里找接受备份的机器
Storage {
Name = dbsd #与sd配置相同
Address = 202.120.x.x
SDPort = 9103
Password = "6662f353d83dc85013690aefc00f"
Device = dbdev #必须在sd中存在
Media Type = File #必须与sd中相应device相同
}
Schedule项目告诉dir何时调度备份,比较独立,可以在不同的job中重用
Schedule {
Name = dbscd
Run = Level=Full mon at 7:00 #在周一7点作一次全备份
Run = Level=Full fri at 7:00 #在周五7点作一次全备份
Run = Level=Differential sat at 7:00 #在周六7点作一次差异备份
Run = Level=Differential sun at 7:00 #在周日7点作一次差异备份
Run = Level=Differential tue-thu at 7:00 #在周二到周四7点作差异备份
}
当然可以schedule还可以配置很多东西,比如增量备份以及更灵活的时间调度。可以参
考文档。

FileSet项目告诉dir应该备份什么文件,不应该备份什么文件
FileSet {
Name = dbfs
Include = compression=GZIP { #备份运行fd机器上的/var/db目录,用gzip
压缩,
/var/db/
}
Exclude = { #不包括所有的.log文件
*.log
}
}
FileSet也可以灵活配置,甚至可以在job运行时才指定备份文件

Catalog告诉dir去哪里找数据库
Catalog {
Name = dbcatalog
dbname = bacula
user = bacula
password = xxxxxxxxx
DB Address = 202.120.x.x #不要用localhost
DB Port = 3306
}

Pool告诉dir使用哪个Pool备份数据,这个概念比较搞,到配置job的时候会清晰一点。
Pool{
Name = dbpool
Pool Type = Backup
Maximum Volume Jobs = 1 #每次备份使用一个文件
Recycle = yes #重复使用
AutoPrune = yes #自动清除
Volume Retention = 15 days #备份保留时间
Maximum Volumes = 30 #最多保存多少个文件
Recycle Current Volume = yes #使用最近过期的文件存储新备份
#文件如何命名,下面的格式会产生如下的命名形式db-2004-03-19-id20
Label Format =
"db-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}-id${JobId}"
}
Message项目告诉dir如何保存log,以及保存格式
Messages {
Name = Standard
# mailcommand = "/usr/local/bacula/bin/smtp -h 202.120.x.x -f \"\(Bacula\)
%r\
" -s \"Bacula: %t %e of %c %l\" %r"
# operatorcommand = "/usr/local/bacula/bin/smtp -h 202.120.x.x -f
\"\(Bacula\)
%r\" -s \"Bacula: Intervention needed for %j\" %r"
# mail = root@202.120.x.x = all, !skipped
# operator = root@202.120.x.x = mount
# console = all, !skipped, !saved
#
# WARNING! the following will create a file that you must cycle from
# time to time as it will grow indefinitely. However, it will
# also keep all your messages if they scroll off the console.
#
append = "/var/log/bacula.log" = all, !skipped
append ="/var/log/bacula.err.log" = error, warning, fatal
}
我保留了两份log,一份包括所有信息,一份只包括错误信息
可以看到,bacula支持把log发到邮箱中~~被我注释掉了。

Job是上面所有配置的一个组合,给用户最大的灵活性配置
Job {
Name = dbjob
Type = Backup #还有restore之类的类型,也有一些其它选项,可以实现一
些很有意思的功能
Level = Full #默认备份程度,schedule中的配置会覆盖这里的选择
Client = dbfd
FileSet = dbfs
Messages = Standard
Pool = dbpool
Storage = dbsd
Schedule = dbscd #如果没有指定schedule,默认不运行,可以通过console
调度
}
还有一个counter的配置。。不配置他也能运行,不说了

7,console运行
console是你动态管理bacula的窗口,配置很简单。运行console可以实现很多很有价值
的管理活动。具体可以参考文档说明。

8,让整个系统运行。
没什么好说的,只要配置正确,就没有什么挫折。不能正常运行就去看看log,bacula的
log非常详细。

9,性能和稳定性。
性能不错,瓶颈明显在带宽,cpu占用不高(不使用gizp)。稳定性尚不清楚,据作者说
非常好。稳定运行一年半载不成问题。

10,有趣的工作。
用bacula你可以实现一个额外的功能,类似tripwire文件系统检查机制。具体看文档。


我说了很多具体看文档~~~~bacula的文档确实很不错,很翔实,如果你需要借重他来备
份,多看看不会错。

11,the end

本文被浏览



 相关新闻

使用RANCID备份你的网络2006-07-31 18:02:02
Linux 网管 123 --- 第8章. 备份及回存程序 -3.Cisco 路由器组态备份2001-07-02 20:10:00
Linux 网管 123 --- 第8章. 备份及回存程序 -2.伺服器回存程序(tar.KDat)2001-07-02 19:00:00
Linux 网管 123 --- 第8章. 备份及回存程序 -1.伺服器备份程序2001-07-02 18:08:00
实现企业网全网数据备份2004-08-24 14:36:03
如何进行增量备份?2001-06-28 19:00:01
备份和修复Linux LILO指南2002-01-08 08:10:00


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号