Procedure consigliate per VMware Snapshot
Le VM VMware vSphere offrono potenti funzionalità che garantiscono ambienti agili, versatili ed efficienti per il software. Una delle funzioni più utili di vSphere è la possibilità di acquisire snapshot e ripristinare lo stato precedente di una VM quando necessario utilizzando gli snapshot. Tuttavia, questa tecnologia presenta alcuni limiti.
In questo post scoprirai le snapshot VMware e i loro casi d’uso. Vi guideremo anche attraverso le procedure consigliate per gli snapshot VMware e vi spiegheremo come creare uno snapshot in VMware vSphere Client e tramite PowerCLI.
Che cos’è uno snapshot VMware?
Uno snapshot VMware è una versione puntuale di una VM, registrata negli appositi file della VM. Uno snapshot può essere utilizzato per ripristinare lo stato di una VM in un momento precedente, insieme ai dati e alle altre impostazioni. Lo snapshot del disco VMware è un log delle modifiche per un disco virtuale registrato nel file di snapshot appropriato.
Uno snapshot VM include:
- Stato del disco VM, il contenuto del disco della macchina.
- Stato della memoria VM e stato di alimentazione della VM, l’impronta di memoria al momento del snapshot, che consente di acquisire lo stato di alimentazione della VM.
- Impostazioni della VM, inclusi dispositivi, schede di rete virtuali, ecc. Ad esempio, è possibile acquisire uno snapshot di una VM senza una scheda di rete virtuale secondaria (Network Interface Controller, NIC). Quindi, se si aggiunge una scheda di rete secondaria e si esegue il rollback allo snapshot, la scheda NIC non sarà più presente poiché l’istantanea include la configurazione e non solo i dati e lo stato.
Backup della VM vs snapshot
La differenza principale tra backup e snapshot è che i backup sono copie della VM indipendenti dai file della VM di origine, mentre le snapshot dipendono dalla VM originale. Ecco perché, anche se uno snapshot è una versione puntuale di una VM, inclusi i file, lo stato e le configurazioni della VM, non può essere utilizzato come backup di una VM vSphere. Se si utilizzano le snapshot come backup, potrebbe non essere possibile ripristinare i dati e le VM dopo un guasto.
- Le snapshot dipendono dai file della VM di origine utilizzati per crearli. Gli snapshot possono essere definiti come dischi di differenziazione, poiché sono in realtà un insieme di informazioni delta relative al disco “base”. A volte vengono chiamati “catene” di snapshot a causa di questa interrelazione tra il disco figlio/delta e i dischi base da cui dipendono. Se i dischi di base da cui dipendono le snapshot vengono eliminati, le snapshot non contengono i dati necessari per ricreare i dati eliminati.
- I backup sono copie indipendenti dei dati che consentono di ricreare i file delle VM, i dischi e le registrazioni complete delle VM senza dipendere dai dati di produzione o dai dischi virtuali contenuti nella VM.
Casi d’uso degli snapshot VMware
Spesso gli snapshot vengono utilizzati per operazioni rapide di tipo “rinse and repeat” (risciacqua e ripeti), specialmente in un ambiente di sviluppo. È possibile creare uno snapshot prima di testare un determinato processo software su una VM, come test di applicazioni, upgrade, aggiornamenti o patch. La VM può quindi essere rapidamente riportata a uno stato precedente, riportandola alle condizioni in cui si trovava prima di eseguire l’aggiornamento software, l’upgrade e così via.
VMware non supporta l’esecuzione di snapshot in produzione o l’implementazione a lungo termine di snapshot. Non sono pensati per essere lasciati in posizione per un periodo di tempo prolungato, poiché possono causare un calo delle prestazioni o problemi di spazio su disco se non controllati.
Sebbene gli snapshot non siano uguali ai backup, possono essere utilizzati temporaneamente per creare un backup. Ad esempio, La soluzione di NAKIVO utilizza questa tecnica per il backup delle VM VMware. La soluzione acquisisce snapshot delle macchine virtuali per creare un backup coerente della VM anche se la VM è in esecuzione (quando si crea un backup della VM a livello di host). Dopo che il backup della VM è stato creato con successo, lo snapshot viene eliminato.
Estensione del file snapshot VMware
Nell’implementazione di VMware, gli snapshot delle VM sono costituiti dal seguente insieme di file che compongono l’infrastruttura dei file snapshot:
- .vmdk – il disco della VM di base, che contiene i dati grezzi.
- -00000x.vmdk – il disco delta, che contiene la differenza tra lo stato attuale del disco virtuale e lo stato del disco virtuale al momento dell’acquisizione dello snapshot precedente. Le modifiche al disco virtuale sono rappresentate come un log di redo. I dati nel disco VMDK figlio utilizzato per uno snapshot vengono salvati nel formato SPARSE utilizzando il meccanismo Copy-On-Write.
- .vmsd – il file di database per lo snapshot. Contiene le informazioni dello snapshot utilizzate dallo snapshot manager. Il database contiene le relazioni tra gli snapshot e i dischi secondari per ogni snapshot.
- .vmsn – il file che include lo stato attivo della VM, compresa la memoria. Ciò consente di ripristinare uno in esecuzione della VM al momento del ripristino. Se si crea uno snapshot senza includere la memoria, il ripristino allo snapshot avverrà su una VM che è spenta.
Per impostazione predefinita, i file di snapshot VMware si trovano nella directory della VM. Tuttavia, è possibile configurare manualmente una directory personalizzata in cui archiviare gli snapshot di una VM modificando il file di configurazione VMX della VM. Questa opzione può essere utile quando le prestazioni del disco per la VM non sono sufficienti.
Come funziona la tecnologia snapshot della VM?
Ora che sappiamo quali file vengono creati quando si esegue uno snapshot in ambienti VMware, esaminiamo il principio di funzionamento alla base della creazione di uno snapshot vSphere.
- Quando richiediamo di creare, eliminare o ripristinare snapshot utilizzando un client come VMware vSphere Client o PowerCLI, la richiesta viene inviata al server tramite l’API VMware.
- La richiesta di creazione, eliminazione o ripristino di uno snapshot viene inviata al server che esegue la VM di destinazione. Tuttavia, ciò vale solo per vCenter Server. Verrà ignorata se la richiesta di uno snapshot viene inviata direttamente all’host ESXi.
- Se l’opzione Snapshot della memoria della VM è abilitata, l’host ESXi scrive la memoria della VM sul disco. Durante questo processo, la VM verrà arrestata.
- L’host ESXi modifica il file del database degli snapshot della VM (.vmsd) in modo che rifletta le modifiche apportate allo snapshot manager della VM.
- L’host ESXi chiama le funzioni API Virtual DISK per apportare modifiche ai file del disco figlio (-delta.vmdk e .vmdk) nonché alla catena del disco.
Creazione di snapshot
Quando viene creato uno snapshot, lo stato del disco virtuale al momento dell’acquisizione dello snapshot viene mantenuto, mentre tutte le operazioni di scrittura sul file VMDK vengono interrotte. Per acquisire le modifiche, il sistema crea un file VMDK aggiuntivo (disco delta) di ogni disco VMDK contenuto nell’archivio dati e scrive le modifiche su tale file. Se si acquisisce più di uno snapshot, il sistema crea dischi delta per ogni disco VMDK di ogni snapshot, che rappresentano le differenze tra loro.
Una lunga catena di snapshot e i corrispondenti file disco delta riducono le prestazioni di storage della VM. Quando una VM deve leggere i dati, il file VMDK del disco virtuale padre e i relativi file VMDK delta (file snapshot VMware) devono essere letti insieme in ordine sequenziale. Ciò è necessario per ricostruire la cronologia delle modifiche dei dati (input del disco virtuale) registrata nei file di snapshot e produrre i dati richiesti per una VM. I file di snapshot crescono nel tempo. Gli snapshot crescono più rapidamente se su una VM vengono eseguite operazioni intensive sul disco (registrazione/eliminazione di dati).
È possibile creare più snapshot, ripristinare qualsiasi snapshot e creare nuovi snapshot dopo aver apportato modifiche. Di conseguenza, è possibile creare un albero di snapshot. Nell’immagine sottostante, è possibile vedere un albero di snapshot quando abbiamo creato Snapshot 3, ripristinato a Snapshot 2, e quindi creato Snapshot 3a.
Eliminazione dei snapshot
Quando si elimina un snapshot, il sistema unisce le modifiche tra i snapshot e gli stati precedenti del disco. Tutti i dati del disco delta, che include le informazioni relative allo snapshot eliminato, vengono scritti sul disco VMDK originale. Il tempo necessario per l’eliminazione di uno snapshot dipende dalla quantità di dati che sono stati scritti sui dischi virtuali dall’ultimo snapshot. Vediamo come vengono eliminati gli snapshot in diverse situazioni.
Abbiamo un disco di base (VMDK) e due snapshot illustrati nei diagrammi corrispondenti per i nostri esempi:
- La dimensione del primo file di snapshot VMware è di 3,3 GB, mentre quella del secondo snapshot è di 2,2 GB.
- Gli snapshot utilizzano i file VMDK delta corrispondenti, ma per maggiore comodità, i nomi degli snapshot sono Snapshot_1 e Snapshot_2 nei diagrammi.
- Il punto Ti trovi qui spiega lo stato attuale della nostra VM (può essere dopo o prima di un snapshot).
Eliminazione dell’ultimo snapshot
Quando eliminiamo il secondo snapshot VMware, che è l’ultimo snapshot nella nostra catena prima dello stato attuale della nostra VM, il Snapshot_2 viene consolidato con il disco delta parent Snapshot_2 . La dimensione della prima snapshot aumenta della dimensione della seconda snapshot eliminata (3,3 GB + 2,2 GB nel nostro esempio).
Eliminazione della prima istantanea
Cosa succede quando si elimina la prima istantanea in una catena di istantanee e lo stato corrente della VM è quello successivo all’ultima istantanea? Snapshot_1 i dati vengono salvati sul disco di base e Snapshot_2 viene conservato. La dimensione del disco di base aumenta della dimensione del primo file di snapshot VMware che stiamo eliminando (20 GB + 3,3 GB in questo esempio). Non ci sono modifiche nel file di snapshot VMware (relativo a Snapshot_2).
Eliminazione di tutti gli snapshot
Quando si eliminano tutti gli snapshot, i file di snapshot VMware vengono consolidati e i dati vengono salvati sul disco di base (viene utilizzato il nuovo algoritmo). Snapshot_1 i dati vengono prima salvati sul disco di base. Quindi Snapshot_2 i dati vengono salvati sul disco di base. Lo stesso processo viene eseguito per tutti gli snapshot successivi, se ne sono presenti altri. La dimensione del disco di base aumenta dopo la scrittura delle modifiche ai dati registrate nei file di snapshot VMware.
Quando si utilizzano VMware vSphere 5.0 e algoritmi precedenti, i file di snapshot VMware vengono consolidati scrivendo prima i dati sul disco di snapshot padre (Snapshot_2 a Snapshot_1 nel nostro esempio), quindi tutti i dati dello snapshot vengono salvati sul disco di base.
Eliminazione di uno snapshot dopo lo stato corrente
Nei tre esempi precedenti, lo stato della VM (contrassegnato Ti trovi qui nei diagrammi) rappresenta lo stato dopo tutti gli snapshot della catena. In questo esempio, lo stato della VM è successivo alla prima snapshot e precedente alla seconda snapshot (che in questo caso è l’ultima snapshot).
Quando eliminiamo l’ultima snapshot, questa viene eliminata senza alcun impatto sulle snapshot precedenti nella catena. In questo esempio, non vengono apportate modifiche a Snapshot_1 e al disco di base. Se avessimo più snapshot dopo il secondo (terzo, quarto, quinto, ecc.), anche i loro dati (i dati dei file di snapshot successivi) verrebbero eliminati insieme ai dati del secondo file di snapshot VMware.
Come vengono eliminati gli snapshot VMware
A partire da VMware vSphere 6.0, il driver di mirroring degli snapshot viene utilizzato per il consolidamento degli snapshot durante l’eliminazione degli snapshot. Questo driver viene utilizzato anche per VMware Storage vMotion. L’utilizzo di dischi di snapshot temporanei di supporto è ridotto al minimo e il consolidamento degli snapshot può essere eseguito in un unico passaggio anche senza dischi di supporto. Le modifiche alla VM vengono scritte sul disco VMDK attivo e l’ordine di scrittura viene protetto durante il processo di consolidamento degli snapshot VMware.
Durante il processo di consolidamento, le scritture vengono eseguite sia sul disco attivo che sul disco di base, con l’invio di conferme.
Come creare un snapshot in VMware vSphere Client
La seguente procedura guidata utilizza il nuovo client HTML5 vSphere in vSphere 6.5. Lo stesso flusso di lavoro è valido per vSphere 6.7, vSphere 7.0, 7.0U1 e 7.0U2.
- Fare clic con il pulsante destro del mouse sulla VM su cui si desidera creare uno snapshot e selezionare Snapshots > Take Snapshot.
- Nella finestra di dialogo Crea snapshot , è possibile assegnare un nome allo snapshot e creare una descrizione per lo snapshot se si desidera aggiungere ulteriori dettagli.
- La casella di controllo per Include la memoria della VM ci permette di scegliere tra snapshot con e senza memoria della VM. Vediamo le differenze:
- Quando si seleziona Include la memoria della VM, nello snapshot viene incluso un dump dello stato interno della VM. Per acquisire snapshot con la memoria della VM, la VM deve essere accesa, altrimenti l’opzione non è disponibile per la selezione. Acquisendo uno snapshot di una VM accesa, è possibile catturare lo stato live della VM e ripristinare questo stato in qualsiasi momento.
- Quando questa opzione non è selezionata, lo snapshot non cattura lo stato live della VM. Se è necessario ripristinare lo snapshot, la VM verrà ripristinata contenendo gli stessi dati ma in uno stato spento. Successivamente, la VM dovrà essere accesa manualmente.
- È possibile selezionare l’opzione Quiesce guest file system per creare uno snapshot coerente con le applicazioni e preservare la coerenza dei dati se sono in corso operazioni di scrittura sulla VM.
- VMware Tools, incluso Sync Driver, deve essere installato a questo scopo. Uno snapshot con l’opzione di quiescing è adatto per eseguire il backup dei dati della VM utilizzando questa snapshot.
- VMware Tools con VMware Snapshot Provider avvia la creazione di una snapshot VSS in un sistema operativo guest (in un guest Windows). Volume Shadow Copy Service (VSS) writer in un sistema operativo guest ricevono una richiesta e preparano le applicazioni per la creazione di una snapshot coerente con le applicazioni. Tutte le transazioni di scrittura vengono scritte dalla memoria della VM al disco della VM. Al termine di questa operazione, gli scrittori VSS notificano a VMware Tools che una VM è pronta per l’acquisizione di un snapshot.
Nota: Quando si seleziona l’opzione Include virtual machine’s memory , l’opzione Quiesce guest file system diventa inattiva. È possibile selezionare una di queste opzioni se una VM è accesa.
- Fare clic su Creare per creare lo snapshot, quindi è possibile vedere l’avvio dell’attività pertinente nel vCenter Attività recenti pannello.
Come gestire gli snapshot vSphere
- Dopo aver creato uno snapshot, è possibile gestirlo facendo clic con il pulsante destro del mouse e selezionando Snapshots > Gestisci Snapshots.
- Nella finestra di dialogo Gestisci snapshot , è possibile visualizzare gli snapshot presenti su una VM e le opzioni disponibili:
- Ripristina – Ripristina uno snapshot esistente. Utilizza questa opzione per ripristinare lo stato della VM salvato nello snapshot.
- Modifica – Modifica il nome e la descrizione di uno snapshot.
- Elimina – Elimina lo snapshot selezionato; rimuove lo snapshot da Snapshot Manager. Se uno snapshot è precedente allo stato corrente, i dati dello snapshot vengono consolidati con il disco snapshot padre o il disco virtuale di base della VM.
- Elimina tutto – elimina tutti gli snapshot per la VM corrente.
Vengono visualizzate anche altre informazioni pertinenti, come il nome dello snapshot, l’ora di creazione e l’utilizzo del disco.
Regole di allarme snapshot
Quando la dimensione dello snapshot aumenta in modo significativo, le prestazioni del disco della VM risultano compromesse. Per questo motivo, è necessario tenere sotto controllo le dimensioni degli snapshot delle VM VMware per poter intervenire e eliminare/consolidare gli snapshot prima che le prestazioni degli snapshot VMware ne risentano negativamente. La configurazione di una regola di allarme snapshot VMware vSphere consente di ricevere notifiche quando le dimensioni dello snapshot superano il valore appropriato impostato nelle impostazioni di notifica. Diamo un’occhiata più da vicino a come configurare le notifiche degli snapshot vSphere in vSphere Client.
Configureremo le notifiche da inviare quando la dimensione di uno snapshot supera i 30 GB.
- Vai a Host e cluster e seleziona una VM. Fai clic con il pulsante destro del mouse sulla VM e nel menu che si apre, fai clic su Allarmi > Nuova definizione allarme.
- Si apre la procedura guidata Nuova definizione allarme.
- Nome e destinazioni. Immettere il nome dell’allarme, ad esempio Utilizzo snapshot vSphere. Immettere la descrizione (facoltativo). Selezionare il VM Tipo di destinazione. Fare clic su Avanti ad ogni passaggio della procedura guidata per continuare.
-
- Regola n. 1. Imposta la regola come segue:
- IF
- dimensione del snapshot VMware | is sopra | 30 GB
- THEN
- Attiva l’allarme e Mostra come avvertenza
- Invia notifica per e-mail: ON
- Oggetto: È possibile utilizzare l’oggetto predefinito
- Invia un’e-mail a: inserisci il tuo indirizzo e-mail
- IF
- Regola n. 1. Imposta la regola come segue:
-
- Regola n. 1. È possibile configurare la regola di ripristino in modo simile alla regola di allarme. La regola di ripristino è responsabile dell’invio di un messaggio di notifica quando le condizioni di avvertenza o critiche non sono più soddisfatte per uno snapshot vSphere.
-
- Rivedi. Rivedi la configurazione delle regole. Se tutto è corretto, premi Crea.
Per informazioni su come utilizzare gli snapshot vSphere in PowerCLI, consultare la sezione avanti.
Come creare snapshot utilizzando PowerCLI
Un modo efficace per interagire con vSphere è utilizzare PowerCLI. PowerCLI può essere utilizzato per creare, eliminare e ripristinare snapshot. Vediamo alcune sintassi di base per farlo.
Creazione di snapshot con PowerCLI
Per creare uno snapshot utilizzando PowerCLI, è possibile utilizzare la seguente sintassi:
get-vm testvm | new-snapshot -Memory -quiesce -name "Test snap"
Rimozione di uno snapshot
Per rimuovere uno snapshot, è possibile memorizzare il nome dello snapshot in una variabile, ad esempio $snap e utilizzarla per rimuovere lo snapshot in questione:
Remove-Snapshot -Snapshot $snap -RemoveChildren
Ripristino di uno snapshot
Per ripristinare uno snapshot creato, è possibile utilizzare la seguente sintassi:
get-vm “testvm" | set-vm -snapshot "Test snap" -confirm:$false
Limitazioni degli snapshot VMware
Esistono alcune limitazioni relative agli snapshot vSphere che è necessario conoscere.
- Con l’aumentare del numero di snapshot nel tempo possono insorgere alcuni problemi. Gli snapshot possono diventare difficili da gestire e occupare troppo spazio su disco. Inoltre, non sono protetti da guasti hardware.
- Conservare le snapshot delle VM per troppo tempo, avere un albero di snapshot di grandi dimensioni o introdurre troppe modifiche in una VM e nel suo sistema operativo guest dall’ultima snapshot può avere un impatto negativo sulle prestazioni delle VM e degli host.
- I dischi raw e i dischi in modalità fisica RDM non supportano gli snapshot VMware. Tuttavia, RDM (Raw Device Mapping) con modalità di compatibilità virtuale supporta gli snapshot.
- I dischi indipendenti non supportano gli snapshot VMware. Per creare uno snapshot, le VM con dischi indipendenti devono essere prima spente. Se la VM è accesa o sospesa, gli snapshot non sono supportati.
- VMware non fornisce snapshot per i dispositivi I/O PCI vSphere Direct Path.
- Gli snapshot VMware non sono disponibili anche per i sistemi operativi guest che utilizzano un iniziatore iSCSI nel guest.
- Le VM configurate con condivisione del bus non supportano gli snapshot VMware.
- Le procedure relative agli snapshot richiedono molto tempo per le VM con VMDK da 2 TB o più.
- Gli snapshot non devono essere considerati come metodi di protezione dei dati (backup) e ripristino a lungo termine, poiché i file di snapshot non sono recuperabili se vengono persi insieme a una VM.
Procedure consigliata per gli snapshot VMware
Quando si lavora con gli snapshot, cercare di seguire queste procedure consigliate VMware.
- Non utilizzare gli snapshot come backup. Gli snapshot non sono sufficienti come metodo di protezione dei dati e di ripristino perché i file snapshot sono solo registri delle modifiche del disco virtuale padre.
- Una catena di snapshot non deve superare i 32 snapshot. Per ottenere prestazioni migliori, limitare gli snapshot a 2 o 3.
- I file di snapshot VMware possono crescere nel tempo, occupando potenzialmente troppo spazio nel data store e causando un sovraccarico di storage. Il consiglio generale è quello di non conservare snapshot più vecchi di 72 ore. È possibile visualizzare gli snapshot più vecchi di 3 giorni, ad esempio in PowerCLI.
Nota: Il comando per visualizzare gli snapshot più vecchi di 72 ore:
Get-VM | Get-Snapshot | Where {$_.Created -lt (Get-Date).AddDays(-3)} | Select-Object VM, Name, Created, SizeMB
- Le operazioni di eliminazione non devono essere eseguite in blocco perché possono confermare tutte le modifiche memorizzate nei file delta ai file snapshot VMware parent o ai file VMDK del disco di base.
- Prestare particolare attenzione all’uso degli snapshot per le VM di server di database ad alta intensità di I/O con rapidi cambiamenti di dati, poiché gli snapshot potrebbero riempire tutto lo spazio dell’archivio dati.
- Quando si utilizzano soluzioni di terze parti che si basano sugli snapshot, assicurarsi che questi vengano eliminati regolarmente.
- Prestare attenzione se si intende aumentare lo spazio su disco della VM mentre gli snapshot sono ancora memorizzati su di essa. Gli snapshot potrebbero danneggiarsi, causando potenzialmente una perdita di dati imprevista.
- Sfrutta gli allarmi vCenter e gli script PowerCLI per tenere sotto controllo l’utilizzo dello spazio degli snapshot delle VM e degli archivi dati. Ciò consente anche di monitorare l’età degli snapshot delle VM.
- Se la versione di vSphere è precedente alla v5.0, eliminare tutti gli snapshot prima di eseguire Storage vMotion. Storage vMotion è supportato solo per le VM con snapshot successivi a vSphere 5.0; con le versioni precedenti, potrebbe causare la perdita di dati o rendere le VM non disponibili.
- Monitorare gli ambienti VMware vSphere per prevenire i problemi e risolverli in modo proattivo.
Considerazioni finali
Gli snapshot forniscono un potente meccanismo che consente di ripristinare uno stato noto di una VM VMware. Ciò include i file su disco, in memoria e la configurazione presente sulla VM al momento della creazione dello snapshot. Soprattutto negli ambienti di sviluppo, l’uso degli snapshot può essere molto vantaggioso quando si testano l’integrazione del codice, gli aggiornamenti o altre modifiche che potrebbero richiedere più di una esecuzione. Ripristinando uno snapshot, è possibile tornare in modo rapido ed efficiente in uno stato noto e in buono stato.
Tuttavia, gli snapshot non sono backup e dovrebbero essere presenti solo negli ambienti di sviluppo e non in quelli di produzione. Inoltre, non dovrebbero essere lasciati su una VM per lunghi periodi di tempo, poiché possono causare un calo delle prestazioni e un uso eccessivo dello spazio su disco. Utilizzate NAKIVO Backup & Replication & per proteggere i dati, le applicazioni e le macchine VMware vSphere. Scaricate l’Edizione gratuita per provare il prodotto nel vostro ambiente.
















