Borg 的“修剪”功能如何与重复数据删除协同工作?

Borg 的“修剪”功能如何与重复数据删除协同工作?

以下是我目前(误解)理解其工作原理的方式:每次我跑步时

borg create /path/to/my/repo::[archive name] /home/myData

Borg 创建了一个新的档案。得益于重复数据删除机制,此档案:

  • 包含以前未见过的数据块(基本上:新文件和添加到现有文件的数据)
  • “链接”(指以前的档案)到 Borg 已知+存储的数据块

这意味着,如果我使用borg create [...]上述命令创建连续的档案:

  • 存档_1/home/myData拥有我第一次运行该命令那天的完整副本
  • 得益于重复数据删除机制,存档_2/home/myData只有我自创建以来添加的数据块存档_1
  • ...
  • archive_n/home/myData只有我自创建以来添加的数据块存档_(n-1)

由于每个档案库都有一组独特的块,那么如何才能在不丢失数据的情况下修剪存储库呢?我显然漏掉了一些东西,但是什么呢?

有没有一种方法/最佳实践可以偶尔进行一次“完整备份”?我读过(但丢失了链接 :-()Borg 不支持完整/增量备份。这是否意味着,我应该执行一次新的满的的备份/home/myData,我必须:

  1. borg init [options] /path/to/new/repo
  2. borg create /path/to/new/repo::[archive name] /home/myData

答案1

博格有两种“移除”动作 -prune以及compact

请参阅此处的对象图文档中的图表:https://borgbackup.readthedocs.io/en/stable/internals/data-structures.html#the-object-graph

Borg 对象图

清单包含键 of ArchivesArchivesrefer toFilesFilesrefer to Chunks

Prune从图表中删除Archives不符合指定保留策略的文件。但不会更改任何引用的files/。A可以被多个 引用,这就是差异快照的执行方式(未更改的文件/块仅被引用)。chunksfilearchives

Borgcompact在较低的键/值存储层运行,实际上从上层存档层中已删除的数据中回收已删除的空间。这实际上是删除数据,而不是取消引用数据。

相关内容