Bacula

Bacula - 拆分卷?

  • July 27, 2012

我一直在使用 Bacula 進行備份。我實施了這個系統,效果很好!然而,我做的一件事就是把所有的東西都放在一卷之下。我決定我想讓它稍微複雜一點,這樣增量只會保留一周,然後它會清除並重寫該卷中的那些,從而確保空間不會成為問題,因為我們保留了 30 天的價值的增量。

所以我試圖做的是有一個名為 DAILY 的捲、一個名為 WEEKLY 的捲和一個名為 MONTHLY 的捲。每日為增量,每週為差異,每月為滿。我們將每天保留 7 天,每月保留 30 天,並保留一年(因為我們需要!)。

現在,我知道這可以用磁帶來完成。問題是我使用磁碟…如果我嘗試執行上述操作,要麼 a) 崩潰(如果完整/增量作業在同一個計劃下)或 b) 不起作用(它會在日交易量等)。

有沒有人嘗試過這個?或者可以給我一個關於他們如何設置的想法?我只是不確定為什麼它有這個問題……

巴庫拉範例;

游泳池

Pool {
  Name = Daily
  Pool Type = Backup
  Volume Retention = 3 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = DAILY
  Maximum Volume Bytes = 50G
}

Pool {
  Name = Weekly
  Pool Type = Backup
  Volume Retention = 30 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = WEEKLY  
  Maximum Volume Bytes = 100G
}

Pool {
  Name = Monthly
  Pool Type = Backup
  Volume Retention = 365 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = MONTHLY
}

工作/客戶/時間表

Client {
  Name = centos13
  Password = *IMAHAPPYLITTLEPASSWORD*  
  Address = centos13
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days
  Job Retention = 6 months
}

FileSet {
  Name = centos13
  Include {
    File = /etc/bacula/bacula-fd.conf
    Options {}
  }
}

Schedule {
  Name = centos13
  Run = Level=Full Pool=Monthly 1st sat at 00:05
  Run = Level=Differential Pool=Weekly sat at 00:05
  Run = Level=Incremental Pool=Daily mon-fri at 00:05
}


Job {
  Name = centos13
  Type = Backup
  Client = centos13
  FileSet = centos13
  Schedule = centos13
  Storage = File
  Messages = Standard
  Full Backup Pool = Monthly
  Incremental Backup Pool = Daily
  Differential Backup Pool = Weekly
}

為了讓 Bacula 做您想做的事,您需要的不僅僅是卷 - 您需要將這些卷放入單獨的池中,並讓您的工作知道您希望為不同的備份級別使用不同的池。

神奇的語法是:

Job {
       Name = "Test"
       Type = Backup
       Client = backup-fd 
       FileSet = "FileSetTest"
       Storage = SomeStorage
       Schedule = "ScheduleTest"
       Pool = Default
       Full Backup Pool = FullTest 
       Incremental Backup Pool = IncrTest
       Differential Backup Pool = DiffTest
}

(從http://wiki.bacula.org/doku.php?id=sample_configs無恥地盜竊- 檢查 bacula 文件,因為我認為可能還有其他地方可以指定每個級別的池,例如JobDefs&可能Client

然後,您將在池(或組成捲)上設置保留期,以滿足您之前概述的要求。


關於磁碟空間,我發現最好使用磁碟備份將它們視為磁帶。

我建議您在池資源中定義一個“合理的”`Maximum Volume Bytes(並更新任何現有的捲以反映它),然後創建一堆卷,Bacula 將在“填充”每個卷時自行循環,並根據您設置的任何保留政策進行回收。

就我而言,我有 200G 的備份空間,分為 100 個 2GB 文件。

這有幾個優點:

  • 備份卷適合 DVD

(所以如果我需要永久存檔它們,我可以將它們放入光碟中)

  • 異地同步只需要推送改變的文件

(小於一個200G的體積)

  • 更快的災難恢復

(如果我需要使用我的遠端存檔恢復伺服器,我只需要下載它的引導程序 (.bsr) 和我需要恢復它的捲。)

  • 如果我的硬碟死了,我希望它只會殺死一些文件。

引用自:https://serverfault.com/questions/411856