我有一个每小时cron的工作,从源文件夹中复制大约40GB的数据到一个新的文件夹,并在最后附加小时。
完成后,作业会除去24小时以上的任何东西。 这些数据在工作时间内经常变化,并在samba文件共享上。 以下是文件夹结构的外观:
\服务器\ Version.1
\服务器\ Version.2
\服务器\ Version.3
…
\服务器\ Version.24
每个新文件夹与最后一个文件夹的内容通常不会有太大的变化,因为这是一个小时工。
现在你可能会认为我是一个白痴设置梦想。 真相是,我刚刚发现。 它实际上已经使用了很多年,而且非常简单,任何人都可以删除整个40GB的共享空间(假设对话正在后台…删除成千上万的文件),通过将最新的副本移回到源代码比删除。
辉煌!
现在为止,我需要通过广域网链路高效地将这960GB的“大部分相似”数据复制到远程服务器,并且复制尽可能接近实时 – 考虑热备份,灾难恢复等。
我的第一个想法是rsync。
完全失败。
Rsync看到它删除了24小时的文件夹,并添加了一个新的文件夹与30GB的数据同步! 我也看了rdiff备份和统一,他们都似乎使用类似的algorithm,并没有保持足够的元数据来做到这一点智能化。
最好的事情,我可以find“开箱即可”做到这一点是Windows Server“分布式文件系统复制”,它使用“远程差分压缩” – 在阅读关于这是如何工作的背景信息,它实际上看起来像我需要。
问题:两台服务器都在运行Linux。 D'哦! 我正在看的一个方法是这样的,说这是上午5点,cron工作完成:
有更聪明的方法尽可能接近实时地复制Samba股票吗?
任何在Linux上执行“远程差分压缩”的东西?
你应该认真考虑DRBD 。 DRBD是一个基于TCP-IP软件的RAID1。 它将实时在任何链接上复制块设备。 每次修改HD块时,都会复制它。
这是FS-agnostic因此你可以把任何你想要的FS放在它上面。 它也将与心跳同时工作,这将允许您在原始节点死亡后立即启动热备份。