lunedì 6 settembre 2021

Non usare VMware Snapshot (e AutoProtect) per il backup


VMware e tutte le altre piattaforme virtuali non raccomandano di usare le funzioni VMware Snapshot o AutoProtect Snapshot per funzionare come backup VMware per le macchine virtuali. Il ragionamento e le alternative sono descritte di seguito. Prima di tutto, è necessario essere consapevoli di ciò che le istantanee e le funzioni AutoProtect fanno e non fanno, al fine di prendere una decisione informata.
Cos'è uno snapshot VMware?

Uno snapshot in VMware è un meccanismo che permette all'utente della macchina virtuale di 'congelare' la macchina e tornare a quello stato congelato in un momento successivo. Naturalmente, questa funzione è molto popolare tra gli sviluppatori e i tester di software perché permette loro di ripetere i test con tutti i test che hanno esattamente lo stesso punto di partenza e le stesse condizioni di sistema. Ma come viene fatto internamente? Qui sta la risposta al perché non dovreste percepire gli snapshot come un meccanismo di backup.

VMware implementa gli snapshot salvando il disco virtuale e lo stato della memoria interna della macchina virtuale, tra le altre cose, in file separati, i cosiddetti file snapshot. Per ogni VMDK (il file del disco rigido della macchina virtuale), per esempio, e per ogni snapshot che prendi per la VM, ci sarà un nuovo VMDK. Una volta che si "congela" una macchina virtuale prendendone uno snapshot, VMware smette di scrivere le modifiche al disco virtuale originale e avvia invece un nuovo file del disco virtuale. Dopo la creazione dello snapshot, il VMDK originale rimane intatto.

Sfortunatamente VMware usa un'impostazione predefinita davvero stupida che la maggior parte degli utenti ignora. Il risultato è la suddivisione dei file VMDK in file da 2 GB. Un disco virtuale da 2 TB viene quindi suddiviso in 1.024 file da 2GB. Se ora pensi che questo sia davvero stupido, considera questo: Se ora vai avanti e fai due, tre snapshot, la cartella della tua VM avrà ben oltre 3.000 file! E all'improvviso, la tua VM inizia a diventare molto lenta e ti chiedi perché.
Cosa succede quando si ripristina un'istantanea VMware?

Ripristinando uno snapshot VMware, VMware rimuove il VMDK secondario dove sono state memorizzate le modifiche e carica la memoria interna e altre strutture dalla condizione precedente della macchina virtuale. Tutte queste informazioni sono contenute in diversi file relativi allo snapshot. Una volta che la VM è di nuovo operativa, i file dello snapshot vengono cancellati.
Cosa succede quando si elimina una VMware Snapshot?

Cancellare uno snapshot è molto più impegnativo perché ora stai dicendo a VMware che vuoi mantenere le modifiche, cosa che "pensava" fosse improbabile; quindi, VMware ha bisogno di fondere il disco virtuale originale con le modifiche avvenute da allora. Se sono state fatte molte modifiche, questa fusione potrebbe richiedere un po' di tempo. Una volta completato, i file snapshot vengono cancellati.

Lasciatemi iniettare qui una piccola riflessione. Il modo in cui VMware e altre piattaforme hanno implementato gli snapshot è davvero la prova che non sono pensati per essere usati per i backup e non sono adatti nemmeno sui sistemi di produzione. Se gli architetti di VMware avessero voluto usare gli snapshot come meccanismo di protezione, avrebbero optato per scrivere le modifiche sul disco originale e scrivere i blocchi originali in un file 'preserve the original'.  In questo modo non ci sarebbe stato alcun impatto sulle prestazioni per le letture o le scritture successive, e cestinare lo snapshot sarebbe stato molto facile e veloce. Ma non è così che hanno fatto, e non l'hanno fatto per una buona ragione: la ragione è semplicemente che le istantanee non sono pensate per essere dei backup.
Le istantanee sono permesse sui sistemi di produzione? No.

Molti amministratori di sistemi IT esperti si arrabbieranno se si creano snapshot per una VM di produzione a causa delle inefficienze e delle complessità di gestione descritte sopra. Una VM senza snapshot potrebbe esistere semplicemente con due file, la configurazione e il disco virtuale VMDK. Una VM con snapshot può facilmente consistere in decine o centinaia di file. Naturalmente tutte queste inefficienze si sommano e rallentano il server. Rendono la gestione delle strutture dati delle VM troppo complicata e soggetta a errori. Per questi motivi è meglio e più efficiente non usare gli snapshot VMware sul sistema di produzione.
Perché esattamente uno snapshot VMware e la funzione AutoProtect non sono raccomandati come backup VMware?

Il backup di una macchina virtuale è un processo molto più completo e affidabile di una semplice istantanea. Prima di tutto, gli snapshot cambiano la VM stessa perché introducono nuove dipendenze, mentre un backup VMware non lo fa. Vengono creati più file quando si aggiunge uno snapshot, e VMware inizia a scrivere le modifiche al disco su diversi file, ecc. Se un qualsiasi file viene corrotto o perso, l'intera macchina virtuale viene danneggiata. Le istantanee sono quasi sempre memorizzate sullo stesso disco; quindi, un semplice guasto al disco influenzerà anche l'istantanea. Tuttavia, anche se solo un'istantanea viene danneggiata e i file originali sono a posto, in entrambi i casi la VM è rotta.

Un backup VMware utilizza uno storage separato, idealmente da qualche altra parte su un dispositivo diverso o in un account cloud. Protegge da tutti i tipi di guasti: hardware, software, malware, errori del sistema operativo e danni accidentali o anche intenzionali fatti da dipendenti scontenti, per esempio. Prendendo copie affidabili di tutti i bit di informazioni che sono necessari per ripristinare la macchina virtuale, il backup VMware contiene un set completo di tutto ciò che è necessario per ricostruire la VM su qualsiasi host VMware, come la configurazione della macchina virtuale, i dischi virtuali, e tutti gli snapshot appartenenti alla VM.
Vantaggi del backup VMware rispetto alle istantanee

Un backup VMware live automatizzato è tecnicamente superiore e molto più affidabile di uno snapshot. I backup VMware possono essere fatti mentre la VM è in esecuzione o quando è spenta, in entrambi i casi funziona senza problemi. È possibile ripristinare i backup VMware e la VM ripristinata può essere impostata per essere un clone dell'originale, in modo da poterla confrontare fianco a fianco. I backup VMware non hanno alcun impatto sulle prestazioni una volta che il backup è finito, a differenza delle istantanee che rallentano ogni accesso al disco della VM una volta che sono state create. Un altro effetto importante delle istantanee è che i file di tracing interni a VMware vengono scritti su disco molto spesso per tracciare le bitmap delle istantanee e, nel caso degli SSD, questo può portare a una più rapida usura e quindi a un guasto del disco.
Qual è la strategia consigliata?

Le istantanee sono ottime per il loro scopo: test di software e sistemi operativi. A parte questo, usarle non è molto probabilmente una buona idea, specialmente sui sistemi di produzione. Le VM di produzione importanti dovrebbero essere protette da una buona soluzione di backup VMware in modo da poter ripristinare la VM in modo affidabile su qualsiasi host, qualunque cosa accada, senza influenzare le prestazioni della macchina virtuale host a lungo termine o complicare la sua gestione. Il software di backup VMware aiuta a mantenere l'archivio dati VMware snello ed efficiente, e le VM funzionano al massimo delle prestazioni senza overhead. Le istantanee influiscono negativamente sulle prestazioni, rendono la gestione dello storage più complicata, aumentano il potenziale di errore, riducono significativamente il numero di VM che l'host può servire in modo affidabile, e sono quindi sconsigliate ai fini del backup.