场景:
1台NAS(Synology Cubestation CS407)
各种实体零售商店中的20台远程服务器(每个商店1台服务器)
总部和商店之间的networking位于MPLS / VPN中。
我已经从每个商店服务器创build了无密码访问到我们的NAS。
我已经创build了一个bash脚本,用于备份特定的一组文件夹,数据从2.5到14个数据库,具体取决于商店。
bash脚本在各个存储服务器上运行,并使用Rsync将文件夹复制到NAS中
rsync -azv --delete-after --stats /u/archive/ root@nas01:/volume1/bak/$HOSTNAME/u/archive$(date +%u)/
题:
我可以安全地在多个服务器上同时安全地执行这个脚本,每晚在ie 2AM – NAS上的Rsync可以同时处理来自多个服务器的传入数据/连接吗?
更新:
所以我昨天凌晨2点运行了备份脚本,只在最老的/最大的存储(store1)上运行备份脚本,备份了大约9.5G的数据。 这新鲜/完整的Rsync花了1小时6分钟。
我做了testing的商店昨天早些时候运行(store8)也同时备份到store1。 Store8拥有2.4G的数据,耗时29分钟。
我昨天早些时候用store8testing新鲜/完整的Rsync,花了9分钟才完成。 而立即连续3分钟的Rsync,意味着没有文件变化。
正如已经提到的那样,我打算错开/安排Rsyncs来平衡负载。
附加信息:
什么是备份:
3个目录,bash脚本运行3个Rsync命令
– 方向1:存档数据/销售数据,不更新数据,每天添加约30个文件的1个文件夹。
– 方向2:主数据目录,POS系统的设置,今天的销售数据。
– 方向3:PostgreSql数据库目录。 计划在Rsync之前运行pg_dump。
数据如何分割:
– 方向1:这是增量目录,从8.3G(store1,15年)到70M(store17,3个月)
– 方向2:0.5G到1G,平均90K文件和4000 dirs
– 方向3:0.1G到0.4G,数据库文件,平均450个文件和13个目录
带宽:
总部:100 / 100Mbit光纤。
存储:ADSL,根据手边的铜线,在1到2 Mbit之间上传。
NAS:
Synology Cubestation CS407(DSM 3.1)
4x STM3250310AS,迈拓DiamondMax 21
– SATA 3.0Gb / s
– 250GB的容量
– 7200转
– 8MBcaching
– 4.16ms平均延迟
在RAID 5中configuration
总容量684GB
130GB使用(19%)
一旦我有程序运行,我很可能会replace这个老化的NAS和驱动器
你可以运行这个脚本,但这取决于你想要的安全性。
-azv表示存档,压缩,详细
--delete-after意味着你删除了任何从源服务器到达目的服务器之后rsync被closures的东西。
20台服务器到1台服务器…是可行的。
假设如下:
您的限制因素将是您的networking带宽
这不考虑您的NAS是否可以同时处理多个stream所需的性能,或者是否有任何其他进程正在进行。 根据我的经验,我已经看到10GB的rsync是永远的,因为有成千上万的文件; 你拥有的文件越多,所需的时间就越长。 同时运行的同步rsync进程越多,处理得到的分布越多,这可能会延迟您的rsync; 如果你的备份是时间敏感的,你将需要警惕你的rsync过程如何快速完成。
最后,如果你需要更好的性能,你可能会想要错开你的rsync时间表或投资更好的NAS / SAN。
注意:如果你的带宽分配允许20Mbit传入,那么你的rsync时间是你的1/2,但是你的NAS仍然会有巨大的性能。
添加到其他答案(他们都有有效的点 – 带宽在这里也是重要的!)。 一个快速的networkingsearch显示,你提到的NAS似乎有一个运行在500MHz和128 MB的RAM的Marvell 5281 CPU。
虽然技术上rsync可以处理多个连接,但是我build议你不要同时运行所有的工作,而是在下一个工作开始之前在每个工作完成足够长的工作之间留下一个空白,所以理想情况下,没有工作同时进行。 这个硬件看起来不够强大,我不能拥有20个同时连接。
您当然需要根据您在该位置的可用带宽和NAS的整体写入性能来计算此偏移量。
是的,因为你把文件放在NAS上的不同path上是安全的。 是的,rsync有多个连接。 这样就可以了。