有许多大的Xen稀疏图像文件需要备份,我正在寻找一种方法来有效地做到这一点在磁盘空间方面(节省空间与差异工具,如重复,bup,rsync,womble的lvmsync等)。 )和磁盘/networking带宽。 不幸的是,空间和带宽的要求nixes我刚才提到的工具,因为他们将扫描文件的全部内容,以find源和目的地之间的增量。
所以,我想避免以下的陷阱:
盲目复制整个文件
强化扫描整个文件以生成校验和以供比较
同一卷上的数据(由于COW或其他function)的冗余副本 – 这必须适用于源卷和目标卷。
在正常的系统使用期间显着的性能下降
search引导我find了一个很酷的例子,它满足了上述所有标准:使用sparsebundles作为源卷的OS X Time Machine。 哦,那不适用于Linux。 但是有趣的是,看一下稀疏捆绑中的单个“band”文件的m个时间是如何简单地告诉你自从上次备份date以来哪些位已经被修改 – 几乎是零工作。 节省空间并不完美,因为乐队是4MB长,但仍然非常好。
最后,在使用精简configuration逻辑卷时,我遇到了精简configurationtesting套件,其中包括使用thinp分配数据进行快速差异备份的示例 。 我以为我find了我的解决scheme…只是把图像放在薄薄的LV上,并使用快照!
但后来我意识到这会在源卷上使用太多的空间,并减慢速度。 正常的LV是短期使用的。
我仍然想知道是否有一些script-fu或狡猾的configuration选项可以使快照逻辑卷的行为像一个“幻影”快照:它只会logging与修改后的块关联的块分配数据,而不是复制 – 写数据块本身。 这个幻影快照可以被备份脚本读取,并立即为给定的LV选取修改的块。 (我想有些人会称之为日志。)备份成功完成后,它可以删除现有的幻像快照,并创build一个新的快照以保存下一个差异备份的修改信息。
该解决scheme不必涉及LVM,但是通过这种方式考虑解决scheme,可以让我以更坚实的forms呈现所需的解决scheme。 要在Linux上达到这个级别的备份效率,必须有一些办法。