差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
下次修改 Both sides next revision
tech:pbstips [2020/07/21 14:30]
jonathan_tsai [ZPool 突然消失問題]
tech:pbstips [2020/11/12 09:58]
jonathan_tsai
行 1: 行 1:
 +====== Proxmox Backup Server(PBS) 安裝測試紀錄 ======
 +===== 安裝環境 =====
 +  * PVE 6.2 底下的一個 VM (4Core / 4GB RAM / 8GB+4TB Disk)
 +  * 安裝 PBS 版本 - [[https://www.proxmox.com/en/downloads/category/iso-images-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 檔案系統 <code sh>
 +fdisk /dev/sdb
 +</code>
 +    * g : 建立為使用 GPT disklabel 硬碟
 +    * n : 建立一個新的 Partation
 +    * t : 48 - Solaris /usr & Apple ZFS
 +    * w : 寫入
 +  * 透過 zfs 工具建立 pool Exp. pbs-zpool<code sh>
 +zpool create -f -o ashift=12 pbs-zpool /dev/sdb1
 +zfs set compression=lz4 pbs-zpool
 +zpool list
 +</code>
 +  * 透過網頁建立 PVE 備份 User Exp. pveuser
 +    * Configuration -> User Management -> Add {{:tech:2020071503.png}} \\ {{:tech:2020071508.png}}
 +  * 確認有看到 4TB ZFS Disk {{:tech:2020071504.png}}
 +  * 建立 Datastore Exp. pvebackup -> /pbs-zpool , 每周三 21:33 進行 GC , 保留 7 個備份
 +    * Datastore -> Create \\ {{:tech:2020071505.png}} \\ {{:tech:2020071506.png}} \\ {{:tech:2020071507.png}}
 +  * 授予 User : pveuser 可以使用 Datastore : pvebackup 進行備份
 +    * Configuration -> Permissions -> Add  {{:tech:2020071901.png}} \\ {{:tech:2020071902.png}}
 +<note important>
 +  * 權限 Role : DatastoreBackup 只能備份, 還原時會出現權限不足狀況
 +  * 即使再增加 Role : DatastoreReader 雖然可以手動進行還原作業, 但仍無法有自動備份最後的檢查權限
 +  * 所以必須給 **DatastoreAdmin** 權限才可正確 
 +</note>
 +
 +===== PVE Node 掛上 PBS =====
 +  * 先將 PBS 的 Fingerprint 複製起來 {{:tech:2020071512.png}}
 +  * 到要備份的 PVE Datacenter 建立 Storage Exp. PBSTPA
 +    * 先確認每個 Node 是否都已經升級到 6.2-10 以上版本 (升級後要重開機)
 +    * Datacenter -> Storage -> Add -> Proxmox Backup Server {{:tech:2020071513.png}} \\ {{:tech:2020071514.png}}
 +
 +<note important>
 +如果測試備份 PVE 的 VM 都沒問題, 但備份 CT 會出現以下錯誤訊息<file>
 +INFO: Error: HTTP Error 400 Bad Request: parameter verification errors
 +INFO: parameter 'encoded-size': value must have a minimum value of 13 (got 12)
 +</file>
 +應該和 PVE 安裝環境使用 lvm 有關, 如果安裝時是選 zfs 就可以完全正常.
 +</note>
 +
 +===== [另外方案]直接安裝在 PVE 主機內的程序 =====
 +  * 安裝環境 : PVE 6.2-15
 +  - 設定 PBS 儲存庫 /etc/apt/sources.list<file>
 +:
 +# Proxmox Backup Server
 +deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription
 +</file>
 +  - 安裝 PBS <code sh>
 +apt-get update
 +apt-get install proxmox-backup-server
 +</code>
 +  - 就可以直接連上 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
 +  - PBS-B 內設定 Remotes 畫面類似以下:{{:tech:2020072002.png}}
 +  - PBS-B 內設定 Sync Jobs 畫面類似以下:{{:tech:2020072003.png}}
 +
 +<note>
 +  * Schedule 的設定格式請參考以下網址  \\  https://www.freedesktop.org/software/systemd/man/systemd.time.html
 +  * 基本範例 :
 +    * 每小時 12 分執行一次 -> *:12
 +    * 星期六日 13:16 執行 -> Sat,Sun 13:16
 +</note>
 +
 +===== 設定保留備份份數與預覽方式 =====
 +  * 想設定保留 10 天的備份
 +  * 因為部份重要 VM 上班時間每 2.5 小時就會備份一次, 所以一天就會有多份
 +  * PBS 的 Prune 如果設定為 keep-daily : 10 只會保留每天最後一份, 其餘都會移除 \\ {{:tech:2020080401.png|}}
 +===== 問題與解決方式 =====
 +==== ZPool 突然消失問題 ====
 +  * 進行 remote 同步過程, 不知名原因造成原本建立的 pbs-zpool 消失, 因為測試備份資料, 所以沒有特別找 zfs 資料救回處理程序
 +  * 此時 proxmox-backup 服務已經無法正常運作, 網頁管理介面也無法出現, 但 systemctl restart proxmox-backup 仍然可以成功, 在 message log 沒有看到異常原因
 +  * 透過 zpool create 重新建立 pbs-zpool 之後, 網頁管理界面可以登入, 但原本建立的 Datastore : pvebackup 無法讀取必須重新建立, 但網頁管理界面並無刪除 Datastore 功能, 所以比須使用 proxmox-backup-manager 命令語法處理<code sh>
 +proxmox-backup-manager datastore list
 +proxmox-backup-manager datastore remove pvebackup
 +</code>參考畫面如下:<xtermrtf>
 +[email protected]:/pbs-zpool# proxmox-backup-manager datastore list
 +┌───────────┬────────────┬───────────────┐
 +│ name      │ path       │ comment       │
 +╞═══════════╪════════════╪═══════════════╡
 +│ pvebackup │ /pbs-zpool │ PVE Backup DS │
 +└───────────┴────────────┴───────────────┘
 +[email protected]:/pbs-zpool# proxmox-backup-manager datastore remove pvebackup
 +[email protected]:/pbs-zpool# proxmox-backup-manager datastore list
 +</xtermrtf>
 +  * 再透過網頁管理界面重新建立 Datastore : pvenackup , 這樣原本的 Sync Jobs 就可以繼續恢復運作
 +
 +==== 修改備份 vm/ct 目錄的 Owner ====
 +  * 當 PBS-A 是 PVE 備份寫入處 vm/ct 目錄的 Owner 會是 [email protected] {{:tech:2020072101.png}}
 +  * 透過 remote rsync 過來到 PBS-B 的目錄 owner 會是 [email protected] {{:tech:2020072102.png}}
 +  * 如果要改由 PBS-B 讓 PVE 備份就會出現權限錯誤無法寫入
 +  * 修改 vm/ct 內的 owner 檔案內容 Exp. vm 103 <code sh>
 +cd /pbs-zpool/vm/103
 +cat owner
 +echo '[email protected]' > owner
 +cat owner
 +</code> {{:tech:2020072103.png}}
 +
 +==== PBS 服務突然失效(Listen Port 8007 消失) ====
 +  * 透過 systemctl restart proxmox-backup 重起並無法解決
 +  * 查詢 /var/log/daemon 看到以下的錯誤訊息 \\ {{:tech:2020072301.png}}
 +  * 參考 - https://forum.proxmox.com/threads/too-many-open-files-os-error-24.73094/
 +    - 透過 systemctl restart proxmox-backup-proxy 重新啟動
 +    - 主要錯誤是 Too manu open files (os error 24) 所以修改限制檔案開啟數
 +      - 目前 OS 的設定值<xtermrtf>
 +[email protected]:~# cat /proc/sys/fs/file-max
 +9223372036854775807
 +[email protected]:~# ulimit -Hn
 +1048576
 +[email protected]:~# ulimit -Sn
 +1024
 +</xtermrtf>
 +      - 似乎目前這問題是 open files leak 的狀況, 要等後續 PBS 版本修正  --- //[[[email protected]|Jonathan Tsai]] 2020/07/23 10:17// 
 +      - 暫時依照[[https://forum.proxmox.com/threads/too-many-open-files-os-error-24.73094/|參考方式]]進行設定限制開啟檔案數**LimitNOFILE=10240:524288**<code sh>
 +vi /etc/systemd/system/multi-user.target.wants/proxmox-backup-proxy.service
 +</code><file>
 +:
 +[Service]
 +:
 +Group=backup
 +LimitNOFILE=10240:524288
 +
 +[Install]
 +:
 +</file>重新讀取與啟動 proxmox-backup-proxy 服務<code sh>
 +systemctl daemon-reload
 +systemctl restart proxmox-backup-proxy.service
 +</code>
 +
 +==== 備份 CT 出現 parameter 'encoded-size': value must have a minimum value of 13 (got 12) 錯誤訊息 ====
 +  * 參考 - https://forum.proxmox.com/threads/ct-backup-error-parameter-encoded-size-value-must-have-a-minimum-value-of-13-got-12.73051/
 +  * 主要原因是備份的 CT 內含有 0 byte 的檔案, 目前看到大部分的原因是 /etc/pve/firewall 內的 *.fw , 因為沒有設定 firewall 規則, 所以直接刪除這些檔案即可 <code sh>
 +rm /etc/pve/firewall/*.fw
 +</code>
 +
 +==== 升級後出現 unable to parse active worker status 'UPID:xxx:00003BD8:...:5X4X6113:termproxy::root: 5X4X6355 OK' - not a valid user id ====
 +  * 參考 - https://forum.proxmox.com/threads/solved-unable-to-parse-active-worker-status.74675/
 +  * 這是已知的問題, 可以直接執行以下語法解決 <code sh>
 +sed -i -re 's/(:termproxy:):root:/\1:[email protected]:/g' /var/log/proxmox-backup/tasks/active
 +</code>
 +
 +===== 參考網址 =====
 +  * https://pbs.proxmox.com/docs/package-repositories.html
 +  * https://pbs.proxmox.com/docs/installation.html
 +  * https://pbs.proxmox.com/docs/administration-guide.html
 +  * https://www.freedesktop.org/software/systemd/man/systemd.time.html
 +  * https://pvecli.xuan2host.com/pbs-proxmox-ve-aio-install/
 +
 +{{tag>pve storage}}
  
  • tech/pbstips.txt
  • 上一次變更: 2021/01/17 14:43
  • jonathan