Come trasferire Macchine Virtuali e Container LXC tra due installazioni di Proxmox

Leggi questo articolo grazie alle donazioni di Enrico Valzano, EDUARD TOMESCU, Andrea Castiglione, Antonio Martella, Giampaolo Macorig, Filippo Gatti.
♥ Partecipa anche tu alle donazioni: sostieni SaggiaMente, sostieni le tue passioni!

In un precedente articolo del nostro SmartHome Channel, Davide ha spiegato come configurare un NUC con Proxmox ed Hassio. Se infatti il Raspberry è la migliore soluzione per iniziare a smanettare su Home Assistant, quando si capisce che il sistema è quello giusto e si vuole fare di più e meglio, è quasi inevitabile il passaggio su hardware di caratura superiore. La migliore soluzione in questi casi è quella di dotarsi di un piccolo, economico e silenzioso NUC. Si tratta di mini PC inizialmente ideati da Intel e che oggi si trovano in diverse forme e in ogni fascia prezzo. La cosa si fa interessante quando si piazza alla base di tutto un sistema di virtualizzazione come VMWare ESXi o Proxmox. Quest'ultimo è il più diffuso nel nostro canale ed usandolo come base per l'installazione di Home Assistant ed altri servizi (tra cui magari pihole, pfsense, ecc..) ci dà la possibilità di creare snapshot delle installazioni e delle configurazioni, effettuare backup e restore, allocare dinamicamente risorse hardware e tanto altro, gestendo il tutto da una comoda interfaccia web.

progettominimix-1

Io avevo una installazione simile su un piccolo computer su base ITX che era anche fin troppo potente per lo scopo. Funzionava benissimo ma ho deciso di dismetterlo perché aveva un alimentatore da circa 150W e la CPU Intel di classe desktop richiedeva una ventola per la dissipazione. Quindi oltre a consumare troppo faceva un po' di rumore. Nulla di eccessivo, ma essendo acceso h24 a circa 2m dalla scrivania dove lavoro (poiché è lì che ho posizionato il centro a stella delle connessioni), spesso mi dava fastidio. Ho quindi rispolverato un NUC di Zotac (lo ZBOX CI323) che non stavo usando più ed ho fatto un travaso completo. Questa è la situazione in cui mi trovavo ancora questa mattina, quando ho deciso di fare un nuovo cambio.

Configurare Proxmox sullo Zotac non è stato immediato e può esserlo ancora di più utilizzando NUC cinesi nobrand. L'installer nativo scaricabile da questa pagina si bloccava sempre per strada per una non ben precisata incompatibilità. Dunque ho dovuto partire da Debian e poi installare sopra Proxmox, ma prima di trovare la giusta configurazione di tutti i parametri e dello storage, ci ho faticato un po'. Adesso funziona, ma non mi dà l'idea di una situazione altrettanto stabile rispetto ad una all-in-one, anche se in fin dei conti i layer software sono pressoché identici. I NUC originali di Intel sono i più supportati nelle comunità online ed anche dalle stesse software house, dunque appena mi sono trovato nella necessità di creare una configurazione simile anche nella casa a mare (che attualmente è basata ancora su un Raspberry), ho pensato di acquistare un Intel NUC ed invertirne la posizione: il nuovo a casa/studio e il vecchio nella seconda casa.

Mi sarebbe piaciuto acquistare il modello con i3 o i5, ma alla fine ho preferito risparmiare con il rodatissimo Celeron J3455. Il NUC con questo processore quad-core a basso consumo costa poco ma è già più che sufficiente per un utilizzo tipico. Supera su tutti fronti il Celeron N3150 che equipaggiava la mia precedente configurazione, sulla quale avevo Home Assistant, Pfsense, Pihole e il controller Unifi per gli Access Point Ubiquiti. Certo non è adatto se volete farci girare Plex server o simili, ma per il resto va già più che bene. È piccolino ed arriva dotato di tutto a parte RAM e disco, che si installano in un attimo con unico strumento: un cacciavite a stella. Il setup che consiglio è questo:

Il NUC possiede una sola scheda Ethernet, se volete averne una seconda (da dedicare in esclusiva ad un servizio) ci sono diverse soluzioni e la più economica è quella di un adattatore USB (io ho utilizzato questo). Una volta acceso ed installato Proxmox, arriva la parte divertente: spostare le VM e le LXC tra la vecchia installazione e la nuova. Avendolo fatto già di recente ho sperimento più di una via e quella che vi propongo è quella che trovo più semplice da mettere in atto ed unisce una parte effettuata dalla GUI web ed una da linea di comando. Si potrebbe fare anche diversamente, ma durante il restore ho trovato che nella seconda parte è sicuro e pratico il Terminale e tra l'altro ci troverà già lì per effettuare lo scambio dati.

Fase 1: backup sull'installazione precedente

La prima cosa da fare è molto semplice: si accede all'interfaccia web del Proxmox attualmente in uso e si clicca su uno degli elementi da trasferire, diciamo proprio la VM di Hassio. Dal menu laterale si entra in Backup e poi si premere sul pulsante Backup in alto. Nella finestrella che si aprirà consiglio di impostare la compressione su none ed avviare la procedura. L'operazione avverrà davanti ai nostri occhi e alla fine si vedrà un messaggio che ne indica la conclusione.

Fase 2: trasferimento del file di backup

Per questa operazione consiglio di utilizzare il Terminale, anche se in teoria si potrebbe adoperare anche un client SFTP. Questo perché in fin dei conti l'operazione è semplicissima con scp e richiede una sola riga di comando. Per connettersi via SSH sull'installazione vecchia di Proxmox usate:

