利用Rsync技术在服务器之间的超大文件单点传输的实现
根据需求,实现windows 服务器和linux 服务器,以及linux 服务器和linux服务器之间的文件单点传输功能。
本次示例选取,物理机为win7,vmware 虚拟机安装的俩台linux,共三台机器,将文件从windows 传输到 linux 再传输到另外一台 linux,其中使用 java 调用shell 脚本来实现过程,技术上使用Rsync。以CentOS7.2 作为Rsync 的客户端,来操作 Win7 和 CentOS6.5 的 Rsync 服务端,将文件从 Win7 上拉下来到CentOS7.2,再将文件推到CentOS6.5 上。
过程如图所示:
接下来,首先介绍Rsync 的传输性能方便的验证,主要针对其备份功能;再介绍Rsync 在 Windows 和Linux 下作为服务端的安装配置,最后再进行上述的传输示例。
一、Rsync同步更新备份性能验证
首先针对Rsync传输文件的性能和可靠性进行验证。选取同名俩个大文件进行验证使用Rsync下的传输性能。 其中一个test.rar 大小:9.06 GB (9,729,232,997 字节),另一个test.rar 大小:5.16 GB (5,543,657,986 字节)。并且小的test.rar 中的文件在大的test.rar 中都存在,如图:
1. 传输同名小文件
首先将小的文件5.16 GB的test.rar 传输到slaverone机器上
“/home/slaverone/2”目录下,传输的实时速度和平均速度如图所示:
可见传输在 15%时候的速度是 10.55MB/S,传输完的平均速度为
12.23MB/S,耗时7 分12 秒。
2. 传输同名大文件
接下来再将大的文件9.06 GB 的test.rar 同名文件上传到slaverone 的相同目
录下“/home/slaverone/2”,传输的实时速度和平均速度如图所示:
可见在传输在28%的时候的实时速度为39.63MB/S,当传输到58%时候,实
时速度为8.92MB/S,最终传输完的平均速度为16.17MB/S。
3. 对比和总结
第二次9.06 GB 大文件的传输,可以看出50%之前的速度很高,期间一度达
到60MB/S 左右,在50%之后速度降下来变成10MB/S 左右和第一次传输小文件
(5.16 GB 的test.rar)速度差不多。这是因为,小文件(5.16 GB 的test.rar)大
概占大文件(9.06 GB 的test.rar)的50%多,所以前半部分传输时候,使用了rsync
算法,极大提高了传输相同文件的速度,后半部分传输则是传输不同类型的文件,
则速度正常值。
由此可以看出,rsync 可以用于服务器间文件传输、同步、更新的速度提高。
二、什么是Rsync
rsync,remote synchronize 顾名思意就知道它是一款实现远程同步功能的软
件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信
息。 rsync 是用 “rsync 算法” 提供了一个客户机和远程文件服务器的文件同