Come eseguire il backup di macchine virtuali su un host ESXi autonomo?


17

Host ESXi (4.1) autonomo senza server vCenter.

Come eseguire il backup delle macchine virtuali nel modo più rapido e intuitivo possibile?

So di poter accedere alla console ESXi e utilizzare il cpcomando Unix standard , ma questo ha il rovescio della copia dell'intero file VMDK, non solo del loro spazio effettivamente utilizzato; quindi, per un VMDK da 30 GB di cui viene utilizzato solo 1 GB, il backup richiederebbe 30 GB completi di spazio e tempo di conseguenza.

E sì, conosco i dischi virtuali con thin provisioning, ma tendono a comportarsi molto male quando vengono copiati fisicamente e / o esplodere fino alla loro dimensione di provisioning completo; inoltre, non sono consigliati per le prestazioni effettive della VM.

Va bene per me arrestare le macchine virtuali prima di eseguirne il backup (ovvero non ho bisogno di backup "live"); ma ho bisogno di un modo per copiarli in modo efficiente; e sì, sarebbe utile anche un modo per automatizzare l'arresto / avvio durante l'esecuzione di un backup.

Ho solo ESXi; nessuna console di servizio, nessun server vCenter ... qual è il modo migliore per gestire questa attività? Inoltre, per quanto riguarda i ripristini?

Risposte:


17

La mia soluzione preferita per questo è semplicemente esportarli in un file ovf o ova usando il client vSphere o la riga di comando ovftool .

Nel client vSphere, assicurarsi che la VM sia spenta, quindi evidenziarla e andare su File-> Esporta-> Esporta modello OVF. Quindi basta seguire le istruzioni.

Il ripristino è un gioco da ragazzi, basta fare il contrario (l'opzione di menu è "Distribuisci modello OVF", credo).

Per creare un backup sottile usando ovftool

ovftool -dm=thin  vi://<user>@<esxi-host>/<vm-name> <local-file>.ovf

Potresti anche voler controllare alcune delle opzioni su http://www.virtuallyghetto.com/ , so che sono molto popolari e penso che ci siano alcune buone scelte per i backup, anche se non ne ho esaminato nessuno troppo recentemente


Il backup e il ripristino OVF sembrano funzionare alla grande come opzione di backup VMWare di un uomo povero. Alla fine ho intenzione di automatizzare usando cli ovftool, ma chiudere la vm all'interno dello script mentre il backup viene eseguito sarà la parte difficile.
potenziato a vapore il

OVF è molto lento. Se si desidera evitare tempi di inattività, è possibile utilizzare il client Web per clonare una VM in esecuzione pagando per vMotion, quindi arrestare e eseguire il backup del clone. Nessun tempo morto.
potenziato a vapore

5

Non so se questo si adatta bene, ma VM Explorer fa un buon lavoro nell'esecuzione di backup a caldo o a freddo di macchine virtuali. Credo che con ESXi 4.1 VM Explorer ti consenta di eseguire anche i backup dei guest VM da un host a un altro host.


Dovrò vedere di più, ma fin dall'inizio vedo qualcosa che mi piace: concesso in licenza per installazione.
Chadddada,

La versione base è gratuita
Matthew Lock,

Buono a notare che questo non è più gratuito, il livello più basso è "Professional" a $ 699
Douglas Gaskell

4

Ho finito per scrivere uno script che copia i file di configurazione della VM e li usa vmkfstools -dper clonare i VMDK preservando il thin provisioning.

Per riferimento:

#!/bin/sh

if [ $# != 2 ]; then
        echo "Usage: $(basename $0) <SOURCE VM PATH> <DESTINATION PATH>"
        echo "Example: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
        exit
fi

vmx=$(basename $(/bin/ls $1/*.vmx))
name=$(grep displayName $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmxf=$(grep vmxf $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
nvram=$(grep nvram $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmdks=$(grep vmdk $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')

echo "Started copying VM $name"

vmdir=$(basename $1)
destpath="$2/$vmdir"

echo "Source path: $1"
echo "Destination path: $destpath"

echo "Creating destination path $destpath"
/bin/mkdir -p $destpath

echo "Copying configuration files:"
echo $vmx
/bin/cp $1/$vmx $destpath
echo $vmxf
/bin/cp $1/$vmxf $destpath
echo $nvram
/bin/cp $1/$nvram $destpath

echo "Copying virtual disks:"
for vmdk in $vmdks;
do
        echo $vmdk
        /sbin/vmkfstools -d thin -i $1/$vmdk $destpath/$vmdk
done

echo "Completed copying VM $name"

Ciò richiede che la VM sia spenta e non abbia istantanee attive.


Ciao, che ne dici di un grosso pigro?
Rovshango,

Ottimo script @Massimo, ma ho dovuto aggiungere doppie virgolette all'assegnazione di vmx per evitare l'errore di sintassi del nome di base: vmx = $ (nome di base "$ (/ bin / ls $ 1 / *. Vmx)"). Ma ora, se il percorso $ 1 contiene spazi, si arresta in modo anomalo perché $ 1 non viene quotato. Non riuscivo a liberarmi di questo problema. Qualche idea?
Blazeag,

4

Vorrei provare a utilizzare una soluzione comprovata di qualche tipo piuttosto che creare il tuo. La seccatura, il tempo e il rischio ridotti si ripagheranno facilmente anche se si opta per una soluzione che non è gratuita. Tutti questi problemi di cui ti preoccupi vengono risolti in qualsiasi soluzione di backup moderna per ESXi.

La soluzione che un client utilizza per fortuna nel proprio ambiente ESXi è Veeam. Esiste anche un'edizione gratuita che può funzionare per le tue esigenze: https://www.veeam.com/virtual-machine-backup-solution-free.html


1
L'edizione gratuita necessita ancora delle licenze ESXi.
Overmind

@Overmind Hai assolutamente ragione. Ho trascurato che non funziona (ironicamente, forse) con l'edizione gratuita di vSphere Hypervisor.
Josh Richards,

2

Ghetto VCB può eseguire il backup mentre la macchina è in esecuzione. Per lo spazio è possibile utilizzare un file system di deduplicazione + compressione come lessfs sul server di backup.


1

XSIBackup è un servizio ESXi che viene eseguito nel sistema operativo hypervisor ESXi e ha un footprint minimo. In effetti i tuoi utenti non noteranno che c'è un backup in background.

Offre due diversi strumenti: XSIBackup-Free e XSIBackup-Pro.

XSIBackup-Free offre tutte le funzionalità presenti nella versione Pro, come ad esempio:

  • Backup a caldo
  • Pianificazione cron
  • Backup differenziali istantanei (OneDiff)
  • Deduplicazione a livello di blocco nativo più compressione per archivi dati locali e server Linux (XSITools).

La versione Pro offre tutti gli strumenti estesi di cui sopra oltre a velocizzare i trasferimenti di dati (XSIDiff), la certificazione di backup tramite checksum, i metodi di confronto rapido dei file e una GUI SSH (Graphical User Interface) che consente di configurare tutte le opzioni da una procedura guidata, accelerare la configurazione dei processi di backup.

https://33hops.com/xsibackup-pro-vmware-esxi-backup.html


0

Sto esportando anche in formato OVF. Va bene perché comprime al volo l'immagine con gzip.

Ma le licenze sono sparite, perché con l'importazione di un file OVF in un ESXI viene creata una macchina con nuovo hardware.

Soluzione:

Eseguo il backup (download) della cartella dei file della macchina virtuale senza l'immagine grande e li comprimo.

Entrambi - cartella ovf e copia compressa di file immagine virtuali (senza immagine grande) - si trovano nella stessa cartella.

Ripristino:

-> Importazione di OVF in ESXI e caricamento della configurazione non compressa (dalla cartella del file di backup) -> La macchina virtuale va di nuovo bene

Ismail


0

cpio può copiare file sparsi preservando i "buchi" al loro interno.


AFAIK, non c'erano strumenti in grado di gestire i file sparse.vmdk in modo nativo, a parte vmkfstools, che è limitato alla copia dei file in un file system locale. Ecco perché abbiamo creato (c) XSIDiff come parte della nostra suite di strumenti per ESXi. Copia solo i blocchi utilizzati come vmkfstools, ma è possibile copiare i dati su SSH e anche come app client / server TCP / IP. Puoi scaricare una versione di lavoro gratuita qui: 33hops.com/download-xsidiff-trial.html
Daniel J.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.