Proxmox VE sa già creare backup delle macchine virtuali in file compressi, ma ogni backup è una copia completa: con dieci macchine e qualche settimana di storico lo spazio finisce in fretta. Proxmox Backup Server (PBS) nasce per risolvere questo problema. È un prodotto separato, libero, che si integra con l'hypervisor e cambia il modo in cui i backup vengono salvati.
L'idea: blocchi e deduplicazione
PBS divide i dati da salvare in blocchi (chunk) e identifica ciascuno con l'impronta crittografica del suo contenuto. Se un blocco con la stessa impronta esiste già nel datastore, non viene salvato una seconda volta. Ogni backup è quindi un elenco di riferimenti a blocchi, e solo quelli nuovi occupano spazio.
Gli effetti pratici sono due:
- deduplicazione: dieci macchine virtuali con lo stesso sistema operativo condividono gran parte dei blocchi;
- backup incrementali con aspetto completo: ogni backup si ripristina da solo, senza catene di incrementali da ricostruire, ma occupa solo la differenza.
Per le macchine virtuali accese, Proxmox VE tiene traccia dei blocchi modificati con una dirty bitmap: al backup successivo legge solo quelli. La bitmap però vive in memoria e si azzera quando la VM viene spenta o l'host riavviato, e allora il backup successivo deve rileggere tutto il disco, pur salvando comunque solo i blocchi nuovi.
Dove installarlo
PBS si installa da un'immagine dedicata oppure come pacchetto su Debian. Le opzioni realistiche in casa:
- una macchina fisica separata, anche modesta, con dischi propri: la soluzione migliore, perché un guasto dell'hypervisor non coinvolge i backup;
- sul NAS, come macchina virtuale, se il NAS è un sistema distinto dall'hypervisor;
- sullo stesso host di Proxmox VE, in una macchina virtuale o accanto all'hypervisor: pratico per iniziare, ma va affiancato da una copia altrove.
Il datastore lavora con moltissimi file piccoli e molte letture casuali durante verifiche e pulizie. Gli SSD sono l'ideale; con dischi meccanici conviene un pool ZFS con un special vdev su SSD per i metadati, oppure accettare tempi di manutenzione più lunghi.
Retention: quanto tenere
La politica di conservazione si esprime in numero di backup da mantenere per intervallo:
| Opzione | Significato |
|---|---|
| keep-last | gli ultimi N backup |
| keep-daily | uno per ciascuno degli ultimi N giorni |
| keep-weekly | uno per ciascuna delle ultime N settimane |
| keep-monthly | uno per ciascuno degli ultimi N mesi |
| keep-yearly | uno per ciascuno degli ultimi N anni |
Una combinazione ragionevole per un homelab: 7 giornalieri, 4 settimanali, 6 mensili. Grazie alla deduplicazione, aumentare lo storico costa meno di quanto si pensi.
La rimozione dei backup scaduti avviene in due fasi: il prune elimina i riferimenti, mentre la garbage collection cancella fisicamente i blocchi non più usati da nessun backup. Finché la garbage collection non gira, lo spazio non si libera.
Verifica
Un backup che non si può ripristinare non vale nulla. PBS offre job di verifica che rileggono i blocchi e ne controllano l'impronta, segnalando eventuali corruzioni del supporto. Conviene pianificarli settimanalmente e configurare le notifiche email.
La verifica tecnica però non sostituisce la prova pratica: nel mio lavoro ripristino periodicamente una macchina virtuale in un ambiente di test e controllo che si avvii e che i dati siano integri.
Cifratura
I backup possono essere cifrati lato client: è l'hypervisor a cifrare i dati prima di inviarli, con una chiave che PBS non conosce. Questo protegge i dati se il server di backup viene compromesso o se una sua copia finisce in mani altrui.
La contropartita è netta: senza la chiave, i backup sono irrecuperabili. La chiave va esportata e conservata in almeno due posti sicuri fuori dall'hypervisor, per esempio in un gestore di password e su carta in un luogo protetto.
Ripristino di singoli file
Oltre al ripristino completo di una macchina virtuale, PBS permette di sfogliare il contenuto di un backup e scaricare singoli file o cartelle. Per i container funziona direttamente; per le macchine virtuali la funzione è disponibile dall'interfaccia di Proxmox VE con i file system più comuni. È la funzione che si usa più spesso: un file di configurazione modificato per errore, un documento cancellato.
La copia fuori casa
Un solo PBS in casa protegge da guasti e errori, non da furto o incendio. Due strade:
- sync job verso un secondo PBS in un'altra sede, che scarica solo i blocchi mancanti e quindi richiede poca banda dopo la prima copia;
- backup su nastro, supportato da PBS, per chi dispone di un'unità LTO.
Con la cifratura lato client, il secondo server può anche essere ospitato da terzi senza che possa leggere i dati.
In sintesi
- PBS salva blocchi deduplicati: ogni backup è completo ma occupa solo le differenze.
- Il server di backup dovrebbe stare su hardware separato dall'hypervisor, idealmente su SSD.
- Prune e garbage collection insieme liberano lo spazio dei backup scaduti.
- Verifiche periodiche e ripristini di prova confermano che i backup funzionano.
- La chiave di cifratura va custodita fuori dall'hypervisor; la copia remota si fa con un sync job.