解释 rsnapshot 增量轮换

解释 rsnapshot 增量轮换

需要有关 rsnapshot 的帮助。我每周都会使用 bash 脚本进行完整备份,这会占用大量磁盘空间。现在我正在考虑使用 rsnapshot,我想用 rsnapshot 进行每周增量备份和每月完整备份。因此,这就是我配置配置文件的方式

保留伽马 4
保留增量 1

并安排 cronjob

00 00 * * * 根 rsnapshot 伽马
00 00 1 * * 根 rsnapshot 增量

我有一个 rsnapshot 的根文件夹 /root/rsnapshots/。现在根据我的理解,对于每个每周增量备份,它将在这些文件夹中创建硬链接,并且新的增量备份将位于 gamma.0 上

  • /root/rsnapshots/gamma.0
  • /root/rsnapshots/gamma.1
  • /root/rsnapshots/gamma.2
  • /root/rsnapshots/gamma.3

并且每个月它是否会将所有 gamma.3 内容复制到 /root/rsnapshots/delta.0 或将所有 gamma.0 内容复制到 /root/rsnapshots/delta.0?

有人能在这里向我解释一下这种轮换是如何进行的吗?我之所以问这个问题,是因为我无法使用 VM 来测试这种每周和每月的 rsnapshot。

谢谢

答案1

数据去哪里了

首先你必须明白仅有的(最低级别)备份gamma实际上会复制任何数据,所有其他备份只是旋转(又名重命名)并删除已经存在的快照(gamma也这样做)。(见下文)

其次,硬链接文件只是出现在文件系统中多个位置的单个常规文件。只有在删除所有文件后,它才会被删除(此后它可能仍存在于磁盘上,只是您找不到它)。

所以,您的设置不会每月复制所有数据。增量备份与增量备份一样都是增量备份gamma。由于您只有一个delta备份,因此它本身不会比其他任何备份都增量。

每次调用时会发生什么

要了解每次调用备份级别时发生的情况,我强烈建议手册页retain,特别是关于配置中的参数的部分。为了给你一个不同的解释(我也花了一段时间才理解手册页):

最低级别

每次你(或 cron)调用snapshot gamma

  • gamma.3如果存在(最高可能的伽马备份),则将删除它。这会导致仅存在于该快照中的任何文件修订真正丢失。之后未更改的所有文件将出现在(gamma.2作为硬链接)中,因此将保留。此后未更改的所有文件delta.0将出现在中delta.0
  • 所有gamma.X文件夹都将移动到gamma.(X+1)。这是一个简单的重命名操作。
  • 新的快照gamma.0将以增量方式创建gamma.1。同样,所有未更改的文件将不会被复制,但文件夹中的内容gamma.1将同样显示gamma.0(作为硬链接)。

更高级别

每次调用任何更高级别(在您的情况下为 delta)时,相应级别都会发生相同的情况,但新快照部分除外。相反,gamma.3(下一个较低级别的最后一个可能快照)被移动(也称为重命名)到delta.0(调用级别的.0)。所有gamma备份仍引用delta旧版本的备份。

最高级别

这里唯一不同的是,由于没有早期的快照,所有过时的delta.0(在您的情况下是最高级别)并且存在的文件修订delta.1也将丢失。

另一种看待这个问题的方式是:如果你能以某种方式删除里面的每个文件(而不仅仅是它的外观)delta.0(最后的备份)全部从那时起未发生改变的文件的备份就消失了。

PS:建议从最高级别到最低级别开始备份作业,否则gamma.2文件夹将被旋转到gamma.3,然后立即delta.0旋转到,让您没有gamma.3。这里的短暂延迟(10 分钟)已经足够了,因为只有少数重命名和删除操作是由较高级别执行的。此外,gamma备份可能需要很长时间,因为它们会复制数据,导致时间和顺序丢失。

相关内容