Articles

Impara come e quando usare le istantanee vSphere

Lo stato di una macchina virtuale in qualsiasi momento specifico può essere conservato prendendo ciò che è noto come uno snapshot.

La funzione snapshot VMware è particolarmente utile in quegli scenari in cui si desidera recuperare rapidamente da un guasto o semplicemente tornare a uno stato desiderato. Il ripristino di una macchina virtuale a uno stato funzionale dopo un aggiornamento o una patch sbagliata è un caso d’uso comune. Allo stesso modo, è possibile utilizzare le istantanee per riportare una VM a uno stato di base una volta che un utente ha finito di usarla, magari come parte di un regime di manutenzione di un laboratorio di formazione.

La funzione snapshot è disponibile sia su host ESXi standalone che su vCenter Server.

Lavorare con le istantanee e lo Snapshot Manager

È possibile lavorare con le istantanee da qualsiasi client vSphere o facendo chiamate API da PowerCLI o simili. Diverse attività come il ripristino da snapshot, l’eliminazione di snapshot, ecc. seguono lo stesso schema di clic e selezione. Il denominatore comune qui è Snapshot Manager usando il quale, sarete in grado di:

  • Prendere istantanee.
  • Ritornare all’ultima istantanea o qualsiasi altra istantanea.
  • Eliminare un’istantanea.
  • Eliminare tutte le istantanee.
  • Modificare un’istantanea (Nome e Descrizione).
  • Gestire le istantanee.
  • Consolidare i dischi.

Da vSphere client, si tratta sempre di cliccare con il tasto destro del mouse sul nome della VM, selezionare Snapshot(s) dal menu di contesto o azioni della VM seguito dall’operazione desiderata. Questo è mostrato nella Figura 1 come Opzione A. In alternativa, evidenziare il nome della VM, cliccare sulla scheda Snapshots e selezionare un’operazione dal menu a tendina All Actions o cliccando sull’icona della rispettiva operazione, cioè l’Opzione B.

Figura 1 – Due modi per eseguire un’azione relativa alle snapshot su una VM

Nota che ogni VM può avere un massimo di 32 snapshot. Per ottenere le migliori prestazioni, si consiglia di attenersi a 2-3 istantanee per VM. Quando questo limite viene superato, viene restituito l’errore mostrato in Fig.2.

Figura 2 – Errore che indica che è stato superato il limite massimo di snapshots per vm

Un altro limite da tenere presente è quello della retention. La raccomandazione è di evitare di usare un’istantanea per più di 72 ore poiché i file che costituiscono l’istantanea continuano a crescere e possono avere un impatto sulle prestazioni del sistema, oltre al fatto che si può esaurire lo spazio su datastore di dimensioni relativamente piccole.

Come prendere le istantanee

Quando si prende un’istantanea di una VM, vengono conservate le seguenti informazioni.

  • Impostazioni della macchina virtuale. La directory della macchina virtuale, che include i dischi aggiunti o modificati dopo aver scattato l’istantanea.
  • Stato di alimentazione. La macchina virtuale può essere accesa, spenta o sospesa.
  • Stato dei dischi. Stato di tutti i dischi virtuali della macchina virtuale.
  • (Opzionale) Stato della memoria. Il contenuto della memoria della macchina virtuale.

Due impostazioni opzionali determinano lo stato in cui viene ripristinata una macchina virtuale quando si torna indietro dallo snapshot. Si noti che nessuna di queste opzioni è disponibile, o richiesta, quando uno snapshot viene preso mentre la VM è spenta. Le due opzioni sono:

Snapshot della memoria della macchina virtuale: Abilitata di default, questa opzione esegue il flush del contenuto della memoria di una VM su disco come parte dello snapshot. Questo permette ad una VM di tornare all’esatto stato in cui era in esecuzione quando lo snapshot è stato preso. Se questa opzione è deselezionata, e nemmeno la quiescenza è selezionata, l’istantanea creerà file che sono coerenti con i crash, il che significa che sarà necessario accendere la VM manualmente dopo averla ripristinata dall’istantanea. Uno snapshot in memoria richiederà significativamente più tempo per essere completato. Inoltre, una VM viene “congelata” per garantire l’integrità dello stato.

