以下是我目前(错误)理解它是如何工作的:每次我跑步时
borg create /path/to/my/repo::[archive name] /home/myData
博格创建了一个新的档案。由于重复数据删除机制,该存档:
- 包含以前没有见过的数据块(基本上:新文件和添加到现有文件的数据)
- “链接”(指以前的档案)到 Borg 已知+存储的数据块
这意味着,如果我使用borg create [...]
上面的命令创建连续的存档:
- archive_1拥有
/home/myData
我第一次运行该命令当天的完整副本 - 由于重复数据删除机制,archive_2只包含自archive_1
/home/myData
创建以来我添加的数据块 - ...
- archive_n仅
/home/myData
包含自创建archive_(n-1)以来我添加的数据块
既然每个档案都有一组独特的块,那么如何在不丢失数据的情况下修剪存储库呢?我显然错过了一些东西,但是什么呢?
有没有一种方法/最佳实践可以每隔一段时间进行一次“完整备份”?我读过(但丢失了链接:-( Borg 不支持完整/增量备份。这是否意味着,如果我想执行新的完整备份/home/myData
,我必须:
borg init [options] /path/to/new/repo
borg create /path/to/new/repo::[archive name] /home/myData
博格有两个“移除”动作 -
prune
和compact
请参阅此处的对象图文档中的图表:https://borgbackup.readthedocs.io/en/stable/internals/data-structures.html#the-object-graph
该清单包含键
Archives
、Archives
refer toFiles
和Files
refer toChunks
。Prune
从图表中删除Archives
与指定保留策略不匹配的内容。但它不会改变任何被引用的files
/ 。chunks
Afile
可以被多个 引用archives
,这就是差异快照的执行方式(简单地引用不改变的文件/块)。Borg
compact
在较低的键/值存储层运行,实际上是从较高的归档层中已删除的数据中回收已删除的空间。这实际上会删除数据,而不是取消引用它。