Chi usa Proxmox VE e fa ancora i backup con vzdump su una cartella di rete sta usando metà dello strumento. Proxmox Backup Server (PBS) è gratuito, open source, e cambia il modo di fare i backup delle VM: copie incrementali che durano minuti invece di ore, spazio occupato ridotto dalla deduplica e verifica dell'integrità integrata.
In questo articolo spiego come funziona e come lo configuro, compresi gli aspetti che fanno la differenza contro il ransomware.
Come funziona: chunk e deduplica
PBS divide ogni backup in blocchi (chunk) e salva ogni blocco una volta sola, identificato dal suo hash. Se trenta VM Windows condividono gli stessi file di sistema, quei blocchi occupano spazio una volta. Se una VM da 200 GB cambia 3 GB al giorno, il backup di oggi aggiunge circa 3 GB.
Per le VM c'è un vantaggio in più: la dirty bitmap. Finché la VM resta accesa, QEMU tiene traccia dei blocchi modificati dall'ultimo backup, e PBS legge solo quelli. Un backup incrementale di una VM grande passa da ore a pochi minuti. Dopo uno spegnimento completo della VM la bitmap si azzera e il backup successivo rilegge tutto il disco, anche se trasferisce comunque solo i blocchi nuovi.
Ogni backup, anche incrementale, resta uno snapshot completo: puoi ripristinare quello di martedì senza dipendere da una catena di differenziali.
Dove installarlo
La regola è una sola: il backup non deve morire insieme a quello che protegge.
- Server fisico dedicato, anche modesto, con dischi propri: la scelta giusta in produzione.
- VM su un altro host Proxmox, con storage separato: accettabile.
- VM o container sullo stesso host che fa girare le VM: va bene per un laboratorio, non per un'azienda. Se l'host si rompe, perdi insieme VM e backup.
Per lo storage, ZFS con dischi in mirror o RAIDZ è l'abbinamento classico. PBS fa molte letture casuali sui chunk: se i dati stanno su dischi meccanici, un piccolo SSD come special device ZFS migliora molto verifica e garbage collection.
Configurazione di base
- Crea un datastore sul disco dedicato.
- Crea un utente o un token API dedicato a Proxmox VE (niente
root@pamnella configurazione del cluster). - In Proxmox VE: Datacenter → Storage → Add → Proxmox Backup Server, con fingerprint del certificato.
- Crea il job di backup: pianificazione notturna, modalità snapshot, VM selezionate.
Con i namespace puoi separare nello stesso datastore gruppi diversi (sedi, clienti, ambienti) mantenendo la deduplica tra loro.
Permessi minimi: la difesa contro il ransomware
Qui c'è un dettaglio che vale da solo il passaggio a PBS. Un token con il solo ruolo DatastoreBackup può creare nuovi backup ma non può cancellare quelli esistenti. Se un attaccante prende il controllo del cluster Proxmox, trova credenziali che non gli permettono di distruggere lo storico.
# token dedicato, senza permessi finché non li assegni
proxmox-backup-manager user generate-token backup@pbs pve-cluster
# solo scrittura di nuovi backup su quel datastore
proxmox-backup-manager acl update /datastore/aziendale DatastoreBackup \
--auth-id 'backup@pbs!pve-cluster'
La conseguenza: la retention non la gestisce più il client, ma un prune job configurato sul PBS stesso. È proprio quello che vogliamo. Nello storage PBS di Proxmox VE imposta quindi la retention su Keep all backups, così i job non tentano cancellazioni che il token non può fare.
Retention, garbage collection e verifica
Prune
Una politica che uso spesso come punto di partenza:
keep-last 3, keep-daily 7, keep-weekly 4, keep-monthly 6
Sei mesi di storico, con la granularità fitta sui giorni recenti. Il prune rimuove solo gli indici degli snapshot scaduti.
Garbage collection
Lo spazio si libera davvero solo quando la garbage collection elimina i chunk non più referenziati. Per sicurezza tiene i chunk usati nelle ultime 24 ore e qualche minuto: non stupirti se lo spazio non scende subito dopo il prune. Pianificala giornaliera, lontana dalla finestra dei backup.
Verify
Un verify job rilegge i chunk e ne controlla l'hash. Lo pianifico settimanale, con re-verify dopo 30 giorni: un settore del disco che si corrompe viene scoperto prima di averne bisogno.
La copia fuori sede
Un PBS nella stessa stanza del server non protegge da incendio, furto o allagamento. La soluzione nativa è un secondo PBS in un'altra sede (o in un datacenter) con un sync job che scarica i nuovi snapshot dal primo:
- il PBS remoto tira i dati: le credenziali del sito principale non danno accesso al remoto;
- trasferisce solo i chunk che non ha già, quindi dopo la prima sincronizzazione il traffico è modesto;
- ha una sua retention, anche più lunga.
Se preferisci, i backup possono essere cifrati lato client con una chiave che sul PBS non c'è. In quel caso la chiave va conservata in almeno due posti sicuri, fuori dal sistema che protegge: senza, i backup sono illeggibili anche per te.
Non solo VM
Con proxmox-backup-client si salvano su PBS anche server fisici Linux, cartelle, dump di database:
proxmox-backup-client backup documenti.pxar:/srv/documenti \
--repository 'backup@[email protected]:aziendale' --ns fileserver
Stessa deduplica, stessa retention, stessa verifica. Il ripristino dei singoli file si fa anche dall'interfaccia web, senza ripristinare l'intera VM.
Il backup non è finito finché non hai fatto un ripristino. Una volta al mese ripristino una VM a caso su una rete isolata e controllo che parta e che i dati siano quelli attesi. È l'unico modo per sapere che il sistema funziona davvero.
Posso aiutarti con la tua infrastruttura?
Che tu abbia un progetto da zero o un problema da risolvere, scrivimi o prenota una call gratuita di 30 minuti.