我正面临重建邮件存储所在的卷(kerio 邮件服务器,使用 maildirs)。我需要尽快备份和恢复存储目录中的 350 多万个(约 600GB)小文件。通过 rsync 到 NFS 共享需要 12 多个小时,但我还有一个 1TB 的 firewire 800 raid1 磁盘可以使用(从一些初步测试来看,它速度更快)。我正在使用 XServe intel。最快的方法是什么?Rsync?Finder 复制?tar?
答案1
我认为 rsync 是这种情况下的最佳选择之一。您可能希望跳过 Mac OS X 内置的 rsync 2.6.9,转而使用通常速度更快的 rsync 3。您可以使用以下命令获取 rsync 3.0.6 的预编译 Mac 优化通用二进制文件备份,一个免费的基于 rsync 的备份实用程序。(在 /usr/local/maclemon/bin/rsync 中安装 rsync)为了全面和公平地披露:我是 mlbackup 的作者。
如果此服务器是您的实时邮件服务器,您可能希望对 FireWire 设备进行 rsync 复制,并让它花费所需的时间(并且它会花费时间)。当您准备好时,只需重新运行 rsync 命令即可将其更新为当前状态,这将花费更少的时间。
我建议你直接将 rsnyc 复制到另一个驱动器,然后从新驱动器运行邮件服务器。这样你只需要复制一次。不知道你的 Xserve 中是否有备用托架,或者你是否可以从外部驱动器运行几天。使用这种技术,你可以将备份和恢复到内部驱动器的过程分成不同的事件,你可能在两个周末完成这些事件,以将服务停机时间降至最低。
只需确保您有多个数据备份,以防万一。您不希望出现任何问题。
你也可以看看 Alex 的精彩邮件它将一直运行到 10.5.8,兼容 Snow Leopard 的版本正在开发中并将在不久的将来发布。
答案2
12 小时内 600GB 的速度为 50GB/小时或 111Mb/s,因此假设使用千兆以太网,速度不会那么快。火线驱动器可能是一个更快的选择,但您是否相信它是您通过 NFS 共享对这些数据的唯一备份?事实上,您真的只想要这些数据的一个备份吗?
您是否尝试过按照以下方式将备份拆分为多个 rsync 进程并行化 RSYNC 进程? 这会给您的 CPU 和 IO 带来更多负载,因此您需要测试一次可以运行多少个同时 rsync 进程。
答案3
我怀疑瓶颈在于 NFS 服务器上的增量写入磁盘。如果您有能力执行此操作,我认为通过 tar 流式传输或将其打包然后直接移动会更好。您将失去 rsync 的增量方面,但我认为与 rsync 相关的文件系统爬行的开销可能比实际复制的开销更大。特别是如果到 NFS 服务器的距离不是那么远并且那里有很多带宽(听起来确实如此)。