
Nell'articolo Abbiamo installato con successo il hypervisor sul server, collegato il storage, curato la sicurezza di base e persino creato la prima macchina virtuale. Ora analizzeremo come realizzare le operazioni più fondamentali che dobbiamo eseguire per avere sempre la possibilità di ripristinare il funzionamento dei servizi in caso di guasto.
Gli strumenti standard di Proxmox non solo consentono di eseguire il backup dei dati, ma anche di creare set di immagini di sistemi operativi preconfigurati per un rapido deployment. Questo non solo aiuta a creare un nuovo server per qualsiasi servizio in pochi secondi, ma diminuisce anche il tempo di inattività al minimo.
Non ci soffermeremo sulla necessità di creare backup, poiché è ovvio ed è già da tempo un'assioma. Ci concentreremo su alcune cose non ovvie e caratteristiche.
Iniziamo a vedere come vengono salvati i dati durante la procedura di backup.
Algoritmi di backup
Partiamo dal fatto che Proxmox ha un buon insieme di strumenti standard per la creazione di backup delle macchine virtuali. Permette di salvare facilmente tutti i dati della macchina virtuale e supporta due meccanismi di compressione, oltre a tre metodi per creare questi backup.
Iniziamo ad analizzare i meccanismi di compressione:
- Compressione LZO. Algoritmo di compressione senza perdita, ideato nei primi anni '90. Il codice è stato scritto (è implementato in Proxmox tramite l'utilità lzop). La principale caratteristica di questo algoritmo è la velocità di decompressione. Pertanto, qualsiasi backup creato utilizzando questo algoritmo può essere ripristinato in tempi minimi, se necessario.
- Compressione GZIP. Utilizzando questo algoritmo, il backup verrà compresso "al volo" tramite l'utilità GNU Zip, che utilizza un potente algoritmo Deflate, creato . L'attenzione principale è rivolta a massimizzare la compressione dei dati, il che consente di ridurre lo spazio su disco occupato dai backup. La principale differenza rispetto a LZO è che le procedure di compressione/decompressione richiedono un tempo considerevole.
Modalità di archiviazione
Proxmox offre all'amministratore di sistema tre metodi di backup tra cui scegliere. Questi possono risolvere il compito necessario, stabilendo una priorità tra la necessità di inattività e l'affidabilità del backup effettuato:
- Modalità Snapshot. Questa modalità può essere chiamata anche Live backup, poiché non è necessario fermare il funzionamento della macchina virtuale per utilizzarla. L'utilizzo di questo meccanismo non interrompe l'operazione della VM, ma presenta due svantaggi molto seri: possono sorgere problemi a causa dei blocchi dei file da parte del sistema operativo e la velocità di creazione è molto bassa. I backup creati con questo metodo devono sempre essere verificati in un ambiente di test. Altrimenti, c'è il rischio che, in caso di un ripristino urgente, possano fallire.
- Modalità Suspend. La macchina virtuale «congela» temporaneamente il proprio stato fino al termine del processo di backup. Il contenuto della memoria RAM non viene cancellato, il che consente di riprendere l'attività esattamente dal punto in cui era stata interrotta. Naturalmente, questo provoca un'interruzione del server durante il trasferimento delle informazioni, ma non è necessario spegnere/riaccendere la macchina virtuale, cosa critica per alcuni servizi. Soprattutto se l'avvio di parte dei servizi non è automatico. Tuttavia, anche questi backup dovrebbero essere implementati in un ambiente di test per la verifica.
- Modalità Stop. Il modo più affidabile per eseguire il backup, ma richiede lo spegnimento completo della macchina virtuale. Viene inviata un'istruzione per lo spegnimento regolare, dopo il quale viene eseguito il backup e poi viene dato l'ordine di accendere la macchina virtuale. Il numero di errori con questo approccio è minimo e nella maggior parte dei casi si riduce a zero. I backup creati in questo modo vengono quasi sempre ripristinati correttamente.
Esecuzione della procedura di backup
Per creare un backup:
- Passiamo alla macchina virtuale desiderata.
- Selezioniamo la voce Ridondanza.
- Facciamo clic sul pulsante Esegui backup ora. Si aprirà una finestra in cui sarà possibile selezionare le impostazioni del futuro backup.

- Come archiviazione, indichiamo quella che abbiamo collegato .
- Dopo aver selezionato le impostazioni, facciamo clic sul pulsante Ridondanza e aspettiamo che il backup venga creato. Questo sarà indicato da un messaggio TASK OK.

