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
zvolZFS
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铆:
-
scsi0ser脿 el disc del sistema -
scsi1ser脿 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/sdbdins 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