Récupérer de l’espace disque sur des datastores VMware avec PowerShell

Récupérer de l’espace disque sur des datastores VMware avec PowerShell

A partir de la version VMware 6.5, la récupération d’espace après la suppression ou le déplacement d’une VM peut se faire de façon asynchrone et automatiquement sur les Datastores en VMFS 6, les VVOLs,  NFS.

Par contre, sur les Datastores en VMFS 5 le « Space reclaim » est une action manuelle que l’on execute grâce aux commandes Esxcli.

Commande unmap en Esxcli

Pour exécuter le « Space Reclaim » sur un Datastore en ligne de commande, il faut être connecté en ssh à un ESXi qui a accès au datastore cible et lancer la commande : 

« esxcli storage vmfs unmap –volume-label NomDuDatastore« 

Pour lister les datastores vu par l’ Esxi, on peut lancer la commande esxcli :

esxcli storage filesystem list

Pour lancer la commande unmap sur l’ensemble de ses datastores, on peut donc lancer la commande esxcli suivante :

esxcli storage filesystem list | grep PaternNomDatastore | awk ‘{print $2}’ | while read d; do da=$(date); echo « $(da) – Processing $d … »; esxcli storage vmfs unmap –volume-label $d; done

Space Reclaim en Powershell

En Powershell, on s’appuie également sur les commandes esxcli.

Pour cela, il faut tout d’abord se connecter en PowerCli au vCenter ou à un Esxi, puis : 

  • On créé un objet contenant les commandes esxcli, cela permettra d’exécuter en PowerShell les commandes Esxcli.

$esxcli = get-Esxcli -vmhost $esxName -V2

  • On créé une hashtable avec le nom du datastore sur lequel la commande « unmap » doit être appliquer.

$sParam = @{ volumelabel = $datastoreName }

  • Et on lance la commande unmap

$esxcli.storage.vmfs.unmap.invoke($sParam)

Permission nécessaire pour lancer la commande Unmap en PowerCLI

Si vous souhaitez vous connecter au vCenter avec le minimum de privilège pour lancer la commande UNMAP, l’utilisateur doit avoir au minimum une autorisation Host.Config.Storage. Vous pouvez lire  sur ce sujet l’article de Cody Hosterman  Required ESXi permissions for UNMAP through PowerCLI

Lors de la création du rôle, il faut activer la permission  » Storage partition configuration« , que vous trouver dans  : 

Host -> Configuration -> Storage partition configuration.

A lire : 

No Comments

Sorry, the comment form is closed at this time.