以下是我目前(误解)理解其工作原理的方式:每次我跑步时
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
,我必须:
borg init [options] /path/to/new/repo
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
清单包含键 of Archives
、Archives
refer toFiles
和Files
refer to Chunks
。
Prune
从图表中删除Archives
不符合指定保留策略的文件。但不会更改任何引用的files
/。A可以被多个 引用,这就是差异快照的执行方式(未更改的文件/块仅被引用)。chunks
file
archives
Borgcompact
在较低的键/值存储层运行,实际上从上层存档层中已删除的数据中回收已删除的空间。这实际上是删除数据,而不是取消引用数据。