2007年6月8日 星期五

Linux的異地備份(Offsite Backup)(1)

Linux據說不太適合用ghost進行備份資料,所以我就開始尋找其它的替代方案

原本有考慮使用cpio或是軟體raid的方式來進行備援,但有不適合即時復原和成本太高的問題,所以改用了rsync的備援方式

它的好處就是能夠最資料的比對,如果是異地備份的話,還是以ssh的加密法來傳送資料(在區網之內效益較大),如果是internet的備份,如果是利用有限頻寬的ADSL來傳送資料,就不太適合了!

筆者是以Fedora6做為系統,在安裝的過程中,rsync也已經安裝完成,皆以xinetd這個Super Daemon控制,相關的內容有興趣者可以上Google查一下!

為了資料能夠即時備援上線,筆者使用了兩台主機,雖然都是一般的pc,並沒有什麼較為特別的主機(但是因為Linux的硬體需求較低)

所以,我用了一台p4-2.4g、512mb的ddrram(DDR400)當主要系統,p3-850MHz、384mb的sdram(pc133)為異地的備援機(為了備援主機,筆者還碰上了一些硬體相關的問題,之後在與大家討論)

不過這也告訴我們,大家舊的主機可不一定就沒有派上用場,因為如果一個類似NAS功能的主機,動輒就要五、六位數的花費,雖然專業的主機有較好的效能,但是用舊機器一樣也能練練功力

至於rsync的指令用法有相當多,有興趣的人可以參考官方網站的說明文件(英文的說明文件,請笑納)

筆者在這裡也介紹常用的一些參數:
-a, --archive archive mode; same as -rlptgoD
(維持相關資料,hard-links除外)
-v, --verbose increase verbosity(在傳送期間,顯示傳送過程的資訊)
-R, --relative use relative path names(保留相對路徑)

--delete, delete extraneous files from dest dirs
(Server端刪除資料,Client也同步刪除)

而在Fedora6中的rsync已經預設使用ssh的加密法傳送,在舊版還需加上-e ssh才能使用加密傳送,但是ssh做自動化的異地傳送還有個問題要解決

那就是就算在Crontab中加上了一行自動排程執行的指令:
0 0 * * * rsync -avR --delete /home root@192.168.1.99:/home/backup
(凌晨0點0分進行rsync,把/home的資料傳去192.168.1.99的/home/backup備份)

但是ssh做登入時,會遇到一個棘手的問題,那就是輸入密碼這件事!

筆者下一篇會解說如何解決自動登入的問題,那就是利用公鑰(Pub-Key)登入

...下回待續...