這是本文件的舊版!


Proxmox Backup Server(PBS) 安裝測試紀錄

  • 透過虛擬光碟掛上 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
    • Configuration → User Management → Add
  • 確認有看到 4TB ZFS Disk
  • 建立 Datastore Exp. pvebackup → /pbs-zpool , 每周三 21:33 進行 GC , 保留 7 個備份
    • Datastore → Create


  • 授予 User : pveuser 可以使用 Datastore : pvebackup 進行備份
    • Configuration → Permissions → Add
  • 權限 Role : DatastoreBackup 只能備份, 還原時會出現權限不足狀況
  • 即使再增加 Role : DatastoreReader 雖然可以手動進行還原作業, 但仍無法有自動備份最後的檢查權限
  • 所以必須給 DatastoreAdmin 權限才可正確
  • 先將 PBS 的 Fingerprint 複製起來
  • 到要備份的 PVE Datacenter 建立 Storage Exp. PBSTPA
    • 先確認每個 Node 是否都已經升級到 6.2-10 以上版本 (升級後要重開機)
    • Datacenter → Storage → Add → Proxmox Backup Server
如果測試備份 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 6.2-15
  1. 設定 PBS 儲存庫 /etc/apt/sources.list
    :
    # Proxmox Backup Server
    deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription
  2. 安裝 PBS
    apt-get update
    apt-get install proxmox-backup-server
  3. 就可以直接連上 PBS 管理網頁 Exp. https://192.168.11.249:8007/ (可以使用該主機 PVE 的 root 帳號密碼登入)
  • PBS-A 與 PBS-B 內都有 Datastore : pvebackup , 預計每小時 PBS-A.pvebackup → PBS-B.pvebackup
  1. PBS-B 內設定 Remotes 畫面類似以下:
  2. PBS-B 內設定 Sync Jobs 畫面類似以下:
  • 想設定保留 10 天的備份
  • 因為部份重要 VM 上班時間每 2.5 小時就會備份一次, 所以一天就會有多份
  • PBS 的 Prune 如果設定為 keep-daily : 10 只會保留每天最後一份, 其餘都會移除
  • 進行 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

    參考畫面如下:<xtermrtf>

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 </xtermrtf>

  • 再透過網頁管理界面重新建立 Datastore : pvenackup , 這樣原本的 Sync Jobs 就可以繼續恢復運作
  • 當 PBS-A 是 PVE 備份寫入處 vm/ct 目錄的 Owner 會是 pveuser@pbs
  • 透過 remote rsync 過來到 PBS-B 的目錄 owner 會是 backup@pam
  • 如果要改由 PBS-B 讓 PVE 備份就會出現權限錯誤無法寫入
  • 修改 vm/ct 內的 owner 檔案內容 Exp. vm 103
    cd /pbs-zpool/vm/103
    cat owner
    echo 'pveuser@pbs' > owner
    cat owner

  • 透過 systemctl restart proxmox-backup 重起並無法解決
  • 查詢 /var/log/daemon 看到以下的錯誤訊息
    1. 透過 systemctl restart proxmox-backup-proxy 重新啟動
    2. 主要錯誤是 Too manu open files (os error 24) 所以修改限制檔案開啟數
      1. 目前 OS 的設定值<xtermrtf>

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 </xtermrtf>

  1. 似乎目前這問題是 open files leak 的狀況, 要等後續 PBS 版本修正 — Jonathan Tsai 2020/07/23 10:17
  2. 暫時依照參考方式進行設定限制開啟檔案數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
  • tech/pbstips.1605146325.txt.gz
  • 上一次變更: 2020/11/12 09:58
  • jonathan_tsai