Table des matières

2024/06/24 : manque d'inodes sur le volume docker de pica02

Diagnostic

Des services sur pica02 tombent aléatoirement dès le 15 juin. Toute commande docker sort une erreur.

Error response from daemon: Cannot restart container wekan-app: mkdir /var/lib/docker/overlay2/221c1141917984357a7c983f2022f1e372195722ead0f42aa00b82458f5c29a2/merged: no space left on device

L’espace disque ne semble pas saturé par un simple df. Après un docker system prune -a le problème persiste, de l’espace disque est donc tout de même ajouté et la machine est redémarrée. Le problème est temporairement résolu.

Le problème refait surface 2 semaines plus tard le 25 juin. L’espace disque ne semble toujours pas saturé avec un simple df, mais un df -i indique une utilisation des inodes à 100%.

Résolution

Il n’est pas possible d’augmenter le nombre d’inodes d’une partition déjà créée. Il faut donc créer une nouvelle partition, ce qui implique une interruption des services le temps des opérations.

À 19h, les services sont coupés (docker compose down), tout ce qui est superflu est supprimé (conteneurs, réseaux, images et cache de construction) avec un docker system prune -a et le démon docker est éteint (systemctl stop docker.socket docker.service). Les données sont copiées vers un endroit disposant d’assez de place pour les garder intactes le temps des opérations (ici le dossier correspondant à Garage) cp -a /var/lib/docker /DATA/garage/.

Il faut ensuite démonter le FS umount /dev/mapper/vg00-docker, le supprimer wipefs -a /dev/mapper/vg00-docker et en recréer un nouveau (le choix est fait de baisser le quota de blocs réservés) mkfs.ext4 -m2 /dev/mapper/vg00-docker. On peut enfin remonter le volume mount -a et redémarrer les services un à un (en commençant par traefik docker compose up -d).

Nous avons également pris la peine de supprimer les volumes superflus après la fin des opérations (docker system prune -a --volumes) car ça peut être la source d’une utilisation élevée d’inodes.

Actions futures

Il peut être une bonne idée d’ajouter des alertes sur l’utilisation des inodes.