rsync udr——遠端大檔案傳輸加速

小米運維發表於2018-10-29

本文介紹了大檔案遠端傳輸場景下,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、下載地址


2、安裝

下載解壓後執行make操作,會生成udr命令:

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

3、配置

主配置檔案   udrd.conf

rsync udr——遠端大檔案傳輸加速

主配置中呼叫了rsync的配置檔案rsyncd.conf(目錄、使用者許可權配置等,更多的配置詳解可參考官網文件)

rsync udr——遠端大檔案傳輸加速

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的檔案進行對比:

rsync udr——遠端大檔案傳輸加速

rsync udr——遠端大檔案傳輸加速

小結

udr服務簡單來說就是使用UDP協議把原來使用TCP協議的rysnc服務來封裝起來,使用UDP協議來傳輸資料,適用於遠距離的大檔案傳輸,效果會更明顯。有適合這種場景的同學可以拿來一試。rsync udr——遠端大檔案傳輸加速

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559359/viewspace-2217868/,如需轉載,請註明出處,否則將追究法律責任。

相關文章