1.Le symptôme
Plusieurs VM se figent en même temps. Dans vCenter, elles affichent une question en attente : « There is no more space for virtual disk … You might be able to continue this session by freeing disk space on the relevant volume, and clicking Retry ». Le datastore est à 100 %.
Sous 100 %, tout fonctionne. À 100 %, toutes les VM qui ont besoin d'écrire s'arrêtent : disques en provisionnement fin qui ne peuvent plus grossir, snapshots qui ne peuvent plus s'étendre, VM qui ne peuvent plus démarrer faute de place pour leur fichier d'échange.
-delta.vmdk ou -sesparse.vmdk : ce sont les données récentes des VM. Redémarrer l'ESXi ne libère pas d'espace non plus.2.Qui mange la place ?
# Remplissage des datastores Get-Datastore | Select-Object Name, @{ n = 'TailleGo'; e = { [math]::Round($_.CapacityGB) } }, @{ n = 'LibreGo'; e = { [math]::Round($_.FreeSpaceGB, 1) } }, @{ n = 'Libre%'; e = { [math]::Round($_.FreeSpaceGB / $_.CapacityGB * 100, 1) } } | Sort-Object 'Libre%' # Snapshots présents sur le datastore plein Get-Datastore "DS-PROD-01" | Get-VM | Get-Snapshot | Select-Object VM, Name, Created, @{ n = 'TailleGo'; e = { [math]::Round($_.SizeGB, 1) } } | Sort-Object TailleGo -Descending
3.Libérer de la place en urgence
Le but immédiat : récupérer quelques dizaines de Go pour que les VM repartent. On cherche les gains rapides et sans risque, dans cet ordre.
- Supprime ce qui n'est pas une VM : ISO, bundles de logs, anciens exports. Vérifie qu'aucune VM n'a l'ISO montée.
- Éteins une VM non critique (test, dev) : son fichier .vswp, aussi gros que sa RAM, est supprimé à l'arrêt.
- Déplace une petite VM éteinte vers un autre datastore (migration à froid). La migration à chaud (Storage vMotion) demande elle-même de l'espace libre et risque d'échouer.
- Agrandis le datastore si la baie a de la place : agrandis le LUN côté baie, puis dans vCenter, datastore → Configure → General → Increase. Vérifie aussi que le pool de la baie n'est pas lui-même plein, si le LUN est en provisionnement fin.
- Réponds « Retry » à la question en attente de chaque VM figée (onglet Summary de la VM). Elles reprennent là où elles s'étaient arrêtées.
4.Une fois la crise passée
- Supprime ou consolide les snapshots oubliés, et cherche pourquoi ils étaient là (job Veeam interrompu, snapshot manuel avant une mise à jour…). Le tuto « Consolidation bloquée » détaille la marche à suivre.
- Cherche les fichiers orphelins : un dossier de VM sur le datastore qui ne correspond à aucune VM de l'inventaire. Vérifie deux fois avant de supprimer.
- Rééquilibre : déplace des VM vers un datastore moins rempli (ou active Storage DRS si tu as un cluster de datastores).
5.Pour ne plus jamais y retourner
- Alarme vCenter sur l'usage des datastores (avertissement à 80 %, critique à 90 %), avec envoi de mail, ou un service Centreon équivalent.
- Garder 15 à 20 % d'espace libre en permanence : c'est la place dont ont besoin les snapshots de sauvegarde et les consolidations.
- Rapport quotidien des snapshots de plus de 24 h (Veeam crée et supprime les siens à chaque job : ceux qui restent sont anormaux).
- Suivre la surallocation : somme des tailles provisionnées des disques par rapport à la capacité du datastore.
- Pour les grosses VM, une réservation mémoire réduit la taille de leur fichier .vswp.
# Surallocation : espace promis aux VM (thin) par rapport à la capacité
Get-Datastore | ForEach-Object {
$prov = ($_.CapacityGB - $_.FreeSpaceGB) + ($_.ExtensionData.Summary.Uncommitted / 1GB)
[PSCustomObject]@{ Datastore = $_.Name; Capacite = [math]::Round($_.CapacityGB)
Provisionne = [math]::Round($prov); Ratio = [math]::Round($prov / $_.CapacityGB, 2) }
} | Sort-Object Ratio -Descending