Vous créez une VM sous Proxmox, vous y balancez des données comme un enfant qui remplit son cartable de cailloux, puis vous supprimez tout en vous disant que l’espace va miraculeusement réapparaître. et non! Le fichier QCOW2 de votre VM reste aussi gonflé qu’un chat qui a avalé un ballon, et Proxmox vous regarde avec des yeux ronds en se demandant pourquoi son stockage fond comme neige au soleil. La solution ? Le TRIM, ce héros méconnu qui va enfin rendre à César ce qui appartient à César – ou plutôt, à votre disque.
Le problème : des VMs qui mentent comme des arracheurs de dents
Imaginez : vous avez une VM avec un disque de 50 Go. Vous y copiez 20 Go de données, puis vous les supprimez. Logiquement, vous vous attendez à retrouver vos 20 Go libres, n’est-ce pas ? Sauf que non. Votre VM, elle, vous dit « Tout va bien, j’ai de la place ! » pendant que le fichier QCOW2 sur l’hôte Proxmox, lui, reste désespérément à 20 Go. Pourquoi ? Parce que le QCOW2 est un format thin provisioned, c’est-à-dire qu’il ne libère pas automatiquement l’espace des blocs supprimés. Il se contente de marquer les blocs comme « libres » dans la VM, mais sans en informer l’hôte. Résultat : votre stockage Proxmox se remplit comme une baignoire sans bouchon, et vous finissez par recevoir des alertes du genre « Disque plein » alors que vos VMs jurent leurs grands dieux qu’elles n’y sont pour rien.
C’est là que le TRIM entre en jeu. Ce mécanisme, présent dans la plupart des systèmes de fichiers modernes (ext4, XFS, NTFS, etc.), permet à la VM d’indiquer à l’hôte quels blocs de données peuvent être réellement libérés. Sans lui, votre QCOW2 reste un sac sans fond où les données supprimées continuent de squatter l’espace comme des invités qui refusent de partir après une soirée.
Activer le TRIM : la manip qui va sauver votre stockage
Pour que le TRIM fonctionne, il faut l’activer à deux niveaux : dans la VM et sur l’hôte Proxmox. Commençons par la VM, parce que c’est là que tout se joue.
Si votre VM tourne sous Linux, vérifiez d’abord que le système de fichiers supporte le TRIM (ext4 et XFS le font par défaut). Ensuite, activez le discard dans les options de montage du disque. Par exemple, pour un disque monté sur / :
/dev/sda1 / ext4 defaults,discard 0 1
Si vous utilisez fstab, modifiez la ligne correspondante et redémarrez la VM. Pour vérifier que le TRIM est bien actif, lancez :
lsblk --discard
Si la colonne DISC-GRAN (granularité de TRIM) affiche une valeur autre que 0B, c’est bon. Sinon, c’est que votre système de fichiers ou votre matériel ne supporte pas le TRIM – et là, c’est la loose.
Pour les VMs Windows, c’est encore plus simple : ouvrez une invite de commandes en admin et lancez :
fsutil behavior set DisableDeleteNotify 0
Cela active le TRIM pour tous les disques. Pour vérifier, utilisez :
fsutil behavior query DisableDeleteNotify
Si le résultat est 0, c’est activé. Sinon, c’est que Microsoft a encore décidé de vous compliquer la vie.
Côté Proxmox, il faut s’assurer que le stockage sous-jacent supporte le TRIM. Si vous utilisez du LVM-thin, c’est déjà le cas. Pour les autres types de stockage (comme ZFS ou Ceph), vérifiez la documentation, car certains nécessitent des configurations spécifiques. Une fois que tout est en place, Proxmox va enfin pouvoir libérer l’espace des blocs marqués comme supprimés dans la VM.
Le TRIM manuel : quand la VM refuse de coopérer
Parfois, même avec le TRIM activé, l’espace n’est pas libéré immédiatement. C’est normal : le TRIM est un processus asynchrone, et certains systèmes de fichiers (comme ext4) attendent un certain seuil avant de déclencher la libération. Si vous êtes pressé, vous pouvez forcer le TRIM manuellement depuis la VM.
Sous Linux, utilisez la commande fstrim :
fstrim -av
Cette commande va parcourir tous les systèmes de fichiers montés et envoyer les informations de TRIM à l’hôte. Sous Windows, utilisez l’outil intégré Optimize Drives (accessible via le menu Propriétés du disque dans l’Explorateur de fichiers).
Si malgré tout l’espace n’est pas libéré, c’est peut-être que votre stockage Proxmox ne supporte pas le TRIM (par exemple, si vous utilisez un stockage en mode raw ou qcow2 sur un système de fichiers qui ne le gère pas). Dans ce cas, il ne vous reste plus qu’à compresser manuellement le fichier QCOW2 avec qemu-img :
qemu-img convert -O qcow2 vm-100-disk-0.qcow2 vm-100-disk-0-new.qcow2
Cette opération va recréer le fichier en ne gardant que les blocs réellement utilisés. Attention, cela peut prendre du temps et nécessite que la VM soit éteinte.
Conclusion : le TRIM, ce mal-aimé qui mérite votre amour
Le TRIM est un peu comme ce collègue discret qui fait tout le boulot sans jamais se plaindre. Sans lui, vos VMs mentent effrontément sur leur consommation d’espace, et Proxmox se retrouve à gérer un stockage qui fond comme un glaçon en plein soleil. Activer le TRIM, c’est un peu comme donner un balai à votre VM pour qu’elle nettoie derrière elle : ça ne coûte rien, ça évite les crises de nerfs, et ça vous permet de dormir sur vos deux oreilles en sachant que votre stockage est optimisé.
Alors, la prochaine fois que vous verrez votre fichier QCOW2 gonflé comme un ballon de baudruche, ne maudissez pas Proxmox. Activez le TRIM, et laissez la magie opérer. Votre disque dur vous remerciera – et vos collègues aussi, quand ils ne recevront plus d’alertes « stockage critique » à 3h du matin.