ESXi,TRIM et SSD

Si vous utilisez un SSD comme datastore dans votre ESXi, il convient de prendre quelques précautions afin de s'assurer que la fonction TRIM du SSD est utilisée correctement. Cela garantissant des performances optimales, ainsi que maximisant la durée de vie de ce dernier.

ssd

Premièrement, certains bug peuvent exister au sein de l'hyperviseur, comme celui ci :

In ESXi 6.7 U2 or later Linux VMs fails unmap and windows VMs can hang or have slow IO performance

Entrainant des problème d'I/O ou bien l'impossibilité pour un VM d'être informée qu'elle peut activer le TRIM. Il faut donc s'assurer d'avoir son hyperviseur ESXi à jour. Pour cela, il faut se rendre sur cette page :

Customer Connect Patch Downloads

Puis télécharger et installer le dernier patch à jour correspondant à la version de votre ESXi.

Ceci fait, il faut dans un premier temps convertir les disques au format "Thick Provisioning" en "Thin Provisioning", de cette façon, ne sera consommé sur le datastore uniquement la place réellement utilisée au sein des VM.

Cela se fait en SSH sur l'hyperviseur. Attention, cela passe par une étape de clonage du disque, donc prévoir un espace disque suffisant, équivalent à la taille disque modifié.

Éteindre la VM, puis se déplacer dans le dossier de la VM en question (à adapter en fonction de votre datastore):

cd /vmfs/volumes/datastore1/DOSSIER-DE-LA-VM

Nous lançon la conversion :

vmkfstools -i NOM-HDD-VM.vmdk NOM-HDD-VM-CLONE.vmdk -d thin

Finalement, dans le GUI de l'ESXi, détacher le disque initial, puis rattacher un "disque existant", en sélectionnant le disque au format thin que nous venons de créer.

A savoir que nous pouvons également directement créer un disque au format thin :

vmkfstools -c 20G –diskformat thin DISK-THIN.vmdk

Au niveau d'une VM Linux, il faut bien penser à placer le paramètre "discard" dans fstab. Ainsi que lancer un "fstrim -av" pour prendre en compte les modifications que nous venons d'effectuer. De cette manière, la taille des disques de nos VM vont fluctuer en fonction de l'occupation des données qu'ils contiennent. En laissant de l'espace libre sur le SSD, cela permet de maximiser sa durée de vie car il lui reste de l'espace pour effectuer ses routines internes.