董秀蕾
摘 要:本文詳細闡述了在Linux系統(tǒng)之間使用Rsync自動備份校園網(wǎng)應用系統(tǒng)數(shù)據(jù)的方法。
關鍵詞:數(shù)據(jù)備份 Linux Rsync
中圖分類號:TP309.3文獻標識碼:B 文章編號:1673-8454(2009)19-0027-02
校園網(wǎng)建設的工作重心主要集中在保證網(wǎng)絡的正常運行和提供良好的網(wǎng)絡服務。除此以外,數(shù)據(jù)備份也是網(wǎng)絡管理員的重要職責之一。對數(shù)據(jù)進行自動遠程備份是保證數(shù)據(jù)安全的有效方法。
一、現(xiàn)狀
校園網(wǎng)中的應用系統(tǒng),比如計費系統(tǒng)和電子郵件系統(tǒng)中積累了大量的用戶數(shù)據(jù),包括用戶的費用和郵件等重要信息,對于此類敏感又很重要的數(shù)據(jù)一定要做好備份。這些數(shù)據(jù)具有實時性的特點,即信息隨時都在發(fā)生動態(tài)變化。因此,要求能夠對數(shù)據(jù)做到周期性自動跟蹤,反之,需要恢復數(shù)據(jù)時能夠恢復到離故障點較接近的時間點,丟失的數(shù)據(jù)盡可能少且在大多數(shù)用戶的可接受范圍內。
目前我校沒有為備份提供專用的存儲空間,在這種情況下,可以使用一臺性能相對穩(wěn)定并且磁盤空間較大的已被替換下來的服務器,作為存儲平臺。同時能夠找到一種相對靈活的備份方案實現(xiàn)備份需求。但是用什么方法將數(shù)據(jù)傳輸過來呢?
二、選擇方案
由于我校大多數(shù)應用系統(tǒng)都使用Linux操作系統(tǒng),在Linux操作系統(tǒng)中數(shù)據(jù)備份方法通常有:(1)Linux系統(tǒng)中常用的備份工具tar、dump、restore等,但這些工具大多數(shù)適合本地備份,對不同主機之間的遠程備份往往力不從心。(2)選擇商業(yè)化的備份和鏡像產(chǎn)品,但是這種產(chǎn)品通常價格昂貴。對于價格高的項目需要審批,從立項到實施周期長。(3)編寫腳本,使用FTP等工具定時傳輸數(shù)據(jù),但是這種方法的缺點是每次都要將所有文件和數(shù)據(jù)重新傳輸一遍,將要備份的文件和已備份文件沒有比較,不考慮哪些文件是新增加的和更新的。當需要備份的數(shù)據(jù)量較大時,更是需要較長時間的網(wǎng)絡傳輸,效率低。(4)使用自由軟件——遠程傳輸工具Rsync,Rsync是一個小巧而靈活但是功能強大的遠程備份工具,它使用“Rsync演算法”提供一個非常快速的文件傳輸方法,使得本地和遠端主機間的文檔達到同步。Rsync只有第一次備份時需要傳輸所有數(shù)據(jù)文件,以后傳輸數(shù)據(jù)時會比較兩組數(shù)據(jù),相同的不再傳輸,只傳輸發(fā)生變化的數(shù)據(jù)部分,因此速度相當快,而且節(jié)省網(wǎng)絡帶寬。由此可以看出,選擇Rsync做備份工具是最佳選擇。
三、制定備份策略
實時數(shù)據(jù)備份對服務器和網(wǎng)絡帶寬的要求較高,因為不停地備份會降低服務器性能,而且會造成網(wǎng)絡負荷過重。與提供良好的網(wǎng)絡服務相比,數(shù)據(jù)備份應該是第二位的,當出現(xiàn)爭搶資源時應該讓位于網(wǎng)絡服務。因此需要制定一個折中的策略——選擇一個合適的時間間隔。白天服務器的訪問量大,用戶操作頻繁,此時不適宜做備份,而晚上的訪問量相對較低,系統(tǒng)和網(wǎng)絡都處于空閑的狀態(tài),此時做備份既可利用系統(tǒng)的低使用率也不會增加網(wǎng)絡負載。因此,選擇每天凌晨備份,一天的數(shù)據(jù)差別在用戶的可接受范圍內。
四、實施方法
Rsync是以服務器/客戶端的方式工作的,較為特殊的一點是Rsync服務器和客戶端都使用同一個程序。啟動服務器的時候需要指明以daemon方式運行,表明啟動的是服務器。而啟動客戶端程序的時候則不需要指定daemon選項。
每臺需要備份數(shù)據(jù)的服務器在設置上都類似,因此以一臺服務器和一組待備份數(shù)據(jù)為例。例如,需要備份數(shù)據(jù)的服務器IP地址為10.0.0.1,該主機稱之為Rsync-server,程序以daemon方式運行;作為存儲平臺的主機IP地址為10.0.0.200,運行Rsync客戶端程序,該主機稱之為Rsync-client。Rsync程序默認運行在TCP的873端口,即Rsync-server會監(jiān)聽873端口,等待對方的rsync連接。當以認證方式登錄時,Rsync-server與Rsync-client連接時會檢查密碼是否相符,如果相符則開始文件傳輸。
1.Rsync-server(10.0.0.1)的配置
Rsync-server需要設置以下幾項:
明確需要建立備份的目錄
設置/etc/xinetd.d/rsync
設置/etc/rsyncd.conf
設置密碼文件
(1)目錄/udata以及子目錄中存有用戶數(shù)據(jù),需要備份。
(2)設定/etc/xinetd.d/rsync,確保文件中兩個參數(shù):
disable = no
server_args = --daemon
使用命令service xinetd restart,使設置生效,使rsync服務進程以daemon方式運行rsync。
(3)Rsync服務器最重要最復雜的就是配置文件/etc/rsyncd.conf,這個配置文件控制著Rsync服務器的認證、訪問、日志、可用模塊等信息。該文件由一個或多個模塊結構組成。一個模塊定義是以方括弧中的模塊名開始,直到下一個模塊名或者文件結束。每個模塊對應一個需要備份的目錄。配置文件以行為單位,模塊中的行是一些參數(shù)賦值或注釋等。
uid = root
read only = yes
list = no
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 10.0.0.200
hosts deny = 0.0.0.0/32
[userdata]
path = /udata
ignore errors
read only = yes
list = no
auth users = secretuser
secrets file = /etc/rsyncd.secrets
前五行指定在daemon模式下運行的Rsync-server是以root用戶的只讀方式運行,指定日志和運行時的進程ID的存放位置,以及允許連接的Rsync客戶端地址等。這些選項是全局的。在模塊[userdata]中指定了需要備份的目錄,忽略了一些無關的IO錯誤,不允許列文件,備份時需要認證,及密碼文件的存放位置等。
(4)密碼文件的格式很簡單,賬號:密碼。例如,/etc/rsyncd.secrets的內容可設為:
secretuser:secretpasswd123
注意,一定要設置密碼文件的屬主和權限,否則備份會失敗。
#chown root.root rsyncd.secrets
#chmod 600 rsyncd.secrets
2.Rsync-client(假設主機地址為10.0.0.200)的配置
Rsync需要設置如下幾項:
規(guī)劃一個容量足夠大的獨立分區(qū),并設置好存儲目錄
編寫備份指令文件
將指令加入crontab列表中,完成定時備份
(1)設置存儲目錄為/backup。
(2)編輯文件rsync-restore,并存放在某一目錄下,比如/目錄下,文件內容為:
rsync-tvzrp-progress-delete secretuser@10.0.0.1::userdata /backup-passwd-file=/etc/rsyncd.pass
命令參數(shù)-tvzrp中的v是將傳輸過程顯示到屏幕中,z是傳輸時壓縮數(shù)據(jù),r是逐級保留目錄及目錄下文件,tp是保持文件原有屬性如權限、時間等參數(shù)。-progress指示詳細的進度。-delete刪除在Rsync-client上存在而Rsync-server上不存在的額外文件,精確保存副本。這一選項對郵件服務器很有實施價值,如果不刪除已經(jīng)不存在的文件,比如用戶郵件,當恢復數(shù)據(jù)時,被用戶刪除過的郵件又會出現(xiàn)在用戶的郵箱當中,這種莫名其妙的事情發(fā)生會給用戶造成困擾。-passwd-file:指定用于rsync服務器的用戶驗證密碼。/etc/rsyncd.pass文件中指定訪問密碼,內容為:secretpasswd123(與Rsync-server的/etc/rsyncd.secrets文件中密碼一致),設置文件權限為讀寫 #chmod 600 rsyncd.pass。
注意,要修改rsync-restore文件的權限,否則備份不會成功。
#chmod 755 rsync-restore
(3)使用crontab命令定時備份文件,編輯如下內容:
0 2 * * * /rsync-restore
這樣,每天凌晨2點Rsync-server就將待備份目錄/udata以及目錄下的文件以目錄樹結構做鏡像自動備份到Rsync-client的/backup目錄下。
五、結束語
當需要恢復數(shù)據(jù)時,在保證重新架設的應用服務程序與原服務程序保持一致的前提下,只要將備份的整個目錄樹恢復到服務器相應的目錄下即可。注意,備份實施過程中設置rsync相關文件時,一定要設置使用權限,否則將導致備份失敗。一般來說,備份用戶數(shù)據(jù)比備份系統(tǒng)數(shù)據(jù)更頻繁一些,合理規(guī)劃備份方案,明確備份的內容、備份時間及備份方式,并進行適時備份可以有效防止重要數(shù)據(jù)的丟失。在日常工作中,備份是管理員的一項重要工作,掌握好備份技巧對管理員的工作很有幫助。
參考文獻:
[1]用Rsync對網(wǎng)站進行鏡像備份[EB/OL]. http://fanqiang.chinaunix.net/a6/b7/20010908/1305001258_b.html
[2]Linux下的遠程備份(鏡像)工具Rsync[EB/OL]. http://wuwd.blog.ubuntu.org.cn/2007/12/22/
(編輯:于黎明)