Quiesce il file system del guest: Questa opzione richiede che VMware Tools sia installato e funzioni correttamente. Il quiescing di una VM è il metodo preferito per assicurare uno stato adatto ai backup. Questo include operazioni come il lavaggio dei buffer sporchi dalla cache in-memoria del sistema operativo al disco o altre attività di livello superiore specifiche dell’applicazione. Il quiescing indica la messa in pausa o l’alterazione dello stato dei processi in esecuzione su un computer, in particolare quelli che potrebbero modificare le informazioni memorizzate su disco durante un backup, per garantire un backup coerente e utilizzabile. Il quiescing non è necessario per le istantanee in memoria; è usato principalmente per i backup.

La figura 3 cattura una serie di schermate che mostrano come le istantanee, di VM residenti su diversi ambienti, vengono prese usando un particolare client vSphere o Host.

  • Esempio 1 – Prendere un’istantanea di una VM gestita da vCenter Server 6.5 tramite il client vSphere Web.
  • Esempio 2 – Prendere un’istantanea di una VM ospitata su un host ESXi 6.5 standalone tramite il client ESXi host.
  • Esempio 3 – Prendere un’istantanea di una VM ospitata su un host ESXi 6.0 standalone tramite il client vSphere C#.

Figura 3 – Vari esempi su come prendere le istantanee

Il quarto e ultimo esempio illustra come PowerCLI viene usato per fare lo snapshot di una VM gestita da vCSA 6.5. Ho incluso due possibili modi che puoi usare per fare lo snapshot di una VM. Nel primo esempio, ho semplicemente recuperato una VM usando Get-VM che poi vado a convogliare nel cmdlet New-Snapshot. Nel secondo esempio, ho usato il cmdlet New-Snapshot da solo, dove si specifica la VM che si vuole catturare tramite il parametro -VM. In entrambi gli esempi, i parametri -Name assegnano un nome allo snapshot preso.

PowerShell

1
get-vm -nome “windows 7” | New-Snapshot -Name “Pre Windows Update”

PowerShell

1
Nuovo-Snapshot -VM “Windows 7” -Name “Pre Windows Update”

Figura 4 – Due modi per creare snapshot con PowerCLI

Come escludere i dischi da uno snapshot

Ci possono essere casi in cui non vuoi che i dischi della VM siano interessati dagli snapshot. Per ottenere questo, cambia la Disk Mode di una VM su Independent – Persistent o Independent – Nonpersistent dalle impostazioni della VM. Le due opzioni differiscono leggermente come da spiegazione di VMware:

Independent – Persistent: I dischi in modalità persistente si comportano come i dischi convenzionali sul computer fisico. Tutti i dati scritti su un disco in modalità persistente sono scritti in modo permanente sul disco.

Indipendente – Nonpersistente: Le modifiche ai dischi in modalità non persistente vengono scartate quando si spegne o si resetta la macchina virtuale. Con la modalità non persistente, è possibile riavviare la macchina virtuale con un disco virtuale nello stesso stato ogni volta. Le modifiche al disco vengono scritte e lette da un file redo log che viene cancellato allo spegnimento o al reset.

Figura 5 – Modifica della modalità disco di un VMDK per escluderlo dagli effetti delle istantanee

Come ritornare a un’istantanea

Per ritornare a un’istantanea, è possibile selezionare l’opzione Revert to Latest Snapshot. Se una VM ha più istantanee, basta evidenziare l’istantanea a cui si vuole ritornare dalla gerarchia delle istantanee visualizzate in Snapshot Manager e premere l’icona Revert To come mostrato in Fig. 6.

Figura 6 – Selezione dell’istantanea a cui ritornare in Snapshot Manager

Lo stato a cui una VM ritorna, dipende dalle opzioni selezionate al momento dell’istantanea. Se l’opzione memoria era selezionata, la VM rimane accesa mentre ritorna allo stato precedente. Se l’opzione di memoria non era inclusa al momento dell’istantanea, sarà necessario accendere la VM manualmente dopo il ritorno dall’istantanea, indipendentemente dallo stato di alimentazione della VM al momento dell’istantanea.

