Bacula被譽(yù)為開(kāi)源平臺(tái)下最優(yōu)秀的網(wǎng)絡(luò)備份工具之一,功能之強(qiáng)大,完全可以和商用備份軟件相媲美。Bacula是一款開(kāi)源的跨平臺(tái)網(wǎng)絡(luò)備份工具,提供基于企業(yè)級(jí)的CS的備份解決方案,可以對(duì)數(shù)據(jù)進(jìn)行備份、恢復(fù)、以及完整性校驗(yàn)。
注:
本文部分圖片取自Bacula官網(wǎng):http://blog.bacula.org/
部分取自Bacula-Web:http://www.bacula-web.org/
功能簡(jiǎn)介
支持完全備份,增量備份,差異備份。
支持多種恢復(fù)方式
支持多種文件系統(tǒng)下的備份恢復(fù)(ext3、ext2、reiserfs、xfs、jfs、smbfs、iso9660、ntfs等)
支持各種備份介質(zhì)
支持多種操作系統(tǒng)
強(qiáng)大的內(nèi)部功能
以下是Bacula官方列舉的與主流備份方案的技術(shù)對(duì)比參考:
注:表格中的中文翻譯僅供參考;如需查看表格中相關(guān)注釋,可以查看官方頁(yè)面
支持的操作系統(tǒng)
大多數(shù)Linux版本,包括Gentoo, Red Hat, Fedora, Mandriva, Debian,OpenSuSE, Ubuntu, Kubuntu,Centos等等
不同版本的Solaris;
FreeBSD。磁帶驅(qū)動(dòng)器支持Bacula≥1.30for reeBSD≥5.0;
Windows。只支持客戶端程序;
MacOS X/Darwin (安裝支持包見(jiàn)http://fink.sourceforge.net/);
OpenBSD。只支持客戶端程序;
Irix。只支持客戶端程序。
下面是官方提供列表,供參考:
注:
“x”表示完全支持;
“”表示不完全支持,如果需要詳細(xì)了解可查看官方文檔。
組件和服務(wù)簡(jiǎn)介:
一個(gè)完整的bacula備份系統(tǒng),由下面5個(gè)部分組成,如下:
Director Daemon:負(fù)責(zé)監(jiān)聽(tīng)所有的備份、恢復(fù)、驗(yàn)證、存檔事務(wù),以及定制備份和恢復(fù)文件計(jì)劃等,并將整個(gè)系統(tǒng)運(yùn)行狀況記錄在一個(gè)數(shù)據(jù)庫(kù)文件中。其配置文件為bacula-dir.conf。
Storage Daemon(SD):主要負(fù)責(zé)將數(shù)據(jù)備份到存儲(chǔ)介質(zhì)上,而在數(shù)據(jù)恢復(fù)時(shí),負(fù)責(zé)將數(shù)據(jù)從存儲(chǔ)介質(zhì)中傳送出去。其配置文件為bacula-sd.conf。
File Daemon(FD):安裝在需要備份數(shù)據(jù)的機(jī)器上的守護(hù)進(jìn)程,在備份數(shù)據(jù)時(shí),它負(fù)責(zé)把文件傳出,在恢復(fù)數(shù)據(jù)時(shí)負(fù)責(zé)接收數(shù)據(jù)并執(zhí)行恢復(fù)操作。配置文件為bacula-fd.conf。
Console:管理控制臺(tái)??梢酝ㄟ^(guò)這個(gè)控制臺(tái)連接到Director Daemon進(jìn)行管理備份與恢復(fù)操作。
Monitor:進(jìn)程監(jiān)控端。
工作流程:
通過(guò)console連接到Director端,備份恢復(fù)操作開(kāi)始。
Director端從自己的數(shù)據(jù)庫(kù)中調(diào)出記錄信息,對(duì)存儲(chǔ)端SD與客戶端FD的任務(wù)進(jìn)行協(xié)調(diào)。
客戶端FD負(fù)責(zé)驗(yàn)證Director的操作許可,如果驗(yàn)證通過(guò),則允許連接到存儲(chǔ)端SD
客戶端FD根據(jù)Director發(fā)出的請(qǐng)求去連接SD,將FD端的數(shù)據(jù)備份到存SD指定的存儲(chǔ)介質(zhì)上,或者將SD端存儲(chǔ)介質(zhì)中的數(shù)據(jù)傳回到客戶端FD指定的位置上,完成備份恢復(fù)過(guò)程。
Bacula各組件中的字段簡(jiǎn)介
各配置文件之間主要對(duì)象的關(guān)系。
注:圖中使用箭頭連接主控端配置文件的相關(guān)項(xiàng)與其它配置文件的相關(guān)項(xiàng),所連接的相關(guān)項(xiàng)的值必須是相同的。
主控端配置文件的 Director{}項(xiàng)
Name 值與控制臺(tái)配置文件(bconsole.conf,下同)的 Director{}項(xiàng)、存儲(chǔ)端配置文件的 Director{}項(xiàng)及客戶端配置文件的 Director{}項(xiàng)的 Name 值相同;Password 值與控制臺(tái)配置文件的 Director{}項(xiàng)的 Password 值相同。
主控端配置文件的 Storage{}項(xiàng)
Device 值與存儲(chǔ)端配置文件的 Device{}項(xiàng)的 Name 值相同;MediaType 值與存儲(chǔ)端配置文件的 Device{}項(xiàng)的 MediaType 值相同;Password 值與存儲(chǔ)端配置文件的 Director{}項(xiàng)的 Password 值相同。
主控端配置文件的 Client{}項(xiàng)
Password 值與客戶端配置文件的 Director{}項(xiàng)的 Password 值相同。
Bacula實(shí)例
注:略去詳細(xì)安裝過(guò)程,感興趣可google搜索下,此處將已經(jīng)搭建完成的備份系統(tǒng)中關(guān)鍵配置貼出來(lái)
//安裝完成之后,會(huì)有如下幾個(gè)主要配置文件:
[root@director bacula]# ll
total 64
-rw-r----- 1 root bacula 40669 Oct 12 16:58 bacula-dir.conf
-rw-r----- 1 root root 1671 Aug 19 14:44 bacula-fd.conf
-rw-r----- 1 root root 9241 Oct 8 13:53 bacula-sd.conf
-rw-r----- 1 root root 349 Aug 19 14:42 bconsole.conf
-rw-r----- 1 root bacula 256 May 16 2015 query.sql
bacula-dir.conf
Director字段定義Bacula的全局配置
bacula-dir服務(wù)端口號(hào)
定義一次能處理的最大并發(fā)數(shù)
Console Password密碼
Schedule字段定義備份策略:
第一周的周日晚23:05分進(jìn)行完全備份
第2~5周的周日晚23:05進(jìn)行差異備份
所有周一至周六晚23:05分進(jìn)行增量備份
定義一個(gè)WeeklyCycleAfterBackup備份策略
JobDefs字段定義執(zhí)行任務(wù)的一些默認(rèn)屬性,后面定義的job可以繼承,但是如果有沖突以job中為準(zhǔn)。
Storage字段用來(lái)定義將客戶端的數(shù)據(jù)備份到哪個(gè)存儲(chǔ)設(shè)備上。
定義供Job任務(wù)使用的池屬性信息,例如,設(shè)定備份文件過(guò)期時(shí)間、是否覆蓋過(guò)期的備份數(shù)據(jù)、是否自動(dòng)清除過(guò)期備份等。
Recycle表示重復(fù)使用
AutoPrune表示自動(dòng)清除過(guò)期備份文件
Volume Retention表示備份文件保留的時(shí)間
Maximum Volume Bytes參數(shù)表示一個(gè)卷的大小
Maximum Volumes表示卷最多400個(gè)(每個(gè)卷是20G,這個(gè)pool可提供最多8TB可用空間,超過(guò)會(huì)導(dǎo)致備份任務(wù)等待)
Maximum Volume Jobs表示每個(gè)卷支持的備份任務(wù)數(shù)量
FileSet字段定義一個(gè)名為CentOS-7-APP的備份資源,指定客戶端需要備份哪些數(shù)據(jù),排除哪些數(shù)據(jù)等,可以指定多個(gè)FileSet。
提供gzip壓縮功能(本例中未使用壓縮功能)
提供MD5,SHA1校驗(yàn)功能
Job字段定義一個(gè)備份任務(wù):
指定備份的客戶端主機(jī)
定義備份的級(jí)別(Level的取值可為Full(完全備份),Incremental為增量備份,Differential差異備份,如果第一次沒(méi)做完全備份,則需要先進(jìn)行完全備份再執(zhí)行Incremental)
Client字段用來(lái)定義備份哪個(gè)客戶端的FD數(shù)據(jù)
Address:定義客戶端,可以是IP地址也可以是FQDN(有A記錄)
FDPort:與客戶端FD通信的端口號(hào)
Password:Director與客戶端FD的驗(yàn)證密碼,這個(gè)密碼必須與客戶端FD配置文件bacula-fd.conf中的密碼一致
bacula-sd.conf
定義存儲(chǔ)
定義Device
Archive Device用來(lái)定義備份的介質(zhì)(可以是CD,DVD,TAP等),這里是指定到目錄(文件系統(tǒng))
注:SD可以是一臺(tái)單獨(dú)的服務(wù)器,也可以和Director在一臺(tái)機(jī)器上
bacula-fd.conf
定義一個(gè)控制StorageDaemon的Director
director-dir必須要與Director端配置文件bacula-dir.conf中的Director邏輯字段名稱一致(password必須要和Storage邏輯字段一致)
director-mon必須要與Director端配置文件bacula-dir.conf中的Console邏輯字段名稱一致(password必須要一致)
注:需要備份的客戶端要先安裝bacula客戶端軟件(支持Win)
Bacula-Web
主頁(yè)面
存儲(chǔ)池
Job狀態(tài)
app1-fd客戶端過(guò)去兩周的備份情況
備份報(bào)告
備份數(shù)據(jù)恢復(fù)
恢復(fù)客戶端app1(JobID為1271)
找到對(duì)應(yīng)的job ID
恢復(fù)后的數(shù)據(jù)
本文作者:高瑞(點(diǎn)融黑幫),目前就職于點(diǎn)融網(wǎng)IT 部門,擔(dān)任系統(tǒng)運(yùn)維工程師,愛(ài)好籃球運(yùn)動(dòng)。