Friday, September 07, 2007

FreeNAS + RSYNC = 備份伺服器

FreeNAS是一個功能齊全的檔案伺服器,其安裝完成後的系統檔案約僅有32MB(可使用CF卡配上CF轉IDE的轉接版),記憶體需求為128MB。因此只要有一台普通舊電腦,可以接上大容量硬碟,就可以在家中弄一台專用的檔案伺服器囉。(ps. FreeNAS支援無線網路)

然而麻雀雖小,五臟俱全,FreeNAS提供Windows網芳(Samba)、FTP、NFS、Unison、UPnP、AFP、RSYNCD等檔案傳輸協定,可滿足一般常用的需求。

關於FreeNAS的安裝及設定,chicman已經有一系列完整的介紹︰

http://chicwks.blogspot.com/search/label/FreeNAS

這邊我要特別介紹的是rsync的應用,rsync是linux系統常用的遠端同步化工具。例如debian的官方套件庫除了可以在官方的伺服器找到之外,還存在於許多社群提供的伺服器,這些社群提供的伺服器,就是官方伺服器的mirror站,而mirror站就可以使用rsync的工具來進行與官方站同步化的工作。rsync的簡單概念就是,它可以把一台電腦上的一個特定目錄及其子目錄,完整的同步到另一台電腦上的指定目錄下,並完全保留原始權限設定。而且透過rsync的技術,每次的同步化工作,僅會更新有修改的部份,以減少資料傳輸量及提高速度。

不過就FreeNAS來說,使用rsync的另一個應用就是備份囉,把客戶端主機(可以是windows、mac或unix-like系統)的特定目錄資料,完整備份到FreeNAS主機上;而在必要的時候,可以再透過RSYNC進行還原。同時FreeNAS還提供軟體RAID功能,因此可以使用RAID 1來大大提高資料儲存的安全性。

FreeNAS的安裝設定請參考chicman的文章,以下介紹RSYNCD的設定及客戶端使用 -

rsync 主機端的設定︰
1. 建立使用者/群組
 a. 建立名為system的群組(名字可自行指定)
 
 

 b. 建立名為rsync的使用者(名字可自行指定)
 
 

2. 設定rsync遠端備份主機︰
開啓
rsync的設定非常的簡單,只要進入 服務:RSYNCD 頁面,並啓用服務即可。
  
 

ps. 因為rsync預設使用873的連接埠,因此若前端有防火牆,應注意開啓這個連接埠。

Unix like系統的rsync客戶端設定︰
Unix like系統一般都已經有rsync的程式可以使用,rsync的官方網頁位於http://samba.anu.edu.au/rsync/。rsync的設定及指令可以參考使用如下︰

1. 首先建立rsync的伺服端密碼檔 編輯 /etc/rsyncd.passwd 這個檔案,填入FreeNAS上rsync這個使用者的密碼。

2. 使用以下的指令,將客戶端的 /var/www/ 目錄,整個備份到FreeNAS主機上以rsync-disk為分享名稱的硬碟中︰
# rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /var/www rsync@140.117.120.224::rsync-disk
其中參數的說明如下︰
-a︰保留權限,除了Hard Link -r︰遞迴地複製目錄中的所有目錄
-H︰保留 Hard Link
-z︰資料備份前先壓縮 --progress︰顯示進度
--delete︰如果要備份的主機上刪除了某個檔案,備份的主機也刪除某個檔案
--password-file︰密碼檔的位置
rsync@140.117.120.224 前面的 rsync 是使用者帳戶。

3. 為了能夠定期的自動備份,可將此指令寫進/etc/crobtab中。例如在該檔案中加入︰
0 5 * * * root /usr/bin/rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /var/www rsync@140.117.120.224::rsync
則系統就會在每天早上五點中自動進行備份工作。

Windows系統的rsync客戶端設定 ︰

1. cwRsync是一個for Windows系統的rsync程式,其官方網址如下︰
http://www.itefix.no/cwrsync/
2. cwRsync是一個指令示的程式,安裝該程式之後,其使用方式與Unix like系統雷同。在預設情況下,cwRsync是安裝在C:\Program Files\cwRsync\目錄下,其程式檔位於C:\Program Files\cwRsync\bin之中。

3. 使用此程式,應先進立編輯一個密碼檔rsyncd.passwd(置放的目錄可自己決定,我是放在C:\Program Files\cwRsync\bin中),其內容即為備份主機上,rsync這個使用者的密碼。

4. 開啓一個console模式視窗(cmd),並使用以下指令,將位於C:\data目錄中的資料,整個備份到FreeNAS主機上以rsync為分享名稱的硬碟中︰
"C:\Program Files\cwRsync\bin\rsync.exe" -arHz --progress --delete --password-file="C:\Program Files\cwRsync\bin\rsyncd.passwd" /cygdrive/c/data rsync@140.117.120.224::rsync
要注意的是,在指令中,原本的C:\data路徑,在指令中必須寫成/cygdrive/c/data。

5. 在Windows下要進行定期自動備份工作,可以使用Windows的工作排程,並且輸入第4點中所設定的指令。

6. cwRsync目前尚未有完整支援Windows Vista的版本,在Vista上使用,可能會因為莫明的原因,造成備份過程出現錯誤(在FreeNAS備份主機端所建立的目錄,其權限為000,造成無法繼續備份),此部份的解決方式還有待查詢。

2 comments:

信璋 said...

C大你好
你的BLOG進不去
http://chicwks.blogspot.com/search/label/FreeNAS
個人最近對FREENAS有興趣
也了解你在這方面獵取甚多
想爬你BLOG的文章
不過進不去

另外FREENAS是否有PPPOE的撥接功能??

Chinson said...

http://chicwks.blogspot.com/search/label/FreeNAS

你好,上述的網址並不是我的Blog,是chicman大大的。
FreeNAS是幾年前玩過的東西,很久沒玩囉
可能要你自己做功課啦 呵呵