ZFS通过不可靠的慢速WAN进行同步。 ZFS复制或rsync?

我一直负责通过广域网进行异地备份工作。 两个存储盒都是运行ZFS的基于FreeBSD的NAS盒子。

每周一次或两次,15-60摄影的数据被转储到办公室NAS。 我的工作是弄清楚如何使用非常慢的DSL连接(〜700Kb / s上传)尽可能可靠地获取这些数据。 接收盒的形状更好,在30Mb / s下,5Mb / s以上。

我知道,携带硬盘驱动器可以更快地移动数据,但在这种情况下,这不是一个选项。

我的select似乎是:

  • ZFS增量通过ssh发送
  • Rsync的

rsync是一个时间已久的解决scheme,并具有重要的能力,如果事情被打断,恢复发送。 它具有迭代许多文件而不知道重复数据删除的缺点。

ZFS快照发送可能会传输less量的数据(它比文件系统知道更多,可以执行重复数据删除,可以比rsync更有效地打包元数据更改),并且具有正确复制文件系统状态的优点,而不是简单地复制单独的文件(这是更多的磁盘密集型)。

我担心ZFS的复制性能[1](尽pipe那篇文章已经一岁了)。 我还担心,如果出现问题,能够重新启动传输 – 快照function似乎不包括这一点。 整个系统需要完全放手。

[1] http://wikitech-static.wikimedia.org/articles/z/f/s/Zfs_replication.html

使用任一选项,我应该能够通过路由指定端口,然后使用路由器上的QOS来优先化stream量。 我需要避免在每个传输过程中对这两个站点的用户产生重大负面影响,因为这需要几天的时间。

所以…这是我在这个问题上的思考。 我错过了任何好的select? 有没有其他人设置类似的东西?

  1. 如果您每天最多可以传输6GB(假设零开销和零竞争stream量),并且您需要以“每周一次或两次”的频率移动“15-60个演出”,这个频率可以达到15-120 GB每周,或每天2-17 GB的任何地方。 因为需要计划高峰需求,而17 GB甚至远远超过了6 GB的理论最大值,所以很可能会出现非常严重的带宽问题。 升级连接需要什么? 如果不能升级连接,请考虑定期邮寄物理媒体(例如每周)的选项。

  2. 假设你可以得到更多的带宽数据, rsync可能是最好的select。 重复数据消除意识在复制高度冗余的数据(如虚拟机镜像)时非常有价值,但对于独特的数字内容(audio,video,照片)应该没有多less好处,除非用户是无意中存储了相同文件的重复副本。

在做一些研究后,我相信你发送快照是正确的。 ZFS SENDRECEIVE命令可以传送到bzip2,然后可以将该文件rsync-ed传送到另一台机器。

以下是我使用的一些资源:

  • “ Oracle Solaris ZFSpipe理员指南”第211页(或此处的 Web版本)开始讨论这个问题。

  • 我还发现了一个博客文章 ,给出了一个简单的例子。 这个博客还显示了通过bzip2传输比特stream。

我没有发现任何发布复制脚本的post,但我确实发现有人发布了他们的备份脚本 。 这就是说,我不明白,所以它可能是垃圾。

许多网站谈到设置一个cron工作来经常这样做。 如果是这种情况,您可以对带宽和用户的影响较小的复制/备份,并且是一个很好的灾难恢复function,因为异地数据是最新的。 (也就是说,在开始之后的最初数据块之后)。

再次,我认为你有正确的想法发送快照似乎有很多优点,使用SEND / RECEIVE

编辑:只是看了一个video1 video2 ,可能有助于suports使用SEND / RECEIVE和谈论rsync(开始于3m49s)。 本洛克伍德是演讲者,这是他的博客链接。

备份的目的是什么?他们需要如何访问?

如果您的备份主要用于灾难恢复,那么ZFS快照可能更可取,因为您可以使文件系统回到最后一次增量时的确切状态。

但是,如果您的备份也应该为用户提供访问可能被意外删除,损坏等的文件,那么rsync可能是更好的select。 最终用户可能不了解快照的概念,或者您的NAS可能无法为最终用户提供对以前快照的访问权限。 无论哪种情况,您都可以使用rsync来提供用户通过文件系统轻松访问的备份。

使用rsync,您可以使用–backup标志来保留已更改文件的备份,并使用–suffix标志可以控制旧版本文件的重命名。 这可以很容易地创build一个备份,你可能已经过时了旧版本的文件

 file_1.jpg file_1.jpg.20101012 file_1.jpg.20101008 etc. 

您可以轻松地将其与包含find命令的cronjob结合,以根据需要清除所有旧文件。

这两个解决scheme应该能够保留足够的关于文件的元信息作为备份(rsync提供了–perms,–owner等标志)。 我使用rsync来备份数据中心之间的大量数据,并对设置非常满意。

ZFS应该收到“可恢复发送”function,这将允许在今年3月左右的时间内继续中断复制。 这个function已经由Matt Ahrens和其他一些人完成了,应该很快就会出现。

也许WAN压缩设备会解决…? 我们使用Riverbed,我们对它们感到非常满意(例如,NetApp SnapMirror压缩比非常好,高达80-90%)。