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 協議來傳輸數據,適用於遠距離的大文件傳輸,效果會更明顯。有適合這種場景的同窗能夠拿來一試。

本文首發於公衆號「小米運維」, 點擊查看原文
相關文章
相關標籤/搜索