不管使用什麼系統,管理者都必須非常注重資料備份這件事,在 Proxmox VE 上需要備份那些檔案呢?又有那些方法可以運用呢?
手動備份
正常運作情況下,PVE 的設定檔位置在 /etc/pve/,所以可以定期使用 FileZilla Client 軟體以 SSH 連線進入下載。
FileZilla Client 下載 PVE 設定檔
連線成功後,切換到 /etc/ 路徑,再將 pve 拖曳到左方的本地資料夾。實務上可以每日建立一個資料夾做為備份名稱識別。
自動備份一
剛開始手動備份還沒問題,隨著日子過去有可能逐漸忘記,因此讓備份自動化處理是最保險的作法。
可以撰寫簡單的 shell script,自動壓縮設定檔並且放置到指令的路徑。請將以下內容存成 /opt/bakpveconf.sh。
自動壓縮備份 shell script
#!/bin/bash # bakpveconf.sh hostname=$(hostname) fn_date=$(date "+%Y%m%d.%H%M") bak_targetpath=$1 /bin/tar -zcvf ${bak_targetpath}/pveconf_${hostname}_${fn_date}_.tar.gz /etc/pve
存檔離開之後,請再給予執行權限。
給予執行權限
chmod +x /opt/bakpveconf.sh
接下來可以執行一次,是否有成功備份。
備份到指定路徑
/opt/bakpveconf.sh /mnt/pve/mylove-nas/conf/
執行以後,會自動打包 /etc/pve 下所有檔案成為一個壓縮檔,並放到 /mnt/pve/mylove-nas/conf 這個資料夾存放。
執行 PVE 設定檔備份指令
這個目標資料夾是在 WebUI 設定過的 NAS 主機 NFS 共用資料夾,PVE WebUI 所掛載的 NFS 共用資料夾,預設路徑都會在 /mnt/pve/ 下面,因此我們可以很容易的將備份檔丟到裡面去。
檢查備份資料夾結果
備份完成後可以到目的資料夾查看,檔名中會包含這台 PVE 節點的 Hostname、備份日期與時間,以利辨識。
若要每日定期執行,可以把這個 shell script 指令放到 cron 裡面去執行即可。
自動備份二
上面的作法固然可以自動化,但是太過土砲陽春,而且缺少一些機制,例如:保留指定份數、備份到雲端等等的機制。
其實可以結合另一套開源軟體達成非常強大的自動備份機制。
Duplicati
過去我也曾介紹過 Duplicati,安裝容易,使用方便,功能強大。
請先到官網完成安裝後,即可進入 http://ip:8200 操作介面,它已經內建繁體中文語系,正是小弟貢獻的... 哈哈。
建立一筆新的備份作業。
新增備份
第一步,輸入名稱、加密方式,以及加密備份檔用的密碼。
一般備份設定
第二步,選擇要備份的目的地,Duplicati 支援的非常多種,在此選擇 Google Drive 做為示範。選擇後,請再點選 [AuthID],它自動帶出 Google 登入介面,完成後會自動把 AuthID 寫入右邊視窗,即可進入下一步。
備份目的地設定
第三步,請在中間的視窗陸續展開,將 /etc/pve 資料夾予以勾選。若有其它資料需要一起備份,也可以打勾。
來源資料備份設定
第四步,設定自動備份的排程時間,若沒有其它想法,預設將在每日的 01:00 自動備份。
排程備份設定
第五步,在這裡可以指定備份的保留份數或指定日期數,我的作法是讓他保留三個月內的資料。
其它選項設定
儲存完成後,可以按下 [立即執行] 測試備份能力與設定是否無誤。
立即備份進行測試
Duplicati 會開始一系列的程序,完成後即會在畫面上顯示「上一次成功備份」的日期,即表示完成。
備份作業進行中
備份作業完成
結論
Proxmox VE 採用完全開放式的設計,設定檔內容透明、位置資訊容易取得,要備份更是易如反掌,開源的價值盡其在此。
本次介紹三種 PVE 設定檔備份方法,您可以選擇一種喜歡的方式進行。
參考資料
- Proxmox Cluster File System (pmxcfs) - Proxmox VE
https://pve.proxmox.com/wiki/Proxmox_Cluster_File_System_(pmxcfs)
- FileZilla - Client Features
https://filezilla-project.org/client_features.php
- it-scripts/bakpveconf.sh at master · jasoncheng7115/it-scripts
https://github.com/jasoncheng7115/it-sripts/blob/master/proxmoxve/bakpveconf.sh
- Duplicati
https://www.duplicati.com/