用Bacula传播第1,8,15,22个策略的完全备份负载,但不知道directorconfiguration

我使用Bacula远程连接到服务器(在不同的DC)和备份

由于速度的限制,白天没有让办公networking陷入困境,我不认为同时执行4台服务器的完整备份是可行的。相反,我们可以拆分完整的备份,因此每周一台服务器一个完整的备份,在轮换。

要求1 – 完全备份传输的负载传播

如果我们有4个服务器,我们要按如下方式执行完整的备份:

  1. myhost1 =>每个月的第一个满,所有其他的增量。
  2. myhost2 =>每个月的第八个满,所有其他的增量。
  3. myhost3 =每个月15日满,增加所有其他人。
  4. myhost4 =>每个月22日满,增加所有其他人。

鉴于任何特定的date,我们希望保留一个完整的备份,再加上最后一次完整的备份。 从现在到最近的完整备份的所有增量都应该保留。

要求2 – 独立池中的全部和增量

我有两个存储池,一个用于增量,另一个用于完整,如果增量快照找不到前一个满,我们需要告诉Bacula使用池满,否则使用pool-inc。

要求3 – 可扩展性

如果我想在周六和周日轮换它们,可能会有更多的服务器在将来(每天放弃8个日程安排[1,2],[8,9],[15,16],[22, 23])。 有没有更简单的方法来定义作业,因为我可以看到它成为一个大的configuration文件。

以你的问题的个别点:

要求1 – 负载分散
您需要为您的环境弄清楚这个问题 – “合理”取决于很多因素(有多less台机器,多less数据,您要备份哪种介质,有多less可用带宽,多less您的老板愿意为备份分配的资金,无论您的数据中心是否有可以接受磁带转盘训练的Ceiling Cat …)

您可能还想查看“合成完全备份” (Bacula称之为VirtualFull备份) – 这些备份可以生成“完整”备份,而无需通过整合最近完整备份的数据增量/差异的变化。


要求2 – 备用池中的完整和增量
您似乎还没有发现FullPoolIncrementalPoolDifferentialPoolconfiguration指令。 有关这些的更多信息, 请参阅Bacula手册 。
他们是你所需要的,以便按照作业types将备份分割到不同的池中。


要求3 – 可扩展性
首先,如果你正在使用Bacula,并且做任何中等复杂的事情,现在就放弃一个小的configuration文件。 导演configuration将会很大。

使用JobDefSchedule指令做什么是正确的方式来处理事情,根据需要添加定义以满足您的需求。

如果我是你,我不会使用备份date作为命名约定 – 打电话给你的日程安排(和工作默认)“组A”,“B组”等(或类似的东西通用)。
logging每个服务器所在的备份组,这样您可以轻松地重新平衡您的备份负载,将服务器从一个组移到另一个组。
你当然可以用你的基于date的名字来做到这一点,但是我觉得把备份组想象成一个抽象概念更容易。 另外,如果Group A正在stream血到Group B的备份时间范围内,我总是可以通过更改计划定义来每天向前移动Group B所有Group B ,而且我不必更改其名称。