rsync 对 --link-dest “referenceBackup” 进行优化?

rsync 对 --link-dest “referenceBackup” 进行优化?

语境:我成功使用 rsync 使用 --link-dest“referenceBackup”标志创建每日增量和远程备份,以便在创建新备份时,仅对现有未修改的文件创建新的引用。

问题:有些目录包含很多小文件(数十万个),甚至 --link-dest 的优化也不是“最佳”的。大多数“小文件”可以是源文件、小型“*.o”编译输出……为数十万个文件中的每一个创建新的 enode 引用会消耗文件系统资源。例如,对于包含 250,000 多个文件的 20 GB 引用目录,增量备份会使用大约 100Mb(0.05%)的额外空间(即使只有 40 千字节的数据发生更改)。

问题:我确信完整目录和目录子树将始终包含大致相同的“数十万”个小文件(可能只有 10 或 20 个修改),我只是想知道在这种情况下是否有更好的优化备份策略(与 --link-dest ... 相比)。也就是说,我想在新的增量备份中创建现有目录的“diff”,甚至尝试为 99% 的现有文件创建对 enode 的新引用。有没有某种文件系统覆盖(类似docker)应用还是模式?

答案1

基于硬链接的增量备份增加的开销通常是由于每次备份运行都需要创建所有新目录。

在 Linux(或其他 Unix)上目录无法硬链接,需要照常创建。它们像其他文件一样占用空间,因此最终开销很小。

另一方面,硬链接只是同一 inode 的另一个名称,几乎没有任何开销。

相关内容