rsync udr——远程大文件传输加速

本文介绍了大文件远程传输场景下,rsync udr 模式的应用方法和加速效果。

什么是 rsync?

rsync 是一款快速增量备份工具,相似 Unix 系统下的数据镜像备份工具——RemoteSync。rsync 远程同步支持本地复制、与其余ssh、rsync主机同步。python

其特性以下:git

一、能够镜像保存整个目录树和文件系统。github

二、能够很容易作到保持原来文件的权限、时间、软硬连接等等。shell

三、无须特殊权限便可安装。bash

四、快速:第一次同步时 rsync 会复制所有内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程当中能够实行压缩及解压缩操做,所以可使用更少的带宽。网络

rsync 能够经过 rsh 或 ssh,也能以 daemon 模式去运行,在以 daemon 方式运行时 rsync serve r会打开一个 873 端口,等待客户端去链接。链接时,rsync server 会检查口令是否相符,若经过口令查核,则能够开始进行文件传输。第一次连通完成时,会把整份文件传输一次,之后则就只需进行增量备份。运维

在平常运维中,使用 rsync  的本地模式来代替cp/scp拷贝文件、使用 rsync 的  shell 或 daemon 模式来完成用户、idc 间大量数据的交换,其实也是一种不错的选择。在此基础上,咱们为了让数据能更快的传输,可使用  rsync 的 udr 模式,现 github 上有开源代码供用户下载使用。ssh

udr 模式能够理解为是 rsync 的一个升级版本,在 rsync 服务外封装了一层服务来替代 rsync 的daemon模式,数据传输过程当中采用了 UDT 协议。工具

备注:UDT 是基于 UDP(UDP-based Data Transfer Protocol)的互联网数据传输协议。

如何使用 rsync 的 udr 模式

一、下载地址

https://github.com/LabAdvComp/UDR
测试

二、安装

下载解压后执行 make 操做,会生成 udr 命令:

make -e os=XXX arch=YYY 
XXX: [LINUX(default), BSD, OSX]
YYY: [AMD64(default), POWERPC, IA64, IA32]复制代码

三、配置

主配置文件 udrd.conf

主配置中调用了 rsyn c  的配置文件 rsyncd.conf(目录、用户权限配置等,更多的配置详解可参考官网文档)

四、启动

主配置默认启动在 /etc/udrd.conf,如在别的路径,可加-c来指定

python udrserver.py [-v] [-s] [-c configfile] start|stop|restart|foreground复制代码

五、使用

在原rsync命令执行的时候,前面加udr命令便可

udr rsync hostname.com::module/path/to/file复制代码

测试对比

目前测试环境有限,只在内网环境下进行了测试:

一、在稳定的内网网络环境(同网段)用两种不一样的传输方式屡次进行了对比,udr方式和常规的rsync方式速度基本至关。

二、在内网网络环境(跨网段、跨机房)用两种不一样的传输方式屡次进行了对比,udr方式要明显快于常规的rsync方式,传输大小为1G的文件进行对比:

小结

udr服务简单来讲就是使用UDP协议把原来使用TCP协议的rysnc服务来封装起来,使用 UDP 协议来传输数据,适用于远距离的大文件传输,效果会更明显。有适合这种场景的同窗能够拿来一试。

本文首发于公众号“小米运维”, 点击查看原文
相关文章
相关标签/搜索