Réduire la taille d’un disque VMDK

Si dans mon cas, vous avez besoin de diminuer la taille de l’un de vos disques VMDK. Voici la manière dont j’ai procédé pour effectuer cette opération, sans risque pour mes données.

Il faudra diminuer la taille de votre disque système depuis votre OS. Dans le cas où vous avez attribué trop d’espace lors de l’augmentation de votre disque, vous n’avez rien à faire si cet espace n’est pas alloué par la machine.
Gestion disk Windows
Lorsque l’espace est disponible (non alloué), il faudra vérifier que les disques VMDK sont de type “Thick” et non “Thin”.
Configuration de la VM
Vous pouvez ensuite éteindre votre VM. Malheureusement cette opération ne s’effectue pas à chaud. Ensuite, il faudra repérer les fichiers VMDK de votre VM en SSH depuis l’un de vos Hôtes ESXi. Naviguer vers “/vmfs/volumes/(MonDatastore)/(MaVM)”, afficher les informations détaillées de cette manière.

[root@esxihome2:/vmfs/volumes/(MonDatastore)/(MaVM)] ls -lha
(...)
 -rw------- 1 root root 40.0G Jul 11 16:47 MaVM-flat.vmdk
 -rw------- 1 root root 552 Jul 13 10:37 MaVM.vmdk
(...)

Le fichier MaVM.vmdk contient l’ensemble des caractéristiques du disque. Tandis que le fichier MaVM-flat.vmdk contient les Data. Nous devons modifier le fichier MaVM.vmdk afin de diminuer la taille de ce disque. Voici un exemple de ce fichier de configuration.

[root@esxihome2:/vmfs/volumes/(MonDatastore)/(MaVM)] cat MaVM.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=1909686c
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfs"

# Extent description
RW 83886080 VMFS "Windows10Temp-flat.vmdk"

# The Disk Data Base
#DDB

ddb.adapterType = "lsilogic"
ddb.deletable = "true"
ddb.geometry.cylinders = "5221"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "0dd619813362b1e09007e9231909686c"
ddb.toolsInstallType = "1"
ddb.toolsVersion = "10272"
ddb.uuid = "60 00 C2 9a 07 5b 01 5a-14 e7 97 15 42 5b f1 6d"
ddb.virtualHWVersion = "13"

Nous nous intéresserons à la valeur située après “RW” de “Extent description”. Cette valeur indique la taille du disque actuelle. Nous pouvons le calculer de cette manière pour vérifier que la formule est correcte.

(83886080 * 512) / 1024 / 1024 / 1024 = 40GB

Notre disque est bien configuré pour 40GB dans VMware.

Nous pouvons modifier cette valeur en fonction de notre espace utilise sur cette VM. Pour notre étude de cas, nous avons un espace utilise de 32GB sur notre disque. (voir espace utilisé plus haut)

Nous devons donc modifier et indiquer la valeur suivante “67108864” à cet emplacement.

67108864 = (32 * 1024 * 1024 * 1024) / 512

Voici le fichier une fois modifier.
Configuration VMDK apres modification
Maintenant que notre fichier de configuration est modifié, il faudra effectuer un sVmotion de la VM pour prendre en compte les modifications.

Après cela, vous pourrez ensuite démarrer votre VM et vérifier que les modifications sont bien prises en compte. Vous pourrez aussi le vérifier en SSH, depuis votre Hôte, en affichant les propriétés des fichiers du dossier contenant la VM.
Detail apres diminution du VMDK
Detail apres diminution SSH