ssh root@IP_VECCHIO_PROXMOX

Una volta autenticati con password si deve entrare nella cartella dei backup:

cd /var/lib/vz/dump/

Per vedere tutti quelli presenti usiamo il comando ls con le opzioni -la

ls -la

I file hanno una nomenclatura standard che inizia con vzdump, prosegue con qemu per le VM oppure con lxc per i container, poi c'è l'ID univoco (ad esempio 100) e si conclude con data e ora in standard ISO (es: 2019_06_08_13_00_00). La distinzione tra questi elementi va sempre tenuta a mente, in quanto impatterà anche sul comando da utilizzare per l'operazione di restore.

Il trasferimento del backup dalla vecchia installazione di Proxmox alla nuova si potrebbe effettuare anche con pendrive, ma visti i volumi in gioco io consiglio di farlo via rete. L'operazione sarà abbastanza veloce con scp e l'unica accortezza è che entrambe le macchine devono essere accese e connesse, dunque dovranno utilizzare due IP differenti (cosa da ricordare nel momento in cui si installa la nuova copia di Proxmox evitando di assegnargli fin da subito l'indirizzo IP della vecchia).

scp FILE_BACKUP root@IP_DESTINAZIONE:/var/lib/vz/dump/

Il comando qui sopra va eseguito dal Terminale collegato via SSH sulla vecchia installazione di Proxmox, trovandosi già nella cartella /var/lib/vz/dump. Tutte cose già descritte nei precedenti passaggi. FILE_BACKUP sarà qualcosa tipo "vzdump-qemu-140-2019_06_08-12_58_28.vma" mentre IP_DESTINAZIONE è quello della nuova installazione di Proxmox. Dopo i due punti indichiamo il percorso di destinazione, che sarà uguale a quello sorgente, dunque /var/lib/vz/dump/. Dopo l'ultima slash si può opzionalmente specificare un nome diverso per il file,  utile per distinguerlo più chiaramente in mezzo agli altri, ma in realtà l'ID univoco è sufficiente (il 140 dopo qemu, in questo caso).

Fase 3: Ripristino sulla nuova installazione

Dopo aver effettuato tutti i backup ed inviati i file sul server di destinazione, passiamo alla fase di ripristino. Una cosa importante da precisare è che sia le VM che i Container si porteranno dietro tutte le configurazioni, comprese quelle di rete. Questo è un grande vantaggio poiché i MAC Address coincideranno, così come tutto il resto, ed ogni dispositivo della rete non sarà in grado di capire la differenza (nella maggior parte dei casi). Dunque se avevate prenotato un indirizzo IP sul router per la VM di Hassio questo rimarrà identico fin dalla prima accensione sulla nuova installazione di Proxmox. Procediamo con il ripristino che, come anticipato, sarà diverso per VM e Container: nel primo caso si utilizzerà il comando qmrestore nel secondo pct restore (lo spazio qui deve rimanere). Ovviamente si deve usare il Terminale ma questa volta ci si dovrà loggare via SSH sul nuovo Proxmox, quindi:

ssh root@IP_NUOVO_PROXMOX

Entriamo chiaramente nella cartella su cui abbiamo copiato i dump (ovvero i file di backup) ed eseguiamo ls per vederli tutti:

cd /var/lib/vz/dump/
ls -la

Ripristino di VM

qmrestore FILE_BACKUP ID --storage local-lvm

Ripristino di LXC

pct restore ID FILE_BACKUP --storage local-lvm

Escludendo il nome del file di backup, che sarà semplice da identificare nella lista, le due cose cui prestare attenzione sono l'ID numerico (da far coincidere con quello precedente) e lo storage. In una installazione standard quest'ultimo potrebbe non essere necessario da specificare, in quanto Proxmox ha un solo volume logico destinato a stoccare le immagini disco ed i container, ma consiglio sempre di controllare per sicurezza. Basta entrare nella sezione Datacenter / Storage e dare un'occhiata.

Terminati tutti i ripristini si devono spegnere le VM e i Container sulla vecchia installazione di Proxmox e poi aprire quelli nuovi per controllare che sia tutto in ordine nella sezione Hardware. Ad esempio su Hassio io ho collegato la pennetta Aotec Z-Wave che andrà spostata fisicamente sul nuovo computer e assegnata alla VM di Home Assistant prima di avviarlo. Tutti i dispositivi abbinati a quel controller rimarranno disponibili, poiché l'abbinamento non ha nulla a che fare con il computer ma risiede direttamente nella pennetta. Stessa cosa succede utilizzando altri controller come il ConBee. In alcuni casi può essere necessario verificare anche la configurazione Network del Datacenter sul nodo del nuovo Proxmox (qui sopra è pve), ad esempio se usate due schede di rete come me ci sarà da creare il secondo bridge linux vmbr1.

Una volta controllato che tutto funzioni, si può spegnere il vecchio Proxmox, assegnare il suo IP (o i suoi IP) al nuovo nella sezione nodo / Network e riavviarlo. Infine consiglio di dare un'occhiata al precedente post sulla creazione del setup perché ci sono indicazioni utili per impostare backup periodici ed altre cosucce.

Autore
Maurizio Natali (@simplemal)

SmartHome Channel

Special Team - I SaggiUtenti del canale #SmartHome presente sul nostro Slack uniti per creare guide e recensioni dedicate all'automazione. Partecipa anche tu entrando nel gruppo effettuando una donazione dal SaggioSupporto.