本文介绍了大文件远程传输场景下,rsync udr模式的应用方法和加速效果。
一
什么是rsync?
rsync是一款快速增量备份工具,类似Unix系统下的数据镜像备份工具——RemoteSync。rsync远程同步支持本地复制、与其他ssh、rsync主机同步。
其特性如下:
1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、无须特殊权限即可安装。
4、快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
rsync可以通过rsh或ssh,也能以daemon模式去运行,在以daemon方式运行时rsync server会打开一个873端口,等待客户端去连接。连接时,rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。
在日常运维中,使用rsync的本地模式来代替cp/scp拷贝文件、使用rsync的shell或daemon模式来完成用户、idc间大量数据的交换,其实也是一种不错的选择。在此基础上,我们为了让数据能更快的传输,可以使用rsync的udr模式,现github上有开源代码供用户下载使用。
udr模式可以理解为是rsync的一个升级版本,在rsync服务外封装了一层服务来替代rsync的daemon模式,数据传输过程中采用了UDT协议。
备注:UDT是基于UDP(UDP-based Data Transfer Protocol)的互联网数据传输协议。
二
如何使用rsync的udr模式
1、下载地址
https://github.com/LabAdvComp/UDR
2、安装
下载解压后执行make操作,会生成udr命令:
make -e os=XXX arch=YYY
XXX: [LINUX(default), BSD, OSX]
YYY: [AMD64(default), POWERPC, IA64, IA32]
3、配置
主配置文件 udrd.conf
主配置中调用了rsync的配置文件rsyncd.conf(目录、用户权限配置等,更多的配置详解可参考官网文档)
4、启动
主配置默认启动在/etc/udrd.conf,如在别的路径,可加-c来指定
python udrserver.py [-v] [-s] [-c configfile] start|stop|restart|foreground
5、使用
在原rsync命令执行的时候,前面加udr命令即可
udr rsync hostname.com::module/path/to/file
三
测试对比
目前测试环境有限,只在内网环境下进行了测试:
1、在稳定的内网网络环境(同网段)用两种不同的传输方式多次进行了对比,udr方式和常规的rsync方式速度基本相当。
2、在内网网络环境(跨网段、跨机房)用两种不同的传输方式多次进行了对比,udr方式要明显快于常规的rsync方式,传输大小为1G的文件进行对比:
小结
udr服务简单来说就是使用UDP协议把原来使用TCP协议的rysnc服务来封装起来,使用UDP协议来传输数据,适用于远距离的大文件传输,效果会更明显。有适合这种场景的同学可以拿来一试。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559359/viewspace-2217868/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31559359/viewspace-2217868/