Ogni volta che si torna indietro dall’istantanea, si verrà avvertiti che lo stato corrente della VM sarà perso a meno che non si faccia un’istantanea come mostrato in Fig. 7.

Figura 7 – Avviso di perdita dello stato attuale quando si ritorna a un’istantanea

Se l’opzione memoria è stata selezionata quando è stata scattata l’istantanea, viene presentata l’opzione di sospendere la VM durante il ripristino. Se selezioni l’opzione, devi poi “sospendere” la VM manualmente riaccendendola.

Figura 8 – Sospensione della VM durante il ripristino dall’istantanea

La prima istantanea presa è indicata come l’istantanea madre di base. Questa è la versione più recente salvata dello stato attuale della macchina virtuale. L’istantanea madre è sempre l’istantanea che appare immediatamente sopra l’icona Sei qui in Snapshot Manager. Se ripristini o ripristini un’istantanea, quell’istantanea diventa il genitore dello stato attuale You are here. Un’istantanea di una VM presa dopo l’istantanea padre è chiamata istantanea figlia.

Figura 9 – Gerarchia delle istantanee che illustra la relazione tra istantanee padre e figlio e lo stato corrente rappresentato da Sei qui

Come cancellare le istantanee

Puoi cancellare una singola istantanea o qualsiasi istantanea esistente in una volta sola. L’eliminazione delle istantanee è un processo costoso in termini di I/O e può influire sulle prestazioni. Quando uno snapshot viene cancellato, lo stato attuale di una VM rimane invariato. Tuttavia, tutti i cambiamenti accumulati fino ad oggi vengono copiati dai dischi delta e scritti sul disco base in un processo chiamato consolidamento. In seguito, il processo di consolidamento si occupa di rimuovere tutti i file ridondanti associati allo snapshot appena cancellato.

Se il processo di consolidamento non riesce, è possibile avviare il processo manualmente dal menu Snapshots selezionando l’opzione Consolidate. È importante che il consolidamento venga eseguito con successo, poiché i dischi delta ridondanti (vedere la prossima sezione) possono influire negativamente sulle prestazioni.

Figura 10 – Esecuzione del consolidamento dei dischi manualmente

Per ulteriori dettagli, consultare l’articolo How to consolidate snapshots in vSphere 5.x/6.x KB.

Snapshots dal punto di vista dei file

Un’istantanea consiste in una serie di file che possono essere visualizzati in Datastore Browser dopo aver navigato nella cartella di una VM per la quale sono state prese le istantanee.

Un’istantanea consiste nei seguenti file:

File delta disk: Un file .vmdk su cui il sistema operativo guest può scrivere. Il disco delta rappresenta la differenza tra lo stato attuale del disco virtuale e lo stato che esisteva nel momento in cui è stata scattata l’istantanea precedente. Quando si prende un’istantanea, lo stato del disco virtuale viene preservato, il che impedisce al sistema operativo guest di scriverci, e viene creato un disco delta o figlio. Un disco delta ha due file, compreso un file descrittore che è piccolo e contiene informazioni sul disco virtuale e un file corrispondente che contiene i dati grezzi. I file che compongono il disco delta sono indicati come dischi figli o redo logs.

Flat file: Un file -flat.vmdk che è uno dei due file che compongono il disco base. Il disco piatto contiene i dati grezzi per il disco di base. Questo file non appare come un file separato nel Datastore Browser ma è elencato separatamente quando si elencano i contenuti della directory mentre si consola ESXi.

Figura 11 – Alcuni file sono visibili solo quando si consola ESXi

File database: Un file .vmsd che contiene le informazioni dello snapshot della VM ed è la fonte primaria di informazioni per lo Snapshot Manager. Questo file, che può essere visualizzato in qualsiasi editor di testo, contiene voci di riga che definiscono le relazioni tra le istantanee e i dischi figli per ogni istantanea.

File di memoria: Un file .vmsn, include lo stato attivo di una VM e cattura lo stato della memoria della VM per permetterti di tornare ad uno stato di macchina virtuale accesa. Se l’opzione snapshot memory è deselezionata, puoi solo tornare a uno stato di macchina virtuale spenta.

Puoi fare riferimento al post intitolato L’anatomia di una macchina virtuale VMware per ulteriori dettagli.

