Bacula--分割卷?

Bacula--分割卷?

我一直在使用 Bacula 进行备份。我实施了该系统,它运行良好!但是,我做的一件事就是将所有内容都放在一个卷下。我决定让它稍微复杂一点,这样增量只会保留一周,然后它会清除并重写该卷中的增量,从而确保空间不会成为问题,因为我们保留了 30 天的增量。

因此,我尝试创建一个名为 DAILY 的卷、一个名为 WEEKLY 的卷和一个名为 MONTHLY 的卷。每日卷是增量卷,每周卷是差量卷,每月卷是完整卷。我们会将每日卷保留 7 天,将每月卷保留 30 天,将完整卷保留一年(因为我们需要这样做!)。

现在,我知道这可以用磁带来完成。问题是我使用磁盘...如果我尝试执行上述操作,它要么 a) 崩溃(如果完整/增量作业在同一计划下)要么 b) 不起作用(它会在每日卷上创建完整备份等)。

有人尝试过吗?或者能告诉我他们是如何设置的吗?我只是不确定为什么会出现这个问题...

Bacula 示例;

泳池

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
}

答案1

为了让 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)

然后,您可以设置池(或组成卷)的保留期以满足您之前概述的要求。


关于磁盘空间,我发现最好将磁盘备份视为磁带。
我建议您在池资源中定义一个“合理的”最大卷字节数(并更新任何现有卷以反映它),然后创建一堆卷,Bacula 将在“填充”每个卷时自行循环,并根据您设置的任何保留策略进行回收。
在我的例子中,我有 200G 的备份空间,分为 100 个 2GB 文件。

这有几个优点:

  • 备份卷可装入 DVD 中
    (因此,如果我需要永久存档它们,我可以直接将它们放入光盘中)

  • 异地同步只需要推送发生变化的文件
    (小于一个200G的卷)

  • 更快的灾难恢复
    (如果我需要使用远程存档恢复服务器,我只需要下载其引导程序(.bsr)和恢复它所需的卷。)

  • 如果我的硬盘坏了,我希望它只会丢失部分文件。

相关内容