« No space left on device » alors que des gigaoctets sont encore libres selon tous les autres chiffres du panel est l'une des erreurs les plus déroutantes qu'un serveur puisse produire — parce que ce qui a réellement manqué n'a jamais été des gigaoctets pour commencer.
Ce qu'est vraiment un inode
Un système de fichiers suit deux choses séparées : combien d'octets sont stockés, et combien de fichiers individuels existent. Chaque fichier et dossier, quelle que soit sa taille, consomme exactement un inode — la structure contenant ses métadonnées (permissions, propriétaire, emplacement sur disque, horodatages). Un système de fichiers est créé avec un nombre fixe d'inodes disponibles, dimensionné pour un mélange typique de tailles de fichiers. Un serveur qui génère des quantités énormes de petits fichiers — journaux par joueur, un fichier par message de chat, des milliers de petits rapports de plantage — peut épuiser ce nombre fixe d'inodes en utilisant presque rien de son quota de stockage réel, car le nombre d'inodes dépend du nombre de fichiers existants, pas de leur poids.
Quota de stockage contre nombre d'inodes
| Mesure | Épuisé par | |
|---|---|---|
| Quota en Go | Octets totaux stockés | Quelques gros fichiers, ou beaucoup de moyens |
| Nombre d'inodes | Nombre total de fichiers et dossiers | Des quantités énormes de petits fichiers, quel que soit leur poids combiné |
Trouver ce qui les a consommés
- Vérifiez d'abord le dossier
/logsUne extension ou le serveur lui-même journalisant excessivement, ou une boucle de plantage écrivant un nouveau rapport à chaque redémarrage, est de loin la cause la plus fréquente.
- Cherchez une extension qui écrit un fichier par joueur ou par événement
Certaines extensions de données ou de statistiques mal conçues créent un nouveau petit fichier par joueur au lieu d'utiliser une seule base de données ou un petit nombre de fichiers — cela fait grimper le nombre de fichiers avec l'activité des joueurs bien plus vite que le stockage.
- Supprimez plutôt que vider
Vider le contenu d'un fichier ne libère pas son inode ; le fichier lui-même existe toujours comme entrée. Il faut retirer le fichier entièrement.
L'erreur disparaît immédiatement après suppression des fichiers fautifs, sans attendre de synchronisation : le nombre d'inodes se met à jour dès qu'un fichier est réellement supprimé.