Objectiu 馃殌

Tenir una m脿quina virtual amb Proxmox Backup Server 4.1 dins d鈥檜n node Proxmox VE, amb el sistema en un disc petit i el datastore de c貌pies en un volum separat sobre ZFS.

En el meu cas:

  • VMID 900
  • 8 a 16 GB de RAM
  • 2 cores
  • disc de sistema de 32 GB
  • disc de dades sobre un zvol ZFS

La idea 茅s deixar el PBS preparat per:

  • rebre backups des de Proxmox VE
  • deduplicar correctament
  • tenir el datastore separat del sistema
  • exposar-se per HTTPS amb certificat v脿lid

Crear la m脿quina virtual PBS

Des del node Proxmox VE:

qm create 900 \
  --name pbs-node2 \
  --memory 8192 \
  --cores 2 \
  --sockets 1 \
  --net0 virtio,bridge=vmbr0 \
  --ostype l26 \
  --cdrom local:iso/Proxmox-Backup-Server-4.1.iso \
  --boot order=cd \
  --scsihw virtio-scsi-pci \
  --agent 1

Par脿metres destacables:

  • --memory 8192: 8 GB de RAM. Si tens marge, 16 GB encara millor.
  • --cores 2: suficient per una instal路laci贸 petita o mitjana.
  • --net0 virtio,bridge=vmbr0: xarxa paravirtualitzada.
  • --scsihw virtio-scsi-pci: bona opci贸 per discs virtuals moderns.
  • --agent 1: activa el QEMU Guest Agent.

Afegir el disc de sistema

qm set 900 --scsi0 local-lvm:32,cache=none

Aquest disc 茅s nom茅s per al sistema PBS.

Crear el disc de dades sobre ZFS

Primer, al host Proxmox, comprova el nom del pool:

zpool list

Exemple:

NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
ZFS-backup   928G  6.88G   921G        -         -     0%     0%  1.00x    ONLINE  -

Ara crea un zvol per al datastore del PBS:

zfs create -V 850G \
  -o volblocksize=16K \
  -o compression=zstd \
  ZFS-backup/pbs-data

I assigna鈥檒 a la VM:

qm set 900 --scsi1 /dev/zvol/ZFS-backup/pbs-data,cache=none,iothread=1

Aqu铆:

  • scsi0 ser脿 el disc del sistema
  • scsi1 ser脿 el disc de dades

Instal路lar PBS

Arrenca la m脿quina virtual:

qm start 900

Entra per consola o VNC i instal路la Proxmox Backup Server 4.1 al disc de sistema de 32 GB.

脡s recomanable:

  • IP fixa
  • hostname ben definit
  • deixar el datastore per al segon disc

Verificar el disc de dades dins PBS

Un cop instal路lat el sistema, comprova els discs disponibles:

lsblk

Normalment, si el sistema ha quedat al primer disc, el disc de dades apareixer脿 com a /dev/sdb, per貌 茅s millor verificar-ho abans de tocar res.

Exemple:

sdb      931G disk

Netejar i preparar el disc del datastore

Si el disc t茅 signatures antigues:

wipefs -a /dev/sdb

Despr茅s, crea el filesystem i el punt de muntatge:

mkfs.ext4 /dev/sdb
mkdir -p /mnt/pbs-backup
mount /dev/sdb /mnt/pbs-backup

Crear el datastore a PBS

proxmox-backup-manager datastore create pbs-zfs /mnt/pbs-backup

Comprova que ha quedat registrat:

proxmox-backup-manager datastore list

La sortida hauria de reflectir el path correcte:

Name      Path
pbs-zfs   /mnt/pbs-backup

Fer persistent el muntatge

Per evitar que despr茅s d鈥檜n reinici desaparegui el datastore:

echo "/dev/sdb /mnt/pbs-backup ext4 defaults 0 2" >> /etc/fstab

Crear usuari i token per a Proxmox VE

Crea un usuari al PBS:

proxmox-backup-manager user create backup@pbs

Genera un token:

proxmox-backup-manager user generate-token backup@pbs mytoken

La sortida ser脿 semblant a aquesta:

Token ID: backup@pbs!mytoken
Secret: XXXXXXXXXXXXXXXX

Guarda el Secret, perqu猫 el necessitar脿s al node Proxmox VE.

Per comprovar que el token existeix:

proxmox-backup-manager user list-tokens backup@pbs

Assignar permisos al token

En PBS 4.1, els tokens tenen ACL pr貌pies. Per tant:

proxmox-backup-manager acl update /datastore/pbs-zfs Admin --auth-id 'backup@pbs!mytoken'

I per verificar-ho:

proxmox-backup-manager acl list --output-format text

Sortida esperada:

backup@pbs         /datastore/pbs-zfs  Admin
backup@pbs!mytoken /datastore/pbs-zfs  Admin

Afegir PBS com a storage a Proxmox VE

Des del node Proxmox VE:

pvesh create /storage \
  --storage pbs-node2 \
  --type pbs \
  --server 192.168.74.9 \
  --username 'backup@pbs!mytoken' \
  --password 'EL_SECRET_DEL_TOKEN' \
  --datastore pbs-zfs \
  --content backup \
  --fingerprint XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

Els punts importants s贸n:

  • --username: ha de ser el token, no nom茅s l鈥檜suari
  • --password: 茅s el secret del token
  • --fingerprint: el certificat del PBS si 茅s autosignat

Per comprovar que ha quedat afegit:

pvesh get /storage

Certificat HTTPS amb acme.sh i FreeDNS

Si vols evitar el certificat autosignat del PBS, una manera pr脿ctica 茅s fer servir acme.sh amb DNS-01 sobre FreeDNS.

Instal路lar acme.sh

apt update
apt install -y curl socat
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version

Exportar credencials de FreeDNS

export FREEDNS_User="nom_usuari_lowercase"
export FREEDNS_Password="contrasenya_afraid.org"

Emetre el certificat

acme.sh --register-account -m cuquet@gmail.com
acme.sh --issue --dns dns_freedns -d pbs.melindro.org

Aix貌 crea i valida el registre TXT necessari per al repte DNS-01.

Instal路lar el certificat a PBS

acme.sh --install-cert \
  -d pbs.melindro.org \
  --key-file /etc/proxmox-backup/proxy.key \
  --fullchain-file /etc/proxmox-backup/proxy.pem \
  --reloadcmd "systemctl restart proxmox-backup-proxy"

Renovaci贸 autom脿tica

acme.sh crea una tasca autom脿tica per renovar el certificat quan calgui. Si les credencials de FreeDNS continuen sent v脿lides, normalment no cal fer res m茅s.

Tancant 馃獋

Aquest muntatge va b茅 si vols separar clarament el sistema PBS del disc de dades, aprofitar ZFS al host i continuar treballant amb una VM relativament simple de mantenir.

Els punts que jo revisaria sempre abans de donar-ho per bo s贸n:

  • quin disc 茅s realment /dev/sdb dins la VM
  • que el datastore s鈥檈stigui muntant autom脿ticament
  • que el token tingui ACL pr貌pia sobre /datastore/pbs-zfs
  • que Proxmox VE arribi b茅 al PBS i accepti el certificat