多台服务器同时 Rsync 到一台 NAS

多台服务器同时 Rsync 到一台 NAS

设想:

总部设有 1 台 NAS(Synology Cubestation CS407),
各个实体零售店设有 20 台远程服务器(每家店 1 台服务器)

总部与商店之间的网络采用 MPLS/VPN。

我已经从每个商店服务器到我们的 NAS 创建了无密码访问。

我创建了一个 bash 脚本,可以根据商店备份特定文件夹,其中数据大小从 2.5 到 14 GB 不等。

bash 脚本在各个商店服务器上运行,并使用 Rsync 将文件夹复制到 NAS

rsync -azv --delete-after --stats /u/archive/ root@nas01:/volume1/bak/$HOSTNAME/u/archive$(date +%u)/

问题:

我可以在每晚(即凌晨 2 点)在多台服务器上安全地同时执行此脚本吗?NAS 上的 Rsync 可以同时处理来自多台服务器的传入数据/连接吗?

更新:

所以我昨晚 2 点运行了备份脚本,仅在最旧/最大的存储(store1)上运行,该存储有大约 9.5G 的备份数据。这个全新/完整的 Rsync 耗时 1 小时 6 分钟。

我昨天早些时候测试过的商店(store8)也与 store1 同时备份。Store8 有 2.4G 的数据,耗时 29 分钟。

我昨天早些时候对 store8 进行了全新/完整 Rsync 测试,花了 9 分钟才完成。而立即连续 Rsync 则花了 3 分钟,这意味着几乎没有文件更改。

正如已经建议的那样,我计划错开/安排 Rsyncs 来均衡负载。

附加信息:
备份内容:
3 个目录,bash 脚本运行 3 个 Rsync 命令
- 目录 1:存档数据/销售数据,无数据更新,1 个文件夹,每天添加约 30 个文件。
- 目录 2:主数据目录,POS 系统设置,今天的销售数据。
- 目录 3:PostgreSql 数据库目录。计划在 Rsync 之前运行 pg_dump。

数据如何分割:
- 目录 1:这是递增目录,范围从 8.3G(store1,15 年)到 70M(store17,3 个月)
- 目录 2:0.5G 到 1G,平均 90K 个文件和 4000 个目录
- 目录 3:0.1G 到 0.4G,数据库文件,平均 450 个文件和 13 个目录

带宽:
HQ:100/100Mbit 光纤。
商店:ADSL,取决于手头的铜线,上传速度在 1 到 2 Mbit 之间。

NAS:
Synology Cubestation CS407 (DSM 3.1)
4x STM3250310AS、Maxtor DiamondMax 21
- SATA 3.0Gb/s
- 250GB 容量
- 7200 RPM
- 8MB 缓存
- 4.16ms 平均延迟
配置为 RAID 5
684GB 总容量
130GB 已使用 (19%)

一旦我运行了该程序,我很可能会更换这个老化的 NAS 和驱动器

答案1

您可以运行该脚本,但这取决于您在安全性方面寻求什么。

-azv表示存档、压缩、详细

--delete-after意味着您将删除在到达目标服务器后从源服务器 rsync 出来的任何内容。

20 台服务器到 1 台服务器...是可行的。

假设以下情况:

  • 20 x 2.5GB = 50GB(每次 rsync 会话必须 rsync 的总数据量)
  • 10Mbit = 1.25MB/s(NAS 站点可用于传输来自互联网的流量的带宽)
  • (4)RAID1 = 190MB/s 或 RAID5 = 200MB/s 中的 7200RPM SATA 硬盘(硬盘数量、速度和吞吐能力)

您的限制因素是您的网络带宽

  • 50GB = 51200MB
  • 51200MB / 1.25MB/s = 40960秒 = 682分钟 = 11小时

这没有考虑您的 NAS 是否可以同时处理多个流所需的性能,或者您是否有其他进程在运行。根据我的经验,我见过 10GB 的 rsync 需要很长时间,因为有数十万个文件;文件越多,需要的时间越长。同时运行的 rsync 进程越多,处理就越分散,这可能会延迟您的 rsync;如果您的备份对时间敏感,您需要注意 rsync 进程的完成速度。

最后,如果您需要更好的性能,您可能还需要错开您的 rsync 计划或投资更好的 NAS/SAN。

注意:如果您的带宽分配允许 20Mbit 传入,那么您的 rsync 时间将减少一半,但您的 NAS 性能仍然会受到很大影响。

答案2

补充其他答案(它们都有正确的观点 - 带宽在这里也很重要!)。快速的网络搜索显示,您提到的 NAS 似乎有一个以 500MHz 运行的 Marvell 5281 CPU 和 128 MB RAM。

虽然从技术上讲 rsync 可以处理多个连接,但我建议您不要尝试同时运行所有作业,而是在作业之间留出足够长的间隔,以便每个作业在下一个作业开始之前完成,这样理想情况下就不会有作业同时运行。对于我来说,这个硬件似乎不够强大,无法同时支持 20 个连接。

当然,您需要根据该位置的可用带宽和 NAS 的整体写入性能来计算此偏移量。

答案3

是的,因为你将文件放在 NAS 上的不同路径上,所以它是安全的。是的,rsync 可以进行多个连接。所以这样就没问题了。

相关内容