J’ai rencontré une étrange erreur « Errno 28 ‘Espace insuffisant sur le périphérique’ » en tentant de mettre à jour un hôte VMware ESXi autonome. Il semble que le stockage ne soit pas saturé, du moins en apparence. Parfois, il s’agit simplement d’une question de limites d’inodes ou d’espace d’échange, ce qui n’est pas toujours évident au premier abord. Ce genre de problème peut être très agaçant, car les messages d’erreur de l’interface de ligne de commande semblent indiquer une piste, alors que la véritable cause peut être tout autre. Comprendre ce qui se passe réellement et comment résoudre le problème sans s’arracher les cheveux est essentiel.
Comment résoudre le problème « Espace insuffisant sur le périphérique » lors des mises à niveau d’ESXi
Vérifiez minutieusement les inodes et l’espace disque.
Il s’agit toujours de la première étape — même si la commande df -h semble correcte, exécutez cette commande :
stat -f / | grep Inodes | awk '{ print $NF }'
Il vous indiquera le nombre d’inodes encore libres. Si ce nombre est proche de zéro, c’est probablement là le véritable problème, et non un manque d’espace disque. Sur certaines configurations, la saturation des inodes survient plus rapidement que la saturation de l’espace de stockage lui-même, surtout avec de nombreux petits fichiers ou journaux.
Si le nombre d’inodes libres est faible, un nettoyage des anciens journaux ou fichiers temporaires dans /tmp ou d’autres répertoires peut s’avérer utile. Parfois, un simple redémarrage suffit à supprimer les fichiers temporaires et à libérer des inodes, mais sur les serveurs de production, cette solution n’est pas toujours envisageable.
Vérifier et ajuster les paramètres du fichier d’échange
Une autre cause insidieuse : un espace d’échange insuffisant. Les hôtes ESXi ont besoin d’espace d’échange disponible pour effectuer des mises à jour importantes. Si l’emplacement du fichier d’échange est saturé, cette erreur se produit. Vous pouvez vérifier ou modifier l’emplacement du fichier d’échange via le client Web vSphere : Hôte → Configurer → Système → Échange. Recherchez les options telles que « Échange de l’hôte » et « Spécifier les banques de données pour les fichiers d’échange », puis activez « Utiliser une banque de données » et sélectionnez une banque de données disposant de suffisamment d’espace libre.
De même, depuis l’interface de ligne de commande (CLI), vous pouvez indiquer à ESXi d’utiliser un datastore particulier pour les fichiers d’échange avec :
# esxcli sched swap system set -n NameOfDatastore -d y
Assurez-vous également que des options comme « Autoriser le cache hôte » sont activées afin d’éviter les problèmes de mémoire virtuelle lors des mises à niveau.
Ce simple ajustement s’avère souvent utile, notamment lorsque la mise à niveau se bloque en raison de problèmes d’espace d’échange.
Supprimer les fichiers et VIB inutiles
Si l’espace disque n’est pas en cause, il est possible que l’hôte ait accumulé des fichiers inutiles, d’anciens VIB (packages d’installation vSphere) ou des journaux qu’il serait judicieux de nettoyer. Par exemple, envisagez de supprimer les VIB inutilisés :
# esxcli software vib remove -n NameOfOldVIB
Ou supprimez les journaux /var/corepour /var/loglibérer de l’espace. Veillez simplement à ne supprimer aucun fichier critique.
Installation manuelle de VMware Tools Light (en cas d’échec de la mise à jour)
Sur certaines configurations, la mise à niveau de VMware Tools Light échoue car il est impossible d’écrire de nouveaux fichiers. Pour contourner ce problème, téléchargez et installez manuellement le VIB.
cd /tmp wget http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib esxcli software vib install -v /tmp/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib -f rm /tmp/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib
Utilisez le nom de fichier exact du VIB correspondant à l’erreur affichée ; vous pouvez lister les versions disponibles avec :
# esxcli software sources vib list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep tools-light | sort
Cela permet souvent d’éviter les problèmes d’espace qui surviennent lors du processus de mise à niveau automatisé.
Ignorez la mise à jour des outils et concentrez-vous sur le profil de l’hôte.
Si l’installation du VIB d’outils échoue toujours et que l’espace disque semble suffisant, une autre solution consiste à mettre à jour l’image hôte ESXi sans les outils, puis à les ajouter séparément. Exécutez une commande similaire à :
# esxcli software profile update -p ESXi-7.0.0-xxxxxx-standard -no-tools -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vm-depot/
Une fois l’hôte mis à jour, redémarrez-le, puis essayez de mettre à jour les outils VMware séparément, éventuellement via l’interface de ligne de commande ou le client vSphere, en vous assurant qu’il y a suffisamment d’espace libre.
Et, en dernier recours, vous pouvez toujours télécharger l’image ZIP complète d’installation d’ESXi, la charger sur un datastore et effectuer une nouvelle installation ou une mise à niveau. C’est une opération plus lourde, mais parfois, repartir de zéro en vaut la peine.
Rien n’est parfait, mais ces étapes permettent généralement de résoudre les problèmes concrets les plus courants et de relancer la mise à niveau. Parfois, une reconstruction complète de l’hôte est nécessaire si des problèmes d’espace ou d’inodes persistent, mais ces solutions permettent souvent de corriger les principaux écueils.
Résumé
- Vérifier l’utilisation des inodes avec
stat -f / | grep Inodes | awk '{ print $NF }' - Assurez-vous que les fichiers d’échange sont configurés sur des banques de données disposant d’un espace libre suffisant.
- Supprimez les journaux ou VIB inutiles pour libérer de l’espace.
- Installez manuellement les outils VIB si nécessaire.
- En cas de blocage, envisagez de mettre à jour le profil de l’hôte sans outils.
- Et, en dernier recours, téléchargez une image ZIP neuve pour une mise à niveau propre
J’espère que cela aidera ceux qui rencontrent le même problème d’espace disque insuffisant. Parfois, il suffit de trouver cette fameuse limite d’inodes ou de réorganiser les fichiers d’échange. Bonne chance ! J’espère que cela vous évitera bien des soucis.