La virtualizzazione offre diversi vantaggi per le operazioni di backup e ripristino, che sono la spina dorsale della protezione dei dati, della continuità operativa e della disponibilità. In particolare, la virtualizzazione rende possibili backup senza agente e basati sull’immagine a livello di host. Questi tipi di backup possono catturare l’intera VM, compresa la configurazione della VM e i dati della VM.
Tuttavia, è importante proteggere anche gli host, poiché gli host ESXi sani sono importanti per il corretto funzionamento delle VM. È consigliabile eseguire il backup della configurazione di ESXi, poiché un backup dell’host utilizzabile può aiutarti a ripristinare la configurazione dell’host in pochi minuti senza dover configurare un server ESXi da zero. Continua a leggere per conoscere i diversi metodi per il backup dell’host ESXi.
Metodo 1: Utilizzo della riga di comando di ESXi per eseguire il backup degli host ESXi
Utilizzare la riga di comando di ESXi è il metodo più conveniente per eseguire il backup della configurazione di un host ESXi. Non è necessario installare alcun software aggiuntivo per utilizzare la riga di comando di ESXi. È sufficiente abilitare la shell ESXi e l’accesso SSH remoto a un host ESXi. Una volta connesso al tuo host ESXi tramite SSH, puoi eseguire i comandi.
La configurazione di ESXi viene salvata automaticamente ogni ora nel file /bootblank/state.tgz. Per questo motivo, è necessario assicurarsi che la configurazione corrente di ESXi venga scritta nei file di configurazione di ESXi in questo momento per garantire che tutte le modifiche apportate alla configurazione di ESXi dall’ultimo salvataggio automatico siano salvate. Per farlo:
vim-cmd hostsvc/firmware/sync_config
- Controlla e sincronizza la configurazione di ESXi con lo storage persistente:
vim-cmd hostsvc/firmware/sync_config
- Esegui il backup della configurazione di ESXi una volta completata la sincronizzazione:
vim-cmd hostsvc/firmware/backup_config
Di conseguenza, riceverai un link per scaricare l’archivio configBundle.tgz dall’host ESXi.
http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz
- Sostituisci l’asterisco (*) con l’indirizzo IP del tuo host ESXi. Il file di archivio che contiene il backup della configurazione ESXi è salvato nella directory /scratch/downloads per un breve periodo di tempo (alcuni minuti).
Puoi trovare l’indirizzo IP del tuo host ESXi nell’interfaccia della console diretta di ESXi o sulla riga di comando con il comando:
esxcli network ip interface ipv4 get
L’indirizzo IP dell’host ESXi utilizzato nell’esempio corrente è 192.168.101.208
- Scarica l’archivio di backup ESXi il prima possibile e conservalo in un luogo sicuro.
Come automatizzare il backup della configurazione ESXi sulla riga di comando di ESXi
Il vantaggio di un’interfaccia a riga di comando è la possibilità di automatizzare, e il backup della configurazione ESXi non fa eccezione. Vediamo i passaggi per farlo:
- Crea una directory per memorizzare i file di backup sul datastore ESXi.
mkdir /vmfs/volumes/datastore1/ESXi_backup
- Crea uno script per eseguire il backup della configurazione di ESXi:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
- Aggiungi le seguenti righe allo script:
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz \;
- Salva il file e esci da vi:
:wq
NOTA: Per una maggiore comodità, puoi anche includere il nome host o l’indirizzo IP di ESXi nel nome del file di backup. Questo ti aiuterà ad evitare confusione con più host ESXi.
- Rendi lo script eseguibile:
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
- Vai alla directory in cui si trova lo script:
cd /vmfs/volumes/datastore1/ESXi_backup/
- Esegui lo script:
./esxi_backup.sh
- Verifica che sia stato creato un file di backup:
ls -al
- Assicurati che lo script di backup della configurazione ESXi venga eseguito in base a un programma (automaticamente). Modifica la configurazione del programmatore a questo scopo:
vi /var/spool/cron/crontabs/root
- Aggiungi la seguente stringa per eseguire il backup della configurazione ESXi ogni giorno alle 02:10:
10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
- Salvare le modifiche nel file. Per salvare le modifiche nel file in sola lettura, inserire:
:wq!
Come alternativa, è possibile modificare i permessi del file prima di modificarlo:
chmod +w /var/spool/cron/crontabs/root
Una volta configurato, la configurazione di ESXi verrà automaticamente salvata alle 02:10 di ogni notte nel file con il nome ESXi_config_bakup_date_time.tgz.
Come ripristinare la configurazione di ESXi nella riga di comando di ESXi
È necessario avere ESXi della stessa versione e numero di build dell’host ESXi di backup installato sulla macchina dove si desidera ripristinare la configurazione di ESXi. Questa regola vale per tutti i metodi di ripristino della configurazione di ESXi considerati in questo post del blog.
Se si intende ripristinare la configurazione di ESXi su un host ESXi appena installato (appena installato), è necessario impostare l’indirizzo IP per l’interfaccia di rete utilizzata per la rete di gestione di ESXi e abilitare l’accesso SSH.
L’UUID deve essere lo stesso sia sul server ESXi che è stato eseguito il backup sia sul server ESXi su cui verrà ripristinata la configurazione. I passaggi da seguire se i valori UUID sono diversi sono coperti nella sezione successiva.
Per ripristinare la configurazione di ESXi:
- Dopo aver preparato il tuo host ESXi appena installato per ripristinare la configurazione di ESXi da un backup, connettiti all’host ESXi tramite SSH e metti l’host in modalità di manutenzione (le VM sono ferme in questa modalità).
esxcli system maintenanceMode set --enable yes
o
vim-cmd hostsvc/maintenance_mode_enter
- Copia l’archivio che contiene il backup della configurazione di ESXi in una directory sull’host ESXi utilizzando un client SCP, ad esempio WinSCP. Copiamo l’archivio configBundle-xxxx.tgz dalla macchina locale alla directory /tmp/ sul server ESXi di destinazione.
- Rinomina il file configBundle-xxxx.tgz in configBundle.tgz prima di eseguire il comando per ripristinare la configurazione di ESXi. Altrimenti, riceverai il messaggio di errore: “File /tmp/configBundle.tgz non trovato“.
Puoi rinominare il file nella shell di ESXi a cui ti sei connesso tramite SSH:
mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz
- Ripristina la configurazione di ESXi:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Dopo l’esecuzione di questo comando, l’host ESXi verrà riavviato automaticamente.
- Dopo il riavvio del server ESXi, esci dalla modalità di manutenzione, dopodiché potrai utilizzare l’host come al solito.
esxcli system maintenanceMode set --enable no
oppure
vim-cmd hostsvc/maintenance_mode_exit
Come cambiare l’UUID per ripristinare la configurazione di ESXi
Puoi utilizzare uno dei 2 modi per controllare l’UUID del server ESXi:
- Nell’interfaccia della riga di comando ESXi:
esxcfg-info -u
- Nel file Manifest.txt all’interno dell’archivio di backup della configurazione configBundle.tgz che hai creato con i comandi spiegati sopra.
Non puoi cambiare l’UUID del server ESXi poiché l’identificatore viene generato a seconda dell’hardware. Tuttavia, puoi recuperare la configurazione ESXi dell’host ESXi A sull’host ESXi B dopo aver cambiato l’UUID nel file Manifest.txt memorizzato nell’archivio di backup della configurazione ESXi configBundle.tgz.
Ora vediamo come cambiare l’UUID per applicare la configurazione ripristinata a un altro server fisico. Server A è il server la cui configurazione è stata salvata, e Server B è il server a cui verrà applicata la configurazione.
Fase 1
Controlla l’UUID sull’host ESXi a cui desideri applicare la configurazione ripristinata (server B). Ciò può essere fatto con almeno due metodi, ma il secondo metodo ti consente anche di verificare la versione di ESXi:
- Esegui il
esxcfg-info -u
- Eseguire il backup della configurazione del server ESXi B:
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
- Copiare l’archivio di backup nella directory temporanea e accedere a quella directory:
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp
cd /tmp/
- Estrarre i file dall’archivio:
tar zxvf configBundle.tgz
- Aprire il file Manifest.txt con vi e controllare il valore UUID (verrà visualizzata una riga separata con l’UUID). Annotare l’UUID.
vi Manifest.txt
Nel nostro caso, l’UUID è 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
- È possibile eliminare i file temporanei nella directory /tmp/:
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Fase 2
- Copia l’archivio di backup della configurazione configBundle.tgz del server ESXi A su Server B, ad esempio, nella directory /tmp/ e vai in quella directory.
- Estrai i file dall’archivio configBundle.tgz:
tar zxvf configBundle.tgz
- Apri il file Manifest.txt con vi e aggiorna il valore UUID di Server A con l’UUID di Server B:
vi Manifest.txt
Nel nostro caso, cambiamo 9EA94D56-7E39-96A8-AB45-DF31EF0971EC in 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
Salva il file e esci dall’editor di testo:
:wq
- Rinomina il tuo file di origine configBundle.tgz in configBundle1.tgz, ad esempio (se il nome del file di backup della configurazione ESXi differisce da configBundle.tgz, puoi saltare questo passaggio):
mv configBundle.tgz configBundle1.tgz
- Tar Manifest.txt, state.tgz e i file jumpstrt.gz in un nuovo archivio configBundle.tgz:
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz
- Metti l’host ESXi in modalità di manutenzione e ripristina la configurazione:
esxcli system maintenanceMode set --enable yes
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Metodo 2: Come eseguire il backup dell’host ESXi con vSphere CLI
Un’altra interfaccia a riga di comando fornita da VMware per gestire gli host ESXi è vSphere CLI (da non confondere con VMware PowerCLI). Dovresti installare vSphere CLI su una macchina con Linux o Windows per gestire gli host ESXi in remoto. Perl è necessario per installare vSphere CLI.
Il vantaggio nell’utilizzare vSphere CLI è la convenienza e la potenza di bash in Linux. Questo metodo è particolarmente conveniente per ESXi 6.x. Se stai utilizzando ESXi 8, opta per altri metodi spiegati in questo articolo.
Installazione e configurazione di vCLI
- Scarica la versione necessaria di vSphere CLI per il tuo sistema operativo dal sito web di VMware. Ubuntu Linux viene utilizzato in questo esempio.
- Vai alla directory in cui si trova il file scaricato ed estrai i file dall’archivio:
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz
- Installa i pacchetti richiesti:
apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential
La raccomandazione ufficiale di VMware è di installare questo set di pacchetti:
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
- Vai alla directory in cui si trovano i file estratti ed esegui l’installer:
./vmware-install.pl
- Leggi e accetta il contratto di licenza. Se l’installatore ti chiede di installare alcuni moduli richiesti, digita y e installa i moduli.
- Alcuni moduli devono essere installati manualmente nel nostro caso. Possono essere installati utilizzando la shell interattiva di Perl.
Entra nella shell interattiva di Perl:
perl -MCPAN -e shell
- Esegui il comando per installare il modulo Perl richiesto:
install Devel::StackTrace
Installare in modo simile altri moduli.
NOTA: Nel nostro caso, un modulo non poteva essere installato nella shell interattiva di Perl, ma possiamo installare quel modulo con il comando nella console di Ubuntu:
apt-get install libcrypt-ssleay-perl
- Dopo aver installato i moduli Perl, eseguire nuovamente l’installer CLI di VMware vSphere.
- L’installazione è stata completata con successo e puoi vedere lo schermo seguente in questo caso:
- Ora proviamo a usare vSphere CLI e inserire un comando nella console Linux per visualizzare l’elenco dei dispositivi del server ESXi (192.168.101.208 è l’indirizzo IP del server ESXi).
esxcli --server 192.168.101.208 storage core device list
- Il thumbprint SHA-1 del server non è attendibile e la connessione all’host ESXi è fallita. Ciò significa che dovresti definire il thumbprint per motivi di sicurezza. Proviamo un altro comando:
esxcli --server 192.168.101.208 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get
Il nome utente e la password verranno richiesti nella console in modalità interattiva.
Cerca di evitare comandi in cui un nome utente e una password vengono digitati come testo normale come questo:
esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get
NOTA: Questo è per motivi di sicurezza. I comandi eseguiti sono salvati in Linux fino a quando non si esegue il comando history -c per cancellare la cronologia. Se è necessario evitare l’uso della modalità interattiva e inserire manualmente un nome utente e una password, è possibile salvare la sessione ESXi nel file e utilizzare questo file durante l’esecuzione dei comandi. Salvare le sessioni è sicuro, a differenza dell’inserimento di una password come testo normale nel comando. Il salvataggio delle sessioni è spiegato di seguito.
Salvataggio di una firma per la connessione agli host ESXi
Digitare una firma ESXi ogni volta per eseguire un comando non è comodo. Fortunatamente, è possibile salvare la firma e eseguire ulteriori comandi con vSphere CLI senza definire una firma.
- Andare alla directory:
cd /usr/lib/vmware-vcli/apps/general/
-
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl aggiungi -s server -t impronta_dito
Nel nostro esempio particolare, il comando è:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl aggiungi -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA
- Ora puoi eseguire comandi nella CLI di vSphere senza inserire un’impronta digitale ogni volta:
esxcli --server 192.168.101.208 sistema modalità manutenzione get
Tuttavia, è ancora necessario inserire un nome utente e una password. Tuttavia, è possibile configurare la CLI di vSphere per eseguire comandi senza inserire una password ogni volta come mostrato nelle sezioni seguenti.
Utilizzo di un file di sessione per connettersi agli host ESXi
Utilizzare un file di sessione salvato è uno dei metodi per evitare di inserire un nome utente e una password durante l’esecuzione di un comando su un host ESXi remoto utilizzando vSphere CLI.
- Creare una directory per memorizzare i file di backup della configurazione di ESXi, ad esempio, /backup/
mkdir /backup
- Accedere a quella directory:
cd /usr/lib/vmware-vcli/apps/session
- Salvare la sessione dell’host ESXi autorizzato nel file utilizzando uno script Perl con il comando:
perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555
Dove:
––savesessionfile /backup/192-168-101-208session è il nome del file di sessione creato
––server 192.168.101.208 è il nome dell’host ESXi la cui sessione è salvata (questo host ESXi è utilizzato in più esempi)
––username root è il nome dell’utente connesso all’host ESXi
––password TestPass_555 è la password per l’utente connesso all’host ESXi
Ora è possibile eseguire comandi senza inserire una password, ma è necessario inserire la chiave ––sessionfile (opzione) e definire il percorso del file di sessione.
Ad esempio:
esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get
Utilizzo di un file di configurazione per la connessione agli host ESXi
L’idea dietro questo metodo è quella di salvare le credenziali nel file di configurazione come testo normale e fare riferimento a questo file quando si eseguono comandi ESXi in vSphere CLI.
- Creare un file di configurazione:
vim /backup/vcli-config
- Inserire le credenziali nel seguente modo:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
- Salvare il file.
- Esegui questo comando sul server remoto ESXi utilizzando vSphere CLI:
esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get
NOTA: Dato che le credenziali sono salvate come testo normale, questo metodo non è sicuro.
Utilizzando uno store delle credenziali per connettersi agli host ESXi
A credential store is the xml file located in the user directory in the vmware subdirectory ~/.vmware/credstore/vicredentials.xml. The advantage of using the credentials store to run commands on remote ESXi hosts is that the password is not saved as plain text. As a result, this method provides higher security.
- Per aggiungere le credenziali allo store delle credenziali, esegui il comando:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root
- Elencare le credenziali salvate nello store delle credenziali per assicurarsi che le credenziali necessarie siano presenti:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
- Esegui il comando sull’host remoto ESXi senza inserire una password utilizzando il magazzino delle credenziali:
# esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
Se si utilizza un utente non root, il file delle credenziali viene salvato in /home/user_name/.vmware/credstore/vicredentials.xml
Nella schermata sottostante, puoi vedere come le credenziali vengono salvate nel file del magazzino delle credenziali.
Utilizzando vSphere CLI per eseguire il backup della configurazione dell’host ESXi
Ora che hai configurato vSphere CLI sulla macchina Ubuntu Linux, puoi eseguire i comandi e eseguire il backup della configurazione ESXi:
- Vai alla directory /usr/bin/:
cd /usr/bin
- Per creare un backup della configurazione ESXi senza inserire nome utente e password, utilizza uno dei comandi seguenti.
- Per username e password salvati nel deposito credenziali, utilizza il comando:
vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz
- O dopo aver salvato la sessione nel file session, utilizza il comando:
vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
NOTA: I comandi vicfg- sono deprecati. Se vicfg non funziona nel tuo caso, utilizza i comandi equivalenti ESXCLI nell’interfaccia della riga di comando quando lavori con gli host ESXi delle versioni più recenti. Vedi i comandi per altri metodi di backup della configurazione ESXi.
Lo svantaggio dell’opzione —–sessionfile è il timeout di 30 minuti quando è inattivo dopo l’esecuzione dell’ultimo comando in vSphere CLI. Dopo di che, devi autenticarti e creare nuovamente un file di sessione.
- Se desideri creare un backup della configurazione ESXi mentre inserisci una password nella modalità interattiva, puoi eseguire il comando:
vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
- Per username e password salvati nel deposito credenziali, utilizza il comando:
Come automatizzare il backup della configurazione di ESXi
Se hai un ambiente in continuo cambiamento e la configurazione degli host ESXi cambia spesso, il backup manuale degli host ESXi potrebbe non essere pratico. In questo caso, puoi automatizzare il backup della configurazione di ESXi aggiungendo un comando di backup o uno script di backup che contiene più comandi allo scheduler. Crontab è uno scheduler in Linux.
- Modifica la configurazione del pianificatore in Linux per eseguire periodicamente e automaticamente il comando di backup della configurazione di ESXi.
crontab -e
NOTA: Se stai modificando la configurazione di crontab per la prima volta, dovresti selezionare l’editor di testo predefinito da utilizzare per modificare la configurazione di crontab. Nel nostro esempio, usiamo /usr/bin/vim.basic a questo scopo.
Il formato della configurazione di crontab è il seguente:
minuti ore giorno_del_mese mese giorno_della_settimana comando
- Eseguiamo il backup della configurazione dell’host ESXi ogni notte alle 03:25 AM aggiungendo la seguente riga alla configurazione di crontab:
25 03 * * * /usr/bin/vicfg-cfgbackup ––server 192.168.101.208 ––config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz
- Scrivi la configurazione del programma di pianificazione crontab e esci dall’editor di testo vim (utilizzato in questo esempio):
:wq
- Aspettiamo dopo le 03:25 del mattino per controllare la directory in cui devono essere salvati i file di configurazione del backup di ESXi:
ls -al
Come si vede nello screenshot qui sotto, il file di backup della configurazione dell’host ESXi è stato creato automaticamente alle 03:25.
Ora il backup della configurazione ESXi è stato creato automaticamente, il che è ottimo, ma c’è uno svantaggio. Ogni volta che crontab esegue un comando programmato per creare il backup della configurazione ESXi, il file tgz precedente viene sovrascritto dal nuovo file tgz. Questo può causare problemi se il backup con la configurazione ESXi corretta creata l’altro ieri viene sovrascritto da un file creato il giorno successivo contenente la configurazione ESXi errata. Per prevenire questo problema, è necessario eseguire il backup della configurazione ESXi su file diversi.
Creiamo uno script semplice per salvare la configurazione ESXi ogni volta come un file separato con un nome file univoco che contiene la data e l’ora della creazione del file di backup della configurazione ESXi nel nome del file. Creando uno script è possibile aggiungere comandi per eseguire il backup di più host ESXi eseguendo uno script singolo.
- Crea il file esxi_backup.sh nella directory /backup/:
vim /backup/esxi_backup.sh
- Aggiungi le righe seguenti al file:
#!/bin/bash
ESXI101_208_BACKUP_NAME=”192-168-101-208-$(date +’%Y%m%d_%H%M%S’)esxi-cfg.tgz”
vicfg-cfgbackup ––server 192.168.101.208 ––config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME
- Scrivi le modifiche al file e esci dall’editor di testo vim:
:wq
- Rendi eseguibile il file:
chmod +x /backup/esxi_backup.sh
- Modifica la configurazione dello scheduler:
crontab -e
- Aggiungi la riga in questo modo:
50 06 * * * /backup/esxi_backup.sh
Questa riga di configurazione ci permette di impostare crontab per eseguire lo script di backup della configurazione di ESXi alle 06:50 del mattino.
Disabilita il compito pianificato precedente che hai aggiunto aggiungendo il carattere # all’inizio della riga.
Salva la configurazione.
- Aspetta il tempo impostato e poi controlla se è stato creato l’archivio di backup della configurazione ESXi.
Questo è uno script semplice che dimostra l’idea dell’automazione. Puoi creare script complessi per eseguire il backup di più host ESXi.
NOTA: Dopo ogni riavvio di ESXi o 30 minuti di inattività, l’autenticazione per la sessione ESXi scade. Tieni presente questa caratteristica quando crei uno script per il backup automatizzato di ESXi.
Come recuperare la configurazione ESXi in vSphere CLI
I requisiti per ripristinare la configurazione ESXi utilizzando vSphere CLI sono simili ai requisiti per altri metodi. Per ripristinare la configurazione ESXi, assicurati che l’accesso remoto tramite SSH sia abilitato e che sia noto l’indirizzo IP del server ESXi (è consigliabile utilizzare lo stesso indirizzo IP dell’host ESXi di backup).
Per ripristinare la configurazione ESXi esegui il comando come segue:
vicfg-cfgbackup --server=indirizzo_IP_host_ESXi --username=root -l file_di_backup
Nel nostro esempio particolare, il comando è:
vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz
Se l’UUID dell’host ESXi di destinazione su cui si desidera ripristinare la configurazione ha un UUID diverso dall’UUID del server ESXi di backup (il cui UUID è definito nel file Manifest.txt all’interno dell’archivio di backup tgz), è possibile utilizzare il tasto -f (force) per sovrascrivere l’UUID.
È possibile verificare l’UUID dell’host ESXi in esecuzione con il comando, come ricordi:
esxcfg-info -u
NOTA: A partire da ESXi 7.0 U2, l’override forzato dell’UUID non funziona se viene utilizzato un TPM (Trusted Platform Module) su un host ESXi.
Metodo 3: Utilizzo di PowerCLI per eseguire il backup degli host ESXi
Gli utenti che preferiscono Windows PowerShell possono utilizzare PowerCLI per la gestione di vSphere e per eseguire il backup delle configurazioni di ESXi. PowerCLI è un set di cmdlet di PowerShell, e alcuni comandi di base di PowerCLI sono spiegati in questo post sul blog.
Per utilizzare PowerCLI per eseguire il backup dell’host ESXi, è necessario prima installare PowerCLI sul proprio sistema operativo:
- Esegui PowerCLI come amministratore in Windows.
- Connetti al tuo server ESXi:
Connect-VIServer indirizzo_IP_ESXi -utente nome_utente -password tua_password
Nel nostro caso, utilizziamo i comandi:
Connect-VIServer 192.168.101.208 -utente root -password TestPass_555
Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath "C:\backup ESXi host"
- Se i tuoi host ESXi sono gestiti da vCenter Server, puoi prima connetterti a vCenter e quindi eseguire il backup della configurazione ESXi sui tuoi host in PowerCLI senza dover autenticarti ogni volta prima di eseguire il backup della configurazione di ciascun host:
Connect-VIServer 10.10.10.16
Inserisci il tuo login amministrativo e la password per accedere a vCenter Server. Comparirà una finestra popup a questo scopo.
- Se i tuoi host ESXi sono gestiti da vCenter Server, puoi prima connetterti a vCenter e quindi eseguire il backup della configurazione ESXi sui tuoi host in PowerCLI senza dover autenticarti ogni volta prima di eseguire il backup della configurazione di ciascun host:
- Esegui il backup della configurazione ESXi di ciascun host:
Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:\backup ESXi host"
Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:\backup ESXi host"
Come ripristinare la configurazione ESXi in PowerCLI
- Esegui VMware PowerCLI come amministratore.
- Connetti all’host ESXi su cui desideri ripristinare la configurazione (nel nostro esempio, ripristiniamo la configurazione sull’host ESXi con l’indirizzo IP 192.168.101.208).
- Entra in modalità di manutenzione dell’host ESXi:
Set-VMHost -VMHost 192.168.101.208 -State Maintenance
- Assicurati che le VM residenti su quell’host ESXi siano spente o migrate su un altro host ESXi prima di ripristinare la configurazione ESXi. Tieni presente che dopo l’esecuzione di un comando per il ripristino della configurazione, l’host ESXi si riavvierà automaticamente.
- Ripristina la configurazione con il comando
Set-VMHostFirmware restore
:Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:\backup ESXi host\configBundle-192.168.101.20
8.tgz" -HostUser root -HostPassword TestPass_555
La versione, il numero di build e l’UUID dell’host ESXi su cui viene ripristinata la configurazione devono corrispondere alla versione, al numero di build e all’UUID dell’host ESXi di cui stai utilizzando il backup per ripristinare la configurazione. Utilizza il tasto -force nel comando per saltare il controllo dell’UUID.
Metodo 4: Backup e ripristino manuale della configurazione di ESXi
Dovresti essere pronto anche per una situazione in cui non riesci ad accedere al tuo host ESXi, o quando un host ESXi non può avviarsi e non puoi utilizzare l’interfaccia della riga di comando per eseguire il comando di backup o ripristino della configurazione di ESXi. Ciò potrebbe verificarsi a causa di un guasto hardware o di problemi software. In questo caso, è meglio sapere come eseguire il backup e il ripristino della configurazione di ESXi manualmente.
Come ricordi dalla configurazione crontab predefinita su un host ESXi, lo script /sbin/auto-backup.sh viene eseguito ogni ora e ogni volta che un host ESXi viene riavviato o spento. Questo script è destinato a eseguire il backup (salvare) della configurazione di ESXi memorizzata nella memoria nel file /bootbank/state.tgz.
NOTA: Il file /bootbank/state.tgz non deve essere crittografato per utilizzare questo metodo.
La configurazione di ESXi viene memorizzata nella RAM del computer quando un server ESXi è in esecuzione (il disco RAM appropriato è montato sulla directory /etc/). Durante l’avvio di ESXi, i file di sistema vengono estratti dall’archivio /bootbank/state.tgz nella directory /etc/. È possibile copiare manualmente il file /bootbank/state.tgz se il proprio host ESXi è in esecuzione utilizzando un client SCP come WinSCP (è necessario abilitare l’accesso SSH remoto). In alternativa, è possibile avviare da Live DVD e copiare manualmente il file state.tgz se il proprio host ESXi non è avviabile (ad esempio, a causa di un guasto hardware).
Flusso di lavoro di ripristino manuale
- Preparare l’archivio di backup precedentemente creato con ESXi shell, vSphere CLI o PowerCLI. Il nome del file è configBundle-192-168-101-208.tgz nel nostro caso. È possibile copiare il file su una chiavetta USB, ad esempio, e inserire quella chiavetta in una porta USB del server ESXi sul quale è necessario ripristinare la configurazione di sistema.
- Avviare da CD/DVD live sul computer dove è installato ESXi. È possibile utilizzare il disco di installazione di Ubuntu come CD/DVD live.
- Aprire la console (terminale) in Linux.
- Elenca le partizioni:
ls -al /dev/sd*
fdisk -l | grep /dev/sda
In questo caso, abbiamo bisogno della /dev/sda5/ partizione che è contrassegnata come dati di base di Microsoft.
Le partizioni disco ESXi sono state menzionate nel post sul blog riguardo Avvio di ESXi da una chiavetta USB e Recupero della password ESXi.
In questo caso siamo interessati alla /dev/sda5 partizione.
- Crea la directory a cui sarà montata la partizione /dev/sda5:
mkdir /mnt/sda5
- Montare la partizione disco a quella directory:
mount /dev/sda5 /mnt/sda5
- Nella directory /mnt/sda5, puoi trovare il file state.tgz, che contiene la configurazione di ESXi. Questa directory (in cui è memorizzato state.tgz) è denominata /bootblank/ quando un host ESXi viene avviato.
- Copia l’archivio di backup della configurazione di ESXi dalla chiavetta USB alla directory /tmp/ di Ubuntu caricata dal Live DVD. Nel nostro esempio, copiamo:
cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz
- Estrai i file dall’archivio di backup:
tar zxvf /tmp/configBundle.tgz
- Puoi vedere che il file state.tgz è estratto dall’archivio:
ls -al /tmp/
- Rinomina il file originale state.tgz che si trova sulla partizione /dev/sda5 montata su /mnt/sda5/
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
- Copia il file state.tgz che hai estratto dall’archivio di backup della configurazione ESXi (configBundle.tgz) nella directory /tmp/:
cp /tmp/state.tgz /mnt/sda5/
- Smonta le partizioni montate:
umount /dev/sda5/
- Riavvia il server. Espelli il DVD Live di Ubuntu e avvia dal disco su cui è installato ESXi.
init 6
Ora la tua configurazione ESXi dovrebbe essere ripristinata.
Conclusione
Utilizzare l’interfaccia della riga di comando ESXi è vantaggioso perché non è necessario installare software aggiuntivo. I vantaggi della CLI di vSphere sono la possibilità di eseguire comandi in remoto utilizzando macchine Linux e la capacità di automatizzare il backup della configurazione ESXi. D’altra parte, PowerCLI potrebbe essere apprezzato dagli utenti Windows.
Se un host ESXi non è sano e non è possibile avviare l’host, è possibile eseguire il backup e il ripristino della configurazione manualmente. Nota che le informazioni sul bootblank e sulle VM non sono memorizzate nel file di backup della configurazione ESXi. Dopo il ripristino della configurazione ESXi, potrebbe essere necessario registrare le macchine virtuali nel tuo inventario.
Si consiglia di eseguire il backup delle macchine virtuali vSphere oltre al backup degli host ESXi. NAKIVO Backup & Replication è una soluzione di backup universale in grado di eseguire il backup delle tue VM VMware, delle VM Hyper-V, delle istanze Amazon EC2 e dei server fisici Linux e Windows.
Source:
https://www.nakivo.com/blog/back-up-and-restore-vmware-esxi-host-configuration-guide/