陳純武
(中國民用航空汕頭空中交通管理站 氣象臺,廣東 汕頭515041)
氣象雷達(dá)的產(chǎn)品一般都是通過天線掃描,得到原始的回波信號后經(jīng)過雷達(dá)機(jī)柜里的信號處理器預(yù)處理后通過網(wǎng)絡(luò)傳輸?shù)街鞴ぷ髡旧?,再?jīng)過主工作站上雷達(dá)廠家的軟件,對原始數(shù)據(jù)進(jìn)行二次加工,生成符合預(yù)報(bào)員或者管制員要求的產(chǎn)品,然后再通過ftp的方式將產(chǎn)品分發(fā)給后端的用戶。但是ftp在分發(fā)資料的時(shí)效性和速度上已經(jīng)遠(yuǎn)跟不上現(xiàn)在一些優(yōu)秀的開源軟件上,比如說rsync。而且多個(gè)用戶通過ftp以細(xì)粒度的時(shí)間粒度不斷用循環(huán)任務(wù)來對主工作站進(jìn)行資料請求也是加重了主工作站的IO壓力。本文正是在資料分發(fā)的這個(gè)環(huán)節(jié)上采用了rsync部署了后端的同步和交換服務(wù)器,提高了資料分發(fā)的速度和減輕的主工作站的負(fù)荷。
rsync即remote sync,是一個(gè)Linux/unix系統(tǒng)下的文件同步和數(shù)據(jù)傳輸工具,它采用“rsync算法”來使一個(gè)客戶機(jī)和遠(yuǎn)程文件服務(wù)器之間進(jìn)行數(shù)據(jù)的同步。通過rsync可以將同一個(gè)服務(wù)器的數(shù)據(jù)從一個(gè)分區(qū)備份到另外的一個(gè)分區(qū),也可以將本地?cái)?shù)據(jù)通過網(wǎng)絡(luò)傳輸方式備份到任何一個(gè)遠(yuǎn)程的主機(jī)上,rsync可以在中斷之后恢復(fù)傳輸,也可以只傳輸源文件和目標(biāo)文件之間不一致的部分,它還可以執(zhí)行完整的備份或者增量備份,而且可以通過ssh方式來傳輸文件,這樣其保密性也非常好。
1.2.1 可以鏡像保存整個(gè)目錄樹和文件系統(tǒng)。
1.2.2 可以很容易做到保持原來文件的權(quán)限、時(shí)間、軟硬鏈接等等。1.2.3 無須特殊權(quán)限即可安裝。
1.2.4 優(yōu)化的流程,文件傳輸效率高。
1.2.5 可以使用scp、ssh等方式來傳輸文件,當(dāng)然也可以通過直接的socket連接。
1.2.6 支持匿名傳輸
1.3.1 更快速:可以增量同步數(shù)據(jù),因而同步時(shí)間很短,速度快。
1.3.2 開銷?。簉sync在建立連接的過程只需要進(jìn)行一次握手,不需要像ftp一樣進(jìn)行多次握手。
1.3.3 更高效:rsync在傳輸數(shù)據(jù)的過程中可以實(shí)行壓縮及解壓縮操作,因此可以使用更少的帶寬。
1.3.4 更安全:可以使用scp、ssh等方式來傳輸文件
ryscnc的官方地址為:http://rsync.samba.org/,本文下載的版本為rsync-3.1.0。在官網(wǎng)下載源碼包后進(jìn)行編譯安裝,過程如下:
[root@bogon~]#tar zxvf rsync-3.1.0.tar.gz[root@bogon~]#cd rsync-3.1.0
[root@bogon rsync-3.1.0]#./configure
[root@bogon rsync-3.1.0]#make
[root@bogon rsync-3.1.0]#make install
本次配置的2臺服務(wù)器分別為:
A:氣象雷達(dá)主工作站,IP:192.168.1.1
B:雷達(dá)產(chǎn)品同步ffamp;分發(fā)服務(wù)器,IP:192.168.1.2
配置前需按照上文的方法下載安裝方法在A機(jī)和B機(jī)上安裝rsync軟件。
2.2.1 在A機(jī)上配置rsync
其中server.pass中的內(nèi)容如下:
[root@bogon etc]#cat/etc server.pass backup:zgow
上面選項(xiàng)的含義如下[1]:
uid,指定了該模塊傳輸文件時(shí)的守護(hù)進(jìn)程的用戶ID,默認(rèn)的情況下是“nobody”
gid,指定了該模塊傳輸文件時(shí)的守護(hù)進(jìn)程的組ID,默認(rèn)的情況下是“nobody”
max connection,此選項(xiàng)指定了模塊的最大并發(fā)連接數(shù),以保護(hù)服務(wù)器。超過這個(gè)連接請求將被暫時(shí)限制,默認(rèn)值是0,即沒有限制。
重點(diǎn)工程建設(shè)步伐加快。引大濟(jì)湟工程全面實(shí)施,北干一期干渠前73km全線貫通,調(diào)水總干渠隧洞年底可累計(jì)完成15.19km。拉西瓦、李家峽、公伯峽、積石峽水庫灌溉工程有序推進(jìn),蓄集峽、馬什格羊水庫等重點(diǎn)水源建設(shè)進(jìn)展順利。
pid file,此選項(xiàng)用來指定rsync守護(hù)進(jìn)程對應(yīng)的PID文件路徑
lock file,此選項(xiàng)用來指定支持max connection的鎖文件,默認(rèn)值是/var/run/rsyncd.lock。
log file,此選項(xiàng)指定了rsync的日志輸出文件路徑。[RadarData],模塊名,也表示一個(gè)模塊的開始
path,此選項(xiàng)用來指定需要備份的文件或者目錄
read only,設(shè)置為no表示客戶端可以上傳文件,設(shè)置為yes表示只讀。
write only,設(shè)置為no表示客戶端可以下載文件,設(shè)置為yes表示不能下載
auth users,此選項(xiàng)用來定義可以連接該模塊的用戶名。這里的用戶可以是系統(tǒng)當(dāng)前沒有的用戶,任意定義。
secrets file,此選項(xiàng)用于指定一個(gè)包含“用戶名:密碼”格式的文件,用戶名必須是auth users選項(xiàng)定義的用戶名,密碼可以任意定義。比如本文用到的server.passs,系統(tǒng)默認(rèn)沒有這個(gè)文件,可以自己手動建立一個(gè),文件名和位置任意。
在A機(jī)上啟動rsync守護(hù)進(jìn)程
看到LISTEN就表示rsync已經(jīng)正常啟動并處于監(jiān)聽的狀態(tài)下了。
2.2.2 在B機(jī)上配置rsync
在B機(jī)上不用做太多的設(shè)置,只要正確的安裝了rsync就好,然后手工建立一個(gè)包含著A機(jī)密碼文件里定義好的密碼的文件就好,這樣就可以在同步的時(shí)候不需要每次都自己手動輸入密碼。
接下來執(zhí)行同步操作,具體的指令如下:
具體每個(gè)參數(shù)的含義如下:
在“-vzrtopg”選項(xiàng)中,v是“--verbose”,即詳細(xì)模式輸出。
z表示“--compress”,即在傳輸時(shí)對備份的文件進(jìn)行壓縮處理。
r表示“--recursive”,表示對子目錄以遞歸模式處理。
t表示“--times”,用來保留文件的時(shí)間屬性信息。
o表示“--owner”用來保留文件屬主信息。
p表示“--perms”用來保持文件權(quán)限。
g表示“--group”用來保持文件的屬組信息。
“--delete”選項(xiàng)指定以rsync服務(wù)器端為基準(zhǔn)進(jìn)行數(shù)據(jù)鏡像同步,也就是說服務(wù)器端目錄與客戶端目錄的完全一致。
“--progress”選項(xiàng)用于顯示數(shù)據(jù)同步的過程
“backup@192.168.1.1::RadarData”表示對A服務(wù)器192.168.1.1中的RadarData模塊進(jìn)行同步,backup表示用“backup”這個(gè)用戶對該模塊進(jìn)行同步。
“/home/rainbow/RadarData”用于指定同步文件放在客戶端上的位置。
“--password-file=/etc/server.pass”用于指定客戶端上的密碼文件的存放位置。
rsync作為客戶端工具使用的時(shí)候還有很多有用的參數(shù)和使用的模式,更多詳細(xì)的信息都可以在本機(jī)上執(zhí)行“man rsync”來查看。
實(shí)例1 在B機(jī)上同步A機(jī)的雷達(dá)產(chǎn)品
在局域網(wǎng)內(nèi)進(jìn)行產(chǎn)品的同步的時(shí)候最高的速度可以達(dá)到27.74MB/s,說明rsync的同步效率很高,速度也很快。
實(shí)例2 在A機(jī)上更新目錄里的文件,B機(jī)再一次同步
從上面的結(jié)果可以看出,在A服務(wù)器上更新產(chǎn)品后對A進(jìn)行同步的時(shí)候,B并沒有把A的整個(gè)目錄列表抓取過來,而是只是僅僅同步了更新的部分,這在大量并發(fā)的環(huán)境下可以減少對主工作站的IO壓力。
通過以上的理論和實(shí)際部署實(shí)踐說明,新的開源軟件在實(shí)際應(yīng)用中不僅高效免費(fèi),而且也容易部署實(shí)施,后期還有開源社區(qū)的技術(shù)支持,這對于每個(gè)系統(tǒng)運(yùn)維的人員來說都是非常值得高興的事情。本文用rsync對雷達(dá)產(chǎn)品進(jìn)行同步和交換分發(fā),只是運(yùn)用到了rsync不到十分之一的功能,在實(shí)際的生產(chǎn)環(huán)境中,結(jié)合shell或者其他的開源軟件,rsync在系統(tǒng)的運(yùn)維監(jiān)控上將可以發(fā)揮出意想不到的效果。
[1]高俊峰.高性能Linux服務(wù)器構(gòu)建實(shí)戰(zhàn)運(yùn)維監(jiān)控、性能調(diào)優(yōu)與集群應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2011:130-132.