Ora gli archivi creati con i backup delle macchine virtuali saranno disponibili per il download dal server. Il metodo più semplice e banale per copiare è SFTP. Per questo, usa il popolare client FTP multipiattaforma FileZilla, che supporta il protocollo SFTP.
- Nel campo Host inseriamo l'indirizzo IP del nostro server di virtualizzazione, nel campo Nome utente inseriamo root, nel campo Password — quella scelta durante l'installazione, e nel campo Porta indichiamo «22» (o un'altra porta che è stata impostata per le connessioni SSH).
- Facciamo clic sul pulsante Connessione rapida e, se tutti i dati sono stati inseriti correttamente, nella pannello attivo vedrai tutti i file presenti sul server.
- Accediamo alla directory /mnt/storage. Tutti i backup creati saranno nella sottodirectory «dump». Avranno il seguente formato:
- vzdump-qemu-numero_macchina-data-ora.vma.gz nel caso venga scelto il metodo GZIP;
- vzdump-qemu-numero_macchina-data-ora.vma.lzo nel caso venga scelto il metodo LZO.
Si consiglia di scaricare immediatamente i backup dal server e conservarli in un luogo sicuro, ad esempio nel nostro storage cloud. Se decomprimi il file con estensione vma utilizzando l'utility omonima fornita con Proxmox, all'interno troverai file con estensioni raw, conf e fw. Questi file contengono quanto segue:
- raw — immagine del disco;
- conf — configurazione della VM;
- fw — impostazioni del firewall.
Non è un segreto per nessuno che la chiave di una base dati sana è nel ripristino periodico e nella verifica dell'integrità dei dati all'interno. Come ripristinarsi utilizzando WAL-G – ve lo spiegherò in questa sezione, mentre parleremo dei controlli dopo.
Consideriamo il caso in cui la macchina virtuale sia stata accidentalmente eliminata e sia necessario un ripristino urgente dal backup:
- Apriamo lo storage dove si trova il backup.
- Andiamo alla scheda Contenuto.
- Selezioniamo il backup desiderato e premiamo il pulsante Ripristino.

- Indichiamo lo storage di destinazione e l'ID che verrà assegnato alla macchina dopo il completamento del processo.
- Facciamo clic sul pulsante Ripristino.
Una volta completato il ripristino, la VM apparirà nell'elenco disponibile.
Clonazione della macchina virtuale
Per esempio, supponiamo che nella compagnia sia necessario apportare delle modifiche a un servizio critico. Questo cambiamento viene attuato inserendo molte modifiche nei file di configurazione. Il risultato può essere imprevedibile e qualsiasi errore può causare un guasto del servizio. Per evitare che tale esperimento influisca sul server operativo, è consigliabile effettuare la clonazione della macchina virtuale.
Il meccanismo di clonazione creerà una copia esatta del server virtuale, con la quale è possibile apportare qualsiasi modifica, senza influenzare il funzionamento del servizio principale. Successivamente, se le modifiche saranno applicate con successo, la nuova VM viene messa in funzione, mentre la vecchia viene spenta. In questo processo c'è una particolarità da tenere sempre a mente. Sulla macchina clonata, l'indirizzo IP sarà esattamente lo stesso di quello della VM originale, il che significa che al suo avvio si verificherà un conflitto di indirizzi.
Spiegheremo come evitare tale situazione. Prima di eseguire la clonazione, è necessario apportare modifiche alla configurazione di rete. Per questo è necessario modificare temporaneamente l'indirizzo IP, senza riavviare il servizio di rete. Dopo aver effettuato la clonazione, è necessario ripristinare le impostazioni sulla macchina principale e impostare un altro indirizzo IP sulla macchina clonata. In questo modo otterremo due copie dello stesso server su indirizzi diversi. Questo consentirà di mettere rapidamente in funzione un nuovo servizio.
Se questo servizio è un server web, è sufficiente modificare il record A presso il tuo provider DNS, dopo di che le richieste dei clienti a questo nome di dominio saranno già indirizzate all'indirizzo della macchina virtuale clonata.
A proposito, Selectel offre a tutti i suoi clienti il servizio di hosting di qualsiasi numero di domini sui server NS gratuitamente. La gestione dei record avviene sia tramite il nostro pannello di controllo, sia tramite una speciale API. Leggi di più .
Clonare una VM in Proxmox è un compito molto semplice. Per completarlo, è necessario eseguire i seguenti passaggi:
- Accedere alla macchina di interesse.
- Selezionare dal menu More l'opzione Clona.
- Nella finestra aperta, riempire il campo Nome.

- Eseguire la clonazione facendo clic sul pulsante Clona.
Questo strumento consente di fare una copia della macchina virtuale non solo sul server locale. Se più server di virtualizzazione sono raggruppati in un cluster, con questo strumento è possibile immediatamente trasferire la copia creata sul server fisico desiderato. Una funzione utile è la scelta dello storage disco (parametro Target Storage), il che è molto comodo quando si sposta una macchina virtuale da un supporto fisico a un altro.
Formati di archiviazione virtuale
Parleremo più dettagliatamente dei formati dei supporti utilizzati in Proxmox:
- RAW. Il formato più comprensibile e semplice. Si tratta di un file con i dati del disco rigido "byte per byte" senza compressione o ottimizzazione. È un formato molto comodo, poiché può essere montato facilmente con il comando standard mount in qualsiasi sistema Linux. Inoltre, è il "tipo" di supporto più veloce, poiché l'hypervisor non deve elaborarlo in alcun modo.
Un grave svantaggio di questo formato è che la quantità di spazio allocato per la macchina virtuale corrisponde esattamente allo spazio occupato dal file nel formato RAW sul disco rigido (indipendentemente dallo spazio realmente occupato all'interno della macchina virtuale).
- Formato immagine QEMU (qcow2). Probabilmente il formato più versatile per svolgere qualsiasi compito. Il suo vantaggio è che il file dei dati conterrà solo lo spazio realmente occupato all'interno della macchina virtuale. Ad esempio, se sono stati allocati 40 GB di spazio, ma ne sono stati occupati solo 2 GB, lo spazio rimanente sarà disponibile per altre VM. Questo è molto rilevante in un contesto di risparmio di spazio su disco.
Un piccolo svantaggio nell'utilizzo di questo formato è il seguente: per montare un'immagine di questo tipo in qualsiasi altro sistema, sarà necessario prima caricare , oltre a utilizzare l'utilità qemu-nbd, che consentirà al sistema operativo di accedere al file come a un normale dispositivo a blocchi. Dopo di ciò, l'immagine sarà disponibile per essere montata, partizionata, sottoposta a verifica del file system e ad altre operazioni.
Va ricordato che tutte le operazioni di input/output nell'utilizzo di questo formato vengono elaborate a livello software, il che comporta un rallentamento durante il lavoro attivo con il sottosistema di disco. Se l'obiettivo è quello di distribuire un database su un server, è meglio scegliere il formato RAW.
- Formato immagine VMware (vmdk). Questo formato è "nativo" per l'hypervisor VMware vSphere ed è stato incluso in Proxmox per la compatibilità. Consente di eseguire la migrazione della macchina virtuale VMware nell'infrastruttura Proxmox.
L'uso del vmdk su base permanente non è consigliato, poiché questo formato è il più lento in Proxmox, quindi è adatto solo per eseguire migrazioni, e non oltre. Probabilmente, in un futuro prossimo, questo svantaggio sarà risolto.
Lavorazione con immagini di disco
Il pacchetto di Proxmox include un'utilità molto utile, chiamata qemu-img. Una delle sue funzioni è la conversione delle immagini dei dischi virtuali. Per usarla, basta aprire la console del hypervisor ed eseguire il comando nel formato:
qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2Nell'esempio fornito, l'immagine vmdk del dispositivo di archiviazione virtuale chiamata test verrà convertita nel formato qcow2. Questo è un comando molto utile quando è necessario correggere un errore nella scelta iniziale del formato.
Grazie a questo stesso comando è possibile forzare la creazione dell'immagine necessaria, utilizzando l'argomento create:
qemu-img create -f raw test.raw 40GQuesto comando creerà un'immagine test nel formato RAW, con una dimensione di 40 GB. Ora è adatta per essere collegata a una delle macchine virtuali.
Modifica delle dimensioni del disco virtuale
Infine, mostriamo come aumentare le dimensioni dell'immagine del disco, se per qualche motivo lo spazio è diventato insufficiente. Per fare questo, utilizziamo l'argomento resize:
qemu-img resize -f raw test.raw 80GOra la nostra immagine è diventata di 80 GB. È possibile visualizzare informazioni dettagliate sull'immagine utilizzando l'argomento info:
qemu-img info test.rawNon bisogna dimenticare che l'estensione stessa dell'immagine non aumenterà automaticamente le dimensioni della partizione — semplicemente aggiungerà spazio libero disponibile. Per aumentare la partizione, utilizzare il comando:
resize2fs /dev/sda1dove /dev/sda1 — la partizione necessaria.
Automazione della creazione di backup
Utilizzare il metodo manuale per creare backup è un compito piuttosto laborioso e richiede molto tempo. Pertanto, Proxmox VE include uno strumento per il backup automatico programmato. Vediamo come fare:
- Utilizzando l'interfaccia web del hypervisor, apriamo la sezione Data center.
- Selezioniamo la voce Ridondanza.
- Facciamo clic sul pulsante Aggiungere.
- Impostiamo i parametri per il pianificatore.

- Selezioniamo la casella di controllo Attiva.
- Salviamo le modifiche, utilizzando il pulsante Crea.
Ora il pianificatore avvierà automaticamente il programma di backup all'orario specificato, in base al programma impostato.
Conclusione
Abbiamo esaminato i metodi standard per la creazione di backup e il ripristino delle macchine virtuali. Il loro utilizzo consente di salvare senza problemi tutti i dati e di ripristinarli rapidamente in caso di situazioni straordinarie.
Certamente, non è l'unico modo possibile per salvare dati importanti. Esistono molti strumenti, ad esempio, , con cui è possibile creare copie complete e incrementali del contenuto dei server virtuali basati su Linux.
Quando si eseguono le procedure di backup, è sempre importante tenere presente che esse caricano attivamente il sistema dei dischi. Pertanto, è consigliabile eseguire queste procedure nei momenti di minima attività, per evitare ritardi nelle operazioni di input/output all'interno delle macchine. È possibile monitorare lo stato dei ritardi delle operazioni sui dischi direttamente dall'interfaccia web dell'ipervisor (parametro IO delay).
Fonte: habr.com