Figura 12 – Mappatura dei file snapshot visualizzati nel Datastore Browser alle voci presenti nel file di database

Come detto, uno snapshot conserva lo stato del disco e/o della VM in un momento specifico creando una serie di dischi delta per ogni disco virtuale o RDM virtuale collegato. Opzionalmente, la memoria e lo stato di alimentazione sono conservati creando un file di memoria.

Ogni snapshot crea un file delta aggiuntivo. Quando prendete uno snapshot, il meccanismo dello snapshot impedisce al sistema operativo guest di scrivere sul file .vmdk di base e invece indirizza tutte le scritture sul file delta disk. Il disco delta rappresenta la differenza tra lo stato attuale del disco virtuale e lo stato che esisteva nel momento in cui hai preso lo snapshot precedente. Se esiste più di uno snapshot, i dischi delta possono rappresentare la differenza tra ogni snapshot. I file del disco delta possono espandersi rapidamente e diventare grandi quanto l’intero disco virtuale se il sistema operativo guest scrive su ogni blocco del disco virtuale.

Altri dettagli possono essere trovati nei seguenti link:

  • Comprensione delle VM snapshot in ESXi / ESX
  • Determinare se ci sono file delta o snapshot rimasti che VMware vSphere o Infrastructure Client non possono rilevare

Limitazioni delle snapshot

Ci sono alcune limitazioni di cui devi essere consapevole. Alcune, come quelle relative al modo in cui le istantanee interagiscono con vMotion, devono essere affrontate adeguatamente se si utilizzano ancora vecchie versioni di vSphere.

  • Le istantanee di VM con dischi grezzi, dischi in modalità fisica RDM o sistemi operativi guest che utilizzano un inizializzatore iSCSI nel guest non sono supportate.
  • Le VM con dischi indipendenti devono essere spente prima di scattare un’istantanea.
  • Le istantanee di VM accese o sospese con dischi indipendenti non sono supportate.
  • Le istantanee non sono supportate con dispositivi PCI vSphere Direct Path I/O.
  • Le istantanee di VM configurate per la condivisione del bus non sono un’opzione supportata da VMware.
  • Anche se le istantanee forniscono un’immagine point-in-time del disco che le soluzioni di backup possono utilizzare, queste non sono pensate per essere un metodo robusto di backup e ripristino. Se i file che contengono una macchina virtuale vengono persi, vengono persi anche i suoi file snapshot. Inoltre, un gran numero di snapshot è difficile da gestire, consuma grandi quantità di spazio su disco e non è protetto in caso di guasto hardware.
  • Le snapshot possono influire negativamente sulle prestazioni di una macchina virtuale. La degradazione delle prestazioni si basa su quanto tempo l’istantanea o l’albero delle istantanee è in atto, la profondità dell’albero e quanto la macchina virtuale e il suo sistema operativo guest sono cambiati dal momento in cui hai preso l’istantanea. Inoltre, si potrebbe notare un ritardo nella quantità di tempo necessario alla macchina virtuale per accendersi. Non eseguire macchine virtuali di produzione da snapshot in modo permanente.
  • Se una macchina virtuale ha dischi rigidi virtuali più grandi di 2TB, le operazioni di snapshot possono richiedere molto più tempo per finire.

Se hai ambienti pre-vSphere 6.0, assicurati di leggere l’articolo della KB Migrazione di macchine virtuali con snapshot. Un problema comune in cui mi imbattevo spesso era quello di mettere un host in modalità di manutenzione e aspettare che le VM migrassero automaticamente, solo per trovare il processo bloccato perché una o più VM avevano delle istantanee.

Troubleshooting

Questi sono alcuni articoli della KB che coprono alcuni problemi più comuni che probabilmente incontrerete lavorando con le istantanee.

  • Risoluzione dei problemi durante la creazione o il commit delle istantanee in VMware ESXi/ESX
  • Impossibile eliminare le istantanee della macchina virtuale
  • Non è possibile creare nuove istantanee su una macchina virtuale dopo la rimozione di un disco dalla macchina virtuale
  • L’attività di rimozione delle istantanee si ferma al 99% in ESXi/ESX