甚麼是 NBS
----------
NBS 是 Network Backup System 的縮寫 , 這個系統主要是用來備份您的網路主機的資
料 , 簡單來說 , NBS 是一個 client/server 架構的系統 , 也就是說您必須提供一台
機器來提供備份服務 , 一旦您的 nbsd (NBS DAEMON) 成功地跑起來 , 您就能提供網
路上的每一台網路主機備份的服務 , 並且還能提供回存的服務 , 一旦主機資料毀損 ,
即可利用此功能將資料回復 .
NBS 原理
--------
NBS 採用 TCP/IP 為其通訊協定 , 並採取 TCP 固接式相連 , 資料安全性較高 , NBS
採用 PORT 5000 為其通訊埠 , 備份主機可以同時提供多台網路主機同時備份 , NBS的
運作狀況如下所示 :
1
┌───────┐ <-------- request ---------- ┌───────┐
│ Backup │ 2 │ Network │
│ Server │ ----------- OK ------------> │ Host │
│ │ 3 │ │
└───────┘ <--------- data ------------ └───────┘
跑 nbsd 提供備份服務 1. 利用 setnbs 設定環境
nbsd 讀取 /etc/backup.servers來 2. 編輯 備份描述檔(請參考
{ How_To_Use).
1.確認那台主機可以取得服務 3. 跑 nbs 來執行備份或回存
2.確認可取得服務的主機要將
資料備份到那個目錄.
3.確認可取得服務的主機的密碼.
}
一旦權限確認成功 , 即可開始提供服務.
支援平台
--------
目前此系統僅在 FreeBSD 和 Linux 上測試過 , 其它 Unix 系統如果有提供 socket
應能運作無誤 .
如何取得
--------
ftp://mis.im.tku.edu.tw/pub/cooly/NBS/nbs-1.1.1r.tgz
或本站
http://www.freebsd.org.hk/files/unixfreeware/nbs/nbs-1.1.1r.tgz
Server 端的安裝
---------------
要安裝 Server 端程式 , 請進入 server 這個目錄 , 進去後請先編輯 Makefile 這
個檔裡的一個叫 INSTALL_DIR 的變數 , 這個變數用來設定編譯過後的程式該安裝在
那個目錄下 , 預設目錄為 /usr/local/sbin , 改好後只要打
make
即可完成程式的安裝 , 如果預設的目錄沒變 , 在 /usr/local/sbin 下應該會有一個
叫 nbsd 的 Daemon 程式 , 請執行之 , 執行後 , 請打
telnet (您的 ip address) 5000
如果出現如下的訊息的話 , 表示 nbsd 已經開始正常運作了 :
Trying 128.1.1.1...
Connected to polaris.
Escape character is '^]'.
Connection closed by foreign host.
然後 , 請將下面的敘述寫入您的系統初始檔裡 , 如 rc.local , 讓每次系統一啟動就
能自動執行此 Daemon :
echo "Network Backup System Daemon ..."
/usr/local/sbin/nbsd
至此 , Server 端已經安裝完成 , 請參閱 How_To_Use 取得更詳細的使用說明 .
Client 端的安裝
---------------
安裝 client 端程式 , 請先進入 client 這個目錄 ,進去後請編輯 Makefile 裡的一
個叫作 INSTALL_DIR 的變數 , 這個變數用來指定 client 端程式該放到那個目錄 ,
如有需要請將其改成您所要安裝的目錄 , 預設的目錄為 /usr/local/bin , 改好後請
打
make all
即可將程式編譯安裝完成 , 裝完後 , 如果您沒有更改預設的目錄 , 則您會在
/usr/local/bin 下看到兩個檔 nbs 和 setnbs , nbs 是此系統的 client 端程式 ,
而 setnbs 則是用來設定環境用的 , 關於 client 端的詳細用法 , 請參閱 How_To_Use
這個檔有關 client 端的說明 .
如何使用 NBS 系統 :
Server 端
---------
如果您的機器是要做為備份主機的話 , 請按照安裝程序 , 將 server 端程式編譯完成
, 然後您會在 /etc/ 這個目錄下發現有一個叫做 backup.servers 的檔案 , 這個檔是
用來設定那一台主機可以將資料備份到您的備份主機上 , 這個檔主要有三個欄位 , 分
別為: (每個欄位都須以『:』隔開)
主機IP:備份路徑:主機通行密碼;
分述如下:
1. 主機 IP(or DN) -> 即為要將資料備份到備份主機的 IP 位址或是其 Domain
Name .
2. 備份路徑 -> 即當欲備份的主機將資料傳過來時要放置的目錄 .
3. 主機通行密碼 -> 即欲備份主機欲取得備份服務時所需傳送過來的密碼 .
每一臺欲備份主機都需在此檔內有一行描述 , 每行描述都須以『;』作為結尾 , 下面是
一個範例 :
假設有一台主機 ip 位址為 128.1.1.4 , 其資料將備份至備份主機的 /backup/polaris
下 , 且其密碼被設定為 test , 則此主機的描述行應該同下:
128.1.1.4:/backup/polaris:test;
當您將您網路上欲備份的主機的描述都寫入此檔後 , 這些主機就可以執行 client 端的
程式 ,開始將資料備份過來 . 至此 Server 端的設定工作已經完成 , 需要注意的是 ,
此描述檔內的『密碼欄位』並未編碼 , 因此管理 Backup Server 的管理員需特別注意此
檔案的權限 , 請將其設為只有 root 可以讀寫 ,即 chmod 0600 /etc/backup.servers
, 否則一旦被一般 user 看見 , 則此 user 如果又在某一台主機擁有帳號 , 那麼他就能
將其資料備份到此備份主機上 , 所以隨時保持此檔只有 root 能讀寫是很重要的 .
而密碼欄的設定可以包括除了『;』之外的可見字元和空格 , 也就是說您可以設定一長字
串當作密碼 , 密碼的給定需要在 Server 端設好 , 也就是說 Backup Server 的管理員必
須將密碼設定好後 , 再告訴欲備份主機的管理員 , 讓其在 client 端作設定 .
另外 , 密碼欄位的密碼至少需要 4 個字元 , 因為密碼是用來當作資料傳送時的 KEY ,
所以一定要設定 , 且至少需要 4 個字元 .
當您的備份系統開始運作後 , 一旦有 client 端一有 request , nbsd 會將 client
端的存取記錄放在 /var/log/nbsd 這個檔內 , 備份主機管理員應隨時查看這個檔 .
Client 端
---------
如果您的機器是某台備份主機的 client 端 , 請按照安裝程序將 client 程式安裝完成
, 在安裝完成 client 端程式後 , 請向您的 備份主機 的管理員取得下面的資料 :
1 . 您的備份密碼 .
2 . 備份主機的 IP Address 或 Domain Name .
取得您所需的資料後 , 就可以開始設定 client 端了 , 請依照下面的步驟來做 :
Step 1 :
首先請打 setnbs , 此時會出現一個有四個選項的 menu , 您可以利用這個 menu
來設定您的 nbs , 如果您選擇 1 , 就可以設定您的備份密碼 , 這個密碼會存於
/etc/config.nbs 裡 , 此檔只有 root 才能讀寫 , 如果您選擇 2 的話 , 就會
設定您的備份主機的位址 , 此位址可以是 ip 也可以 domain name , 1.0.1r版
以前 , 備份主機的位址是利用系統變數去存取的 , 也因此無法利用 crontab來
定時備份 , 因此現在改用 檔案去存此變數 , 備份主機的位址也將存在
/etc/config.nbs 裡 , 如果你選擇 3 , 則可設定兩者 .
Step 2 :
設定完後 , 再來就是編寫『備份描述檔』, 這個描述檔主要是讓您設定那些
目錄要備份 , 備份後的檔名為何 , 主要的語法描述如下 :
#comment
package --> 一定要以 package 開頭 , 否則 { } 內的描述就會被忽略 .
{
what: /etc; --> 設定那個目錄要備份 , 需以 『;』做結尾 .
filename: etc.tgz; --> 設定備份到備份主機上的檔名 , 也需以『;』做結 .
}
# another package
package
{
what: /user;
filename: user.tgz
;
}
......
注意: what: 之後的目錄不可以為 symbol link 的目錄 , 否則會被略過不予備份.
ps . client 的目錄下有一個叫 example的目錄 , 其下有一個參考用的描述檔.
Step 3 :
寫好描述檔後 , 您就可以開始備份了 , 只要打 (描述檔為 backup) :
nbs -backup backup
即可將描述檔內所描述的目錄備份到備份主機上 .
如果您想將描述檔內的資料回存回來 , 您也只需打 :
nbs -restore backup /
第三個參數『/』表示資料從根目錄下回存回來 , 如果您想將資料回存到其它目錄
只要更改這個參數即可 .
如果您想讓系統自動備份 , 請將您的描述檔寫好後 , 將備份指令寫入 crontab 裡 ,
如此系統即可自動定時備份了 .
作者
----
此程式的作者為 :
淡江大學 資訊管理學系 第十屆 C 班
張欽隆 ( Cooly Chang )
E-Mail : cooly@mis.im.tku.edu.tw
|