Le snapshot di VMware a livello di macchine virtuali hanno utilizzi e finalità ben specifiche e cambiano a seconda dei prodotti ad uso individuale (Fusion e Workstation) rispetto a quelli ad uso enterprise (vSphere).
Se in Workstation (o Fusion) sono pensati come strumento di versioning e per creare punti di ripristino delle vostre macchine virtuali (oltre che per creari cloni in modalità linked clone), in vSphere sono pensate principalmente per i programmi di backup: tramite le VADP il programma di backup può avviare una snapshot, in modo da poter poi lavorare su file “statici”, copiarli (o copiarne solo la parte cambiata se si utilizza il CBT del virtual hardware 7 o superiore) e rilasciare alla fine la snapshot.
Certo, molti utilizzano le snapshot come punti di ripristino quando si eseguono modifiche importanti alle VM, ma questo utilizzo dovrebbe essere limitato al minimo data l’implementazione non proprio efficiente delle snapshot VMware, e comunque utilizzato con buon senso, visto che in alcuni casi (ad esempio con controller di Active Director) può persino essere controproducente, se utilizzato male.
Il controllo di snapshot grandi o corrotte (più che altri di alberi di snapshot corrotti) è una delle attività fondamentali di un buon amministratore di ambienti virtuali!
Un modo banale per controllare quando una VM ha una snapshot troppo grossa è quella di creare un custom alarm in vCenter (notare che di default ne esistono tanti, ma nessuno per controllare le snapshot). L’allarme deve essere di tipo VM con il trigger di tipo “VM Snapshot Size” e può essere applicato a livello di vCenter (la radice dell’inventario), di datacenter, di cluster o persino a livello di singola VM, a seconda delle proprie esigenze.
Come si nota però non lavora in percentuale, ma con valori di spazio in termini di GB assoluti. Quindi non è semplice trovare valori sensati se avete macchine con dimensioni di disco molto diverse tra di loro: una macchina Exchange o DBMS potrebbe facilmente raggiungere snapshot da 5 GB magari in pochi minuti, una macchina con un solo disco da 40 GB potrebbe raggiungere questa soglia in giorni.
Rimane comunque una soluzione molto semplice e meglio di niente.
Un’altra soluzione integrata molto usata è il tab Storage Views tab (tipicamente usato a livello cluster): in una sola schermata potete vedere tutte le VM e ordinarle per spazio usato dalle snapshot: potente e semplice. A parte il fatto che i dati spesso non si aggiornano e quindi è opportuno eseguire un update manuale se volete dati recenti.
Il problema però è che questo tab (tra l’altro del vecchio vSphere Client) NON esiste più in VMware vSphere 6.0: si è scelto di rimuovere completamente questa funzioni (sinceramente non ne conosco il motivo, forse è stata valutata poco utile, forse era poco gestibile nel client Web, o forse molti si erano lamentati dei dati incoerenti che si avevano nella colonna Multipathing status).
Quindi una soluzione in meno e una complicazione in più se volete gestire le snapshot in modo semplice con vSphere 6.0. In questo caso potrebbero essere necessari tool di terze parti.
Tra questi ve ne sono alcuni di interessanti, come:
- opvizor Snapwatcher che non si ferma solo al monitoraggio, ma permette anche la pulizia delle snapshot (sia quelle visibili che quelle “invisibili”) in un solo click. Ma soprattutto è completamente gratuito!
- RVTools molto ultile per creare inventari del vostro ambiente, ha comunque un tab dedicato per le snapshot. Ma soprattutto è completamente gratuito!
- Veeam Snapshot Hunter è incluso nella Veeam Availability Suite 8 e può rimuovere in automatico le snapshot pendenti a seguito di un backup (per maggiori informazioni su come funziona vedere questo post in inglese).
- Veeam ONE, incluso in molti bundle Veeam, tra le varie funzioni ha anche quello di monitoraggio delle snapshot.
- Tramite scripting è possibile crearsi i propri controlli (già il nome del file vmdk può essere sintomo che vi è una snapshot attiva).
Ma le snapshot in vSphere sono proprio così dannose? Sì, se parliamo di quelle di VMware: più crescono e più mangiano spazio, ma causano anche problemi di prestazioni, ma soprattutto più sono grandi e più sarà poi complicato (e costoso in termini di prestazioni) rimuoverle.
Le snapshot a livello storage invece normalmente non presentano questi problemi e (se lo storage vendor le suggerisce) possono essere tranquillamente utilizzate.
Fanno eccezione le snapshot delle macchine virtuali nei casi della Virtual SAN 6.0 (utilizzano una tecnologia completamente diversa) che nel caso dei Virtual Volumes (in questo caso le snapshot sono fatte a livello di storage).