• 2

[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine 備份機置 (10/23更新)

小弟在前一陣子看到 Apple Time Capsule 這個產品介紹時, 覺得非常的神奇, 其所提的自動將 Mac 上的資料透過無線備份至 Time Capsule 到底是如何做到的? 尤其 user 電腦內的資料量以 GB or TB 計算, 怎麼可能做到快速的 full-backup?

備份一直是一個很難的課題, 如何在有限的時間、空間、頻寬內完成備份? 在以前可能必須做一些取捨, 例如平日只做差異備份,而到假日時再做全備份 (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更新)

而且 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更新)

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更新)

4. 以 http://your_nas_ip:8080/rsnap 進入 rsnap 主程式, 預設為德文, 請切換為 'English', 並以 admin/admin 預設密碼登入, 請先變更密碼.
[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine  備份機置 (10/23更新)

rsnap 主畫面.
[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine  備份機置 (10/23更新)

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更新)

點選 [Preferences], 將欲備份的共用資料夾從 'Shares and directorys selection' 加到 'Shares and directory to bakcup' (如下假設備份的來源為 'Public' 共用資料夾',此處也可以選擇備份多個共用資料夾)

而備份的目的地為此台 NAS 的 Backup 共用資料夾 (請記得開啟 NFS 網路服務, 並於 Backup 共用資料夾設定 NFS 寫入權限)
[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine  備份機置 (10/23更新)

接下來排程的部份, 我們設定為 daily(日備份), 每日 1:00AM, 一週七天每天都備, 總共保存十個版本(Versions=10), 並按 Save 存檔. 這樣就完成一個 Backup-Set 的設定. (用版本數來控制保存的備份 copy 數, 另外也控制備份空間的使用)
[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine  備份機置 (10/23更新)

此時可以按 'Backup actions' 裡的 'start now' 手動執行備份, 即使不手動執行, 系統也會依排程之設定自動執行.
(ps: 'letzte Action' 為 'Last Action'之意, 此為德文未翻成英文)

於 [Backup-informations] 可以查閱各版本的備份日期、時間及成功與否.
[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine  備份機置 (10/23更新)

我們可直接檢視 Backup 目錄內是否有備份之檔案. (daily.0 為第一次備份的版本)
[QPKG] 以 rsnapshot 實現 QNap NAS Time Machine  備份機置 (10/23更新)

當第二次備份時, 系統會將 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更新)


chmod -R 0644 /home/httpd/rsnap/img
chmod -R 0644 /home/httpd/rsnap/SpryAssets


***********************************************************************
2011/10/23 更新:
v3.1.2 版本已解決舊版網頁 icon 顯示不正常及 share library 的問題.


2011-09-15 1:39 發佈
今天以 QNap TS-459ProII (NAS1) 及 QNap TS-219PII (NAS2) 做測試, 從 NAS1 以 rsnapshot bacup to NAS2, 透過 NFS 協定, 於多次備份後, check NAS2 上面備份檔案的 link count, 確定它是採用 hard link 方式儲存. 如此異地備份採用 rsnapshot 既可節省時間及空間, 當然也省了頻寬.

至於備份到它牌的 NFS server, 日後再找時間測試.
FB: Pctine
pctine大真的是很認真~ 這個功能是類似Synology的TimeBackup套件嗎?
MX-120S wrote:
pctine大真的是...(恕刪)


rsnapshot 的功能和 Synology Time Backup 的原理是相同的, 但 Synology 用一個易於使用的 UI 將它包裝起來, 小弟一直試圖在 QNap 上找到一個和 Synology Time Backup 相仿的套件, 另外 NFS 支援度比較廣, 不像 Synology Time Backup 只限定自家的 NAS 才能備份.

----------------------------------------------------------------------
現發現如果由 QNap NAS rsnapshot 至另一台 QNap NAS 確定可行, 但如果 rsnapshot 至別家 NAS 在 mount NFS 就已發生錯誤, 小弟對於 linux 並不熟悉, 但還是努力的試著解讀 rsnap 程式所寫的內容, 會發生此問題在於 QNap NFS server 實作上和別家有些差異,

例如在 QNap NAS 有一共用資料夾 Public, 假設其實際路徑為 /share/MD0_DATA/Public

mount NFS folder 一般是用
mount -t nfs nfs_server_ip:/share/MD0_DATA/Public /mount_point

但如果 mount QNap NFS server 用下列的方式也是可行的 (只需知道共用資料夾名稱)
mount -t nfs nfs_server_ip:/Public /mount_point

對於一般人來說, 只曉得 QNap NAS 上有一共用資料夾 Public, 他並不曉得其實際存放的路徑, 所以 QNap 實作的 NFS 是比較理想的 (也可以理解它為何如此設計), 但在 Synology & Thecus NAS 上, 當 User 欲 mount 其 NFS 時, 卻必須使用完整的路徑.

回到前面所遇到的問題, 因為在 rsnap UI 上的 Backup Destination 的 NFS 路徑只能輸入 '共用資料夾' 名稱(並不用輸入完整路徑), 所以 mount QNap NAS NFS folder 不會有問題, 但欲 mount Synology & Thecus NAS NFS folder 就不行了.

anyway, 此部份手動去修改 rsnap config file 後, 已能正確的從 QNap NAS backup 到其他家的 NAS, 且當備份目的地採用 ext3/ext4 file system 時, 可以完全發揮 rsnapshot 的省時省空間 full-backup 特性.

FB: Pctine
以 rsnapshot 從 QNap NAS 備份至 Thecus NAS

此處 demo QNap NAS rsnap QPKG 套件如何備份至其他廠牌的 NAS. 下面以 Thecus N4100+ 為例, 可應用於任何支援 NFS 協定之 NAS.

Thecus N4100+ NAS 必須安裝 NFS Module 以支援 NFS 協定.


於 Thecus NAS 建立一 backup 共用資料夾, 並設定其 NFS client 權限.


ssh 進入 Thecus NAS, cat /etc/exports 可以 doubule check NFS 權限. 可看出其絕對路徑為 /raid/backup


於 QNap rsnap QPKG 'backup destination' 指向 Thecus NAS /raid/backup


前文提到, rsnap UI 並不允許輸入含 '/' 之絕對路徑名稱, 小弟是直接修改 rsnap.conf 檔達到目的(日後再向 rsnap UI 的作者反應此問題)


直接以 rsnap UI 測試備份, 也可設定排程, 下面是 ssh 進入 Thecus NAS, check 備份目錄內容, 上半部為執行第一次備份, 其各檔案 link count 為 1, 而當再執行第二次備份, 相同的檔案並不需要再浪費時間傳輸一次, 其 link count 增加, 直接以 hark link 處理掉了.


同理可應用在各支援 NFS 協定的 NAS 上, 達到跨平台 Time Machine 備份機置之功能.

FB: Pctine
v3.1.2 版本推出, 小弟已於 1F 更新部份內容. 主要是修正一些 bug.
FB: Pctine
QNap forum 提到的:

QNap: 您所提到的功能(Synology TimeBackup) 我們已列入在行程表中,預計下半年度(2012)會推出。
FB: Pctine
不好意思,大大的文章很清湛,但小弟還是不太清楚主要的應用內容。

TimeMachine不是Mac的備份機制嗎?

大大的意思,是使用rsnapshot來實作無mac的Timemachine,
還是達成類似效果呢?


4circles wrote:
TimeMachine不是Mac的備份機制嗎?


的確, Time Machine 是 MAC 的備份程式, Apple Time Machine 可以備份 MAC 電腦中的資料, 包含系統本身.

其實這篇文章主要是利用 rsnapshot 程式來達到 Synology Time Backup 的功能, 不管是 Synology Time Backup or Apple Time Machine, 大致都是利用了檔案系統的特性, 來達到備份多版本及節約備份空間的目的.

FB: Pctine
感謝P大的教學,小弟已將QNAP裝上rsnapsho並備份至Synology NAS上,
但看 daily.0 與 daily.1 看起來容量也都一樣,並非採用增量備份。
不知還有哪邊需做設定。

  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?