Programmare backup automatici di rete e via USB per le VM di Proxmox

Leggi questo articolo grazie alle donazioni di Franco Magro, Paolo Palumbo, Giuseppe Sorce, Sergio Lo Bianco, Fabio Sereno, Giuseppe Marino, Vincenzo Conigliaro, Francesco Mussoni, Mattia Bonoli, Loris Sambinelli, Massimo Bau.
♥ Partecipa anche tu alle donazioni: sostieni SaggiaMente, sostieni le tue passioni!

Ebbene sì, mi è successo, ho perso dei dati. Neanche un mese fa ho parlato delle mia politica di backup nella recensione del DAS T3 di TerraMaster ed eccomi qui oggi a fare ammenda. È iniziato tutto con una notte insonne, a seguito della quale AutoSleep mi ha pronosticato una "prontezza" da 1 stella su 5. Monitoro da anni il sonno con questa app unita all'Apple Watch, proprio perché non riesco ad avere un ritmo regolare. E sono abituato a lavorare anche quando il mio corpo mi dice che sarebbe meglio mettersi a letto per recuperare. Quello che però non avrei dovuto fare era buttarmi nell'impresa di aggiornare Proxmox sul NUC in cui risiedono alcuni componenti essenziali della mia infrastruttura di rete. Per fortuna non tutti, poiché altri girano sul mio NAS fatto in casa, ma ce ne sono alcuni fondamentali come il controller Unifi che gestisce il gateway con i tre access point e soprattutto Home Assistant.

Un po' di chiacchiere prima di iniziare

Di norma seguo la regola ferrea di non aggiornare nulla se non è necessario e di certo non senza un backup. Tuttavia quella singola stella di lucidità mi ha indotto ad essere meno cauto del dovuto. Ho scaricato uno snapshot integrale di Home Assistant sul mio computer ed ho eseguito backup locali sia delle macchine virtuali che dei container, cosa che mi ha dato un certo senso di mal posta sicurezza. Per passare da Proxmox 5 alla 6 ho seguito la guida ufficiale in modo piuttosto meticoloso ed il checkup effettuato al termine sembrava suggerire che fosse tutto in ordine. Così mi sono tranquillizzato ed ho riavviato, trovandomi con un nulla di fatto. Il NUC non partiva più, rimanendo bloccato sul grub, e dopo alcuni tentativi non sono riuscito a ripristinare il bootstrap. In un giorno diverso non sarei mai arrivato a questo punto ma avrei comunque continuato a tentare di risolvere invece di fare quello che ho fatto.

Ho installato Proxmox 6 da zero, sullo stesso disco su cui girava la versione danneggiata, trovandomi essenzialmente con un sistema vergine e tutto da riconfigurare. Non so cosa stessi pensando, non so come abbia potuto ritenerla una scelta "saggia", ma l'ho fatto. I sistemi informatici possono essere complicati ma il loro comportamento è prevedibile o perlomeno basato su logiche ferree, mentre a compiere gli errori ci pensiamo noi dall'altra parte della tastiera.

Ripristinare le cose con Proxmox sarebbe stato molto semplice avendo tutti i backup, ma inizializzando il tutto ho perso anche quelli. Mi sarei voluto prendere a sberle, ma ho preferito rimboccare le maniche e mettermi a lavoro. Per fortuna almeno di Home Assistant avevo scaricato lo Snapshot dalle impostazioni, mentre per pi-hole sono dovuto partire da zero ma ha richiesto poco sforzo, le varie ottimizzazioni le eseguirò con il tempo. Ben più complicato è stato il recupero del controller Unifi, poiché anche riportando gli stessi mac address, login e password SSH, non ne ha voluto sapere di "adottare" i dispositivi di rete precedenti. Per fortuna ho l'abitudine di tenere una nota protetta e sempre aggiornata di tutte le reti e le prenotazioni IP con relativo mac address, dunque in un paio d'ore ho rimesso in piedi anche quello. Con la VPN di pfSense ancora non ce l'ho fatta, è un software con cui litigo ed avrò bisogno dell'aiuto di un amico (Luca) ben più ferrato di me. La cosa più stramba mi è successa con il container in cui faccio girare un mio servizio web, che ho realizzato interamente via sFTP con Transmit ed Atom, e del quale non avevo neanche uno straccio di copia. Vi giuro, stavo per mettermi a piangere. Mi sono salvato solo perché il software mantiene una cache di tutti i file editati che si trova in home/Library/Caches/Transmit. Non è stato comunque facile dato che ogni sessione ha un suo codice criptato e dunque ho dovuto aprire centinaia di cartelle in ordine cronologico inverso per cercare le versioni più recenti di tutti i file relativi all'IP di quel container. C'è voluto un sacco di tempo e di pazienza e poi quasi tutta la notte per rimettere in piedi il servizio.

Ora che tutto è in ordine posso dire che non tutti i mali vengono per nuocere, perché ho colto l'occasione per mettere a punto delle cose che nella precedente installazione non andavano bene. Tuttavia ne avrei fatto volentieri a meno dato che ci sono volute quasi 18h di duro lavoro e tanto tanto stress. Di certo la lezione l'ho imparata e quindi il mio primo pensiero stamattina è stato quello di mettere in sicurezza tutte le macchine virtuali e i container di Proxmox. Ecco cosa ho fatto.

Backup di rete

Il primo backup che ho attivato è quello di rete, appoggiandomi al NAS. Su quest'ultimo utilizzo FreeNAS, dunque il procedimento che vi illustrerò sarà basato su di lui. I principi saranno gli stessi ovunque, dovete solo cercare le impostazioni corrispondenti su sistemi differenti.

In soldoni ho creato una condivisione di rete con NFS sulla rete locale ma per essere più preciso:

  • in Storage / Pools ho aggiunto un Dataset destinato al backup di Proxmox
  • sul Dataset appena creato (ProxmoxBackup) ho dato tutti i permessi in scrittura
  • in Sharing / Unix (NFS) Shares ho aggiunto il percorso del Dataset e in Advanced Mode ho limitato l'autorizzazione d'accesso solo all'IP di Proxmox ed a quello della mia postazione di lavoro principale

A questo punto su Proxmox / Datacenter / Storage ho aggiunto il percorso NFS (vengono rilevati in automatico quelli disponibili in una tendina), inserendo l'ID "Backup", attivando "VZDump" come Content (in modo che venga rilevato come destinazione valida per i Backup) e poi ho scelto di lasciare sempre le ultime due copie digitando "2" nel campo Max Backups.

Fatto questo mi sono recato su Proxmox / Datacenter / Backup ed ho aggiunto un nuovo task periodico, selezionando come storage di destinazione quello appena creato, attivandolo su tutte le VM con cadenza limitata alla domenica, precisamente alle 2 di notte.

Per provarlo ho cliccato su "Run now" ed ho monitorato la destinazione su FreeNAS, vedendo effettivamente apparire in pochi minuti tutti i dump come previsto.

Ovviamente potete eseguirlo anche più di frequente, ma per i backup giornalieri ho preferito il salvataggio via USB, sia per avere una seconda unità dislocata con i dati sia perché questo funziona anche in assenza di rete ed è più veloce.

Backup via USB

Per poter eseguire il dump della VM via USB serve prima di tutto un disco collegato. In realtà può essere anche una SD o una pendrive, io ho scelto proprio quest'ultima poiché avevo una Verbatim da 256GB inutilizzata. Una volta collegata sul NUC con Proxmox sono entrato nel mio nodo PVE e poi su Shell. Qui ho verificato la lista dei dischi disponibili con il comando:

fdisk -l

Trovare quello giusto è stato molto semplice dato che viene riportato il modello della pendrive (Store N go), ma anche in assenza di questo si trova facilmente in base alla capienza o ancora per lo schema della nomenclatura. Nel caso specifico era /dev/sdb


Ho formattato la pendrive ed ho preferito usare la FAT32, in modo che in caso di problemi io possa leggere facilmente i dati da qualsiasi computer. Per il momento non è un problema dato che i dump non superano i 4GB ma se dovesse rendersi necessario la riformatterò in EXT4 (che in realtà è più indicato).

#FAT32
mkfs.vfat /dev/sdb

#EXT4
sudo mkfs.ext4 /dev/sdb

Pronta la pendrive bisogna montarla dalla shell, creandogli una directory di destinazione. I due comandi sono i seguenti:

mkdir /media/pendrive
mount /dev/sdb /media/pendrive

Fatto questo si può ritornare sulla GUI in Proxmox / Datacenter / Storage e poi cliccare su Add / Directory. Come ID io ho ripetuto "pendrive" mentre la Directory è quella appena creata. Bisogna sempre selezionare "VZDump" come Content e in Max Backups il numero di salvataggi da mantenere per ogni VM (anche in questo caso ho scelto 2).

Per schedulare backup automatici anche sulla pendrive si va sempre da Proxmox / Datacenter / Backup, selezionando come "Storage" quello appena creato. Anche per questo processo ho scelto di salvare i dump di tutte le VM ma questa volta con frequenza giornaliera a mezzanotte.

Ho lanciato una prima esecuzione manuale con "Run now" e tutto è andato per il verso giusto. Ovviamente i dati sono accessibili da Proxmox cliccando sui relativi storage (backup quello NFS e pendrive quello USB) nella barra laterale.

Conclusione

Sono consapevole che questo specifico setup può non adattarsi a tutti, poiché ci sono esigenze diverse e magari anche infrastrutture differenti, tuttavia spero che le indicazioni in questa pagina possano fornire lo spunto giusto a chiunque utilizzi Proxmox (e non solo) per mettere in piedi una rete di sicurezza decente, così da evitare che qualche danno hardware o strafalcione da 1 stella, come il mio, possano arrecare danni irreparabili.

Maurizio Natali

Titolare e caporedattore di SaggiaMente, è "in rete" da quando ancora non c'era, con un BBS nell'era dei dinosauri informatici. Nel 2009 ha creato questo sito nel tempo libero, ma ora richiede più tempo di quanto ne abbia da offrire. Profondo sostenitore delle giornate di 36 ore, influencer di sé stesso e guru nella pausa pranzo, da anni si abbronza solo con la luce del monitor. Fotografo e videografo per lavoro e passione, seguimi su Instagram