Lister les VMs avec un snapshot caché

Il peut arriver qu’une VM ait un snapshot « fantôme ».
L’interface ne montre aucun snapshot pour cette VM, et pourtant si on regarde dans le répertoire de la VM sur le datastore, on s’aperçoit qu’il y a bel et bien des disques de snapshot (fichier *-000001.vmdk par exemple).

Cela peut se produire lors de certains cas de suppression de snapshot. Par exemple la suppresion du snapshot en cours d’utilisation nécessite la création d’un fichier de snapshot temporaire, non référencé dans l’interface, et qui parfois n’est pas supprimé en fin d’opération et reste utilisé.
Dans certains cas, on en est rapidement informé car la VM va afficher un message indiquant que les disques ont besoin d’une consolidation, mais ce n’est pas systématique.

Ce script permet de lister toutes les VMs qui n’ont pas « officiellement » de snapshot, mais qui utilisent des disques de snapshot.
Pour ça, il suffit le prendre la liste des fichiers de la VM et de regarder si certains contiennent le suffixe « -delta.vmdk ».

Une fois la liste des VMs établie, la résolution est simple. Soit vous créez un snapshot puis vous le supprimez en sélectionnant « Delete All », soit vous faites une consolidation comme indiqué dans le KB2003638 de VMware : https://kb.vmware.com/kb/2003638.

Cette foi-ci, je n’ai pas pu revalider ce script car je n’ai pas de VM dans ce cas de figure (et je ne sais pas le générer).
Dès que j’ai l’occasion de le tester, je ne manquerai pas de l’indiquer et de mettre une copie d’écran de ce qui s’affiche.


Script

Foreach ($VM in Get-VM | Where-Object {-not $_.ExtensionData.Snapshot})
{
	If ($VM.ExtensionData.LayoutEx.File | Where-Object {$_.Name -Like "*-delta.vmdk"})
	{
		Write-Host "The VM '$VM' has at least one hidden snapshot or one disk needing consolidation."
	}
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *