Proxmox Backup Server(PBS) 安裝測試紀錄
安裝環境
- PVE 6.2 底下的一個 VM (4Core / 4GB RAM / 8GB+4TB Disk)
- 安裝 PBS 版本 - proxmox-backup-server_BETA-1.iso
安裝程序
- 透過虛擬光碟掛上 ISO 開機進行 PBS 安裝程序, 將 PBS 安裝到 8GB Disk 內, 完成後移除 ISO 檔案重新開機
- 開機後確認 PBS 網頁可以登入 Exp. https://172.16.0.210:8007/
- 透過 ssh 登入 PBS 主機將 4TB disk 建立為 ZFS 檔案系統
fdisk /dev/sdb
- g : 建立為使用 GPT disklabel 硬碟
- n : 建立一個新的 Partation
- t : 48 - Solaris /usr & Apple ZFS
- w : 寫入
- 透過 zfs 工具建立 pool Exp. pbs-zpool
zpool create -f -o ashift=12 pbs-zpool /dev/sdb1 zfs set compression=lz4 pbs-zpool zpool list
- 透過網頁建立 PVE 備份 User Exp. pveuser
- 建立 Datastore Exp. pvebackup → /pbs-zpool , 每周三 21:33 進行 GC , 保留 7 個備份
- 授予 User : pveuser 可以使用 Datastore : pvebackup 進行備份
- 權限 Role : DatastoreBackup 只能備份, 還原時會出現權限不足狀況
- 即使再增加 Role : DatastoreReader 雖然可以手動進行還原作業, 但仍無法有自動備份最後的檢查權限
- 所以必須給 DatastoreAdmin 權限才可正確
PVE Node 掛上 PBS
- 到要備份的 PVE Datacenter 建立 Storage Exp. PBSTPA
- 先確認每個 Node 是否都已經升級到 6.2-10 以上版本 (升級後要重開機)
如果測試備份 PVE 的 VM 都沒問題, 但備份 CT 會出現以下錯誤訊息
INFO: Error: HTTP Error 400 Bad Request: parameter verification errors INFO: parameter 'encoded-size': value must have a minimum value of 13 (got 12)
應該和 PVE 安裝環境使用 lvm 有關, 如果安裝時是選 zfs 就可以完全正常.
[另外方案]直接安裝在 PVE 主機內的程序
- 安裝環境 : PVE 6.2-15
- 設定 PBS 儲存庫 /etc/apt/sources.list
: # Proxmox Backup Server deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription
- 安裝 PBS
apt-get update apt-get install proxmox-backup-server
- 安裝後可將 pbs-enterprise 訂閱版套件存取關閉
- /etc/apt/sources.list.d/pbs-enterprise.list
#deb https://enterprise.proxmox.com/debian/pbs buster pbs-enterprise
- 就可以直接連上 PBS 管理網頁 Exp. https://192.168.11.249:8007/ (可以使用該主機 PVE 的 root 帳號密碼登入)
設定 PBS-A 每小時同步至 PBS-B
- PBS-A 與 PBS-B 內都有 Datastore : pvebackup , 預計每小時 PBS-A.pvebackup → PBS-B.pvebackup
- Schedule 的設定格式請參考以下網址
https://www.freedesktop.org/software/systemd/man/systemd.time.html - 基本範例 :
- 每小時 12 分執行一次 → *:12
- 星期六日 13:16 執行 → Sat,Sun 13:16
設定保留備份份數與預覽方式
- 想設定保留 10 天的備份
- 因為部份重要 VM 上班時間每 2.5 小時就會備份一次, 所以一天就會有多份
問題與解決方式
ZPool 突然消失問題
- 進行 remote 同步過程, 不知名原因造成原本建立的 pbs-zpool 消失, 因為測試備份資料, 所以沒有特別找 zfs 資料救回處理程序
- 此時 proxmox-backup 服務已經無法正常運作, 網頁管理介面也無法出現, 但 systemctl restart proxmox-backup 仍然可以成功, 在 message log 沒有看到異常原因
- 透過 zpool create 重新建立 pbs-zpool 之後, 網頁管理界面可以登入, 但原本建立的 Datastore : pvebackup 無法讀取必須重新建立, 但網頁管理界面並無刪除 Datastore 功能, 所以比須使用 proxmox-backup-manager 命令語法處理
proxmox-backup-manager datastore list proxmox-backup-manager datastore remove pvebackup
參考畫面如下:
root@TP-PVE-249:/pbs-zpool# proxmox-backup-manager datastore list ┌───────────┬────────────┬───────────────┐ │ name │ path │ comment │ ╞═══════════╪════════════╪═══════════════╡ │ pvebackup │ /pbs-zpool │ PVE Backup DS │ └───────────┴────────────┴───────────────┘ root@TP-PVE-249:/pbs-zpool# proxmox-backup-manager datastore remove pvebackup root@TP-PVE-249:/pbs-zpool# proxmox-backup-manager datastore list
- 再透過網頁管理界面重新建立 Datastore : pvenackup , 這樣原本的 Sync Jobs 就可以繼續恢復運作
修改備份 vm/ct 目錄的 Owner
- 如果要改由 PBS-B 讓 PVE 備份就會出現權限錯誤無法寫入
PBS 服務突然失效(Listen Port 8007 消失)
- 透過 systemctl restart proxmox-backup 重起並無法解決
-
- 透過 systemctl restart proxmox-backup-proxy 重新啟動
- 主要錯誤是 Too manu open files (os error 24) 所以修改限制檔案開啟數
- 目前 OS 的設定值
root@TP-PVE-252:~# cat /proc/sys/fs/file-max 9223372036854775807 root@TP-PVE-252:~# ulimit -Hn 1048576 root@TP-PVE-252:~# ulimit -Sn 1024
- 似乎目前這問題是 open files leak 的狀況, 要等後續 PBS 版本修正 — Jonathan Tsai 2020/07/23 10:17
- 暫時依照參考方式進行設定限制開啟檔案數LimitNOFILE=10240:524288
vi /etc/systemd/system/multi-user.target.wants/proxmox-backup-proxy.service
: [Service] : Group=backup LimitNOFILE=10240:524288 [Install] :
重新讀取與啟動 proxmox-backup-proxy 服務
systemctl daemon-reload systemctl restart proxmox-backup-proxy.service
備份 CT 出現 parameter 'encoded-size': value must have a minimum value of 13 (got 12) 錯誤訊息
- 主要原因是備份的 CT 內含有 0 byte 的檔案, 目前看到大部分的原因是 /etc/pve/firewall 內的 *.fw , 因為沒有設定 firewall 規則, 所以直接刪除這些檔案即可
rm /etc/pve/firewall/*.fw
升級後出現 unable to parse active worker status 'UPID:xxx:00003BD8:...:5X4X6113:termproxy::root: 5X4X6355 OK' - not a valid user id
- 這是已知的問題, 可以直接執行以下語法解決
sed -i -re 's/(:termproxy:):root:/\1:root@pam:/g' /var/log/proxmox-backup/tasks/active