備份一直是一個很難的課題, 如何在有限的時間、空間、頻寬內完成備份? 在以前可能必須做一些取捨, 例如平日只做差異備份,而到假日時再做全備份 (full backup), 這也是企業上所提的日備份、週備份、月備份,但此種備份方式在回存 (restore) 資料時步驟相當麻煩, 有時候為了 restore 某天的資料時, 必須動用到好幾個 backup-set, 這時候就看到 MIS 拿了好幾卷的磁帶, 在不停的倒帶回存, 雖然 backup software 已經儘可能讓 backup & restore 的工作容易些, 但畢竟是一件苦差事.
回到正題, rsnapshot 主要就是為了實現快速的完成 full backup, 又能以最節省空間的方式達到備份目的, 其技術背景請參考文後的參考資料. 我們就先來安裝 QNap Rsnap QPKG. RSnap 它是 rsnapshot 的 GUI (front-end) 程式, 畢竟 rsnapshot 涉及手動修改設定及排程, 用 Rsnap 可以減化此部份的工作.
0.首先必須先開啟備份目的地 NAS 的 NFS 服務, NFS 在大部份的 NAS 主機皆有支援, 以下以 QNap NAS 為例.
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-b34b2f3045e61d47ff29f06449372861.jpg)
而且 NFS service 務必做好安全權限的控管. 如下僅允許備份來源端的 NAS (192.168.88.28) 存取,若是個人家中使用直接用 * 允許所有 IP 連結. (各廠牌 NAS 的 NFS 設定方式大致相同,格式不外乎 192.168.1.*, 192.168.1.0/24, 192.168.1.0/255.255.255.0, *.domain.com)
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-128212e387f4909e7c927dddf97bb40d.jpg)
1. QNap NAS QPKG 外掛管理, 安裝 Optware IPKG 套件並啟用. (主要是安裝 perl ipkg 套件)
2. 至 QNap Forum 下載 rsnap QPKG 套件. (arm & x86 皆支援)
3. 進入 QNap NAS QPKG 外掛管理, 安裝上述 rsnap QPKG 並啟用.
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-fe620db1bff06816573956e1af0b54c6.jpg)
4. 以 http://your_nas_ip:8080/rsnap 進入 rsnap 主程式, 預設為德文, 請切換為 'English', 並以 admin/admin 預設密碼登入, 請先變更密碼.
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-5e1d9e3282f887fe906b8e4338edc388.jpg)
rsnap 主畫面.
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-c6d3efb8c0dfdbb46cea1a53dd246eac.jpg)
5.如果 user 點選 [Preferences] & [Options] 出現下列訊息 (v3.1.2已解決此問題)
/sbin/getcfg: /opt/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libuLinux_config.so.0) /sbin/getcfg: /opt/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libuLinux_config.so.0)
請 SSH 登入 NAS, 並依此修改.
修改 /home/httpd/rsnap/configuration.cgi (第 19 行)
from:
export LD_LIBRARY_PATH=$RSNAP_ROOT/bin:/opt/lib:$LD_LIBRARY_PATH
to:
export LD_LIBRARY_PATH=/usr/lib:$RSNAP_ROOT/bin:/opt/lib:$LD_LIBRARY_PATH
同樣的方式修改 /home/httpd/rsnap/options.cgi (第27行), 修改完後記得進入 QNap QPKG 外掛管理, 重新啟動 rsnap. 則可解決上述問題.(ps: 在 TS-219PII 無此問題, 但 TS-459ProII 則有上述情況.)
5.現在開始我們要建立一個備份工作 (Backup-set), 或稱做 Backup-Job.
點選 [Apply time-controlled] 後, 並按 [Configure] 開始細部設定.
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-8e0e77397a7be3c879ac6d18749d360a.jpg)
點選 [Preferences], 將欲備份的共用資料夾從 'Shares and directorys selection' 加到 'Shares and directory to bakcup' (如下假設備份的來源為 'Public' 共用資料夾',此處也可以選擇備份多個共用資料夾)
而備份的目的地為此台 NAS 的 Backup 共用資料夾 (請記得開啟 NFS 網路服務, 並於 Backup 共用資料夾設定 NFS 寫入權限)
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-62a4c702301c7d3147a9bf3c9e695bae.jpg)
接下來排程的部份, 我們設定為 daily(日備份), 每日 1:00AM, 一週七天每天都備, 總共保存十個版本(Versions=10), 並按 Save 存檔. 這樣就完成一個 Backup-Set 的設定. (用版本數來控制保存的備份 copy 數, 另外也控制備份空間的使用)
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-a169ba2858924c0412e503ad15a2c069.jpg)
此時可以按 'Backup actions' 裡的 'start now' 手動執行備份, 即使不手動執行, 系統也會依排程之設定自動執行.
(ps: 'letzte Action' 為 'Last Action'之意, 此為德文未翻成英文)
於 [Backup-informations] 可以查閱各版本的備份日期、時間及成功與否.
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-58f46629aee935c7f1e2977d76343224.jpg)
我們可直接檢視 Backup 目錄內是否有備份之檔案. (daily.0 為第一次備份的版本)
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201109/mobile01-32c27ef97563dbd6bc7c72c69e89e806.jpg)
當第二次備份時, 系統會將 daily.0 rename 為 daily.1, 而將資料備份於 daily.0 (所以 daily.0 永遠是最新的備份, 以此類推)
首次備份所花的時間會比較長, 視備份的資料量而定, 因為此時系統必須將來源目錄完整的 backup 到目的端, 但之後的備份系統只會做差異比對, 只反應差異的部份在目的地目錄, 但因為 rsnapshot 使用了 hard-link 的檔案結構, 所以在目的端 user 看到的是 "完整' 反應來源端的檔案目錄, 也就是實現了 full-backup.
如何回存 (restore)資料
因為每次的備份都視為 full-backup, 所以直接檢視備份目錄的建立日期, 該目錄下所有的檔案就是來源端當天的完整備份, 將該目錄 copy 出來即可.
More
1.其他更細項的設定有待各位再去發掘, 例如在 [option] rsync 參數可以實現指定欲備份的檔案 type 等, 而 rsnapshot 補足了 QNap NAS Backup 上所缺少的一塊, 而且它以 rsync 的協定更可備份到其他相容 rsync server, 希望日後 QNap 可以考慮把 rsnapshot 納入正式版本並把界面做的更容易使用.
2.rsnapshot 也可以備份至 USB/eSATA 外接硬碟, 但由於 rsnapshot 利用 ext3/ext4 file system 的特性, 使得備份的時間及空間可以相當節省, 所以欲實現此方法, 請記得一定要用在 ext3/ext4 格式上, NTFS 是無法達到節省備份容量的.
相關資訊
rsnapshot 官網
How To Backup Local Unix Host Using rsnapshot rsync Utility
How To Backup Remote Linux Host Using rsnapshot rsync Utility
Backup on Linux: rsnapshot vs. rdiff-backup (vs. Time Machine)
淺談linux下的快照備份軟體—rsnapshot
更新
2011/10/2: 解決 icon 無法正常顯示問題. (v3.1.2已解決此問題)
![[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)](http://attach.mobile01.com/attach/201110/mobile01-a188fcc471675043423f85bc830231e8.jpg)
chmod -R 0644 /home/httpd/rsnap/img
chmod -R 0644 /home/httpd/rsnap/SpryAssets
***********************************************************************
2011/10/23 更新:
v3.1.2 版本已解決舊版網頁 icon 顯示不正常及 share library 的問題.