1 votes

Devrais-je exécuter fstrim dans un conteneur ?

Si je cours fstrim dans un conteneur Docker, j'obtiens des erreurs concernant des fichiers montés sur l'hôte ( ?) qui ne sont pas disponibles. not a directory .

$ docker run -ti -v tmp:/tmp2 ubuntu:16.04 /sbin/fstrim --all
fstrim: /etc/hosts: not a directory
fstrim: /etc/hostname: not a directory
fstrim: /etc/resolv.conf: not a directory
fstrim: /tmp2: FITRIM ioctl failed: Operation not permitted

Je suppose que c'est parce que le conteneur n'est pas privilégié . (au moins le FITRIM ioctl failed erreur)

J'ai découvert cela en installant cron sur une nouvelle ubuntu:16.04 conteneur (je sais que cela viole la philosophie du "processus unique" - c'est une autre discussion) Mais l'image par défaut a /etc/cron.weekly/fstrim donc une fois que vous avez installé cron, fstrim commence à fonctionner chaque semaine et cron m'envoie les erreurs par email.

Devrais-je courir fstrim dans un conteneur ?

Je suis toujours en train d'envelopper ma tête autour aufs et toutes les pages que j'ai trouvées sur fstrim parler des SSD et de la récupération de l'espace libre.
Est-ce que tout cela s'applique dans un conteneur ? La tâche cron fstrim de l'hôte ne s'occupera-t-elle pas de tout ? Dois-je supprimer la tâche cron du conteneur ou est-ce un bug de Docker ?

edit : system info :

$ uname -sri; docker --version
Linux 4.4.0-53-generic x86_64
Docker version 1.12.3, build 6b644ec

1voto

Michael Hampton Points 232226

fstrim n'a absolument aucun sens à l'intérieur d'un conteneur.

Le point de fstrim consiste à démapper le stockage inutilisé sur le magasin de sauvegarde, qu'il s'agisse d'un SSD local ou d'un stockage SAN à provisionnement fin monté via iSCSI, FibreChannel, ou autre. Un tel processus doit être exécuté sur l'hôte, plutôt que dans un conteneur.

Les erreurs spécifiques que vous voyez sont dues à fstrim tente d'appeler l'ioctl FITRIM sur chaque point de montage, et les points de montage à l'intérieur d'un conteneur ne correspondent pas aux périphériques de bloc réels que l'hôte utilise. Ceci est généralement vrai même si le conteneur est privilégié.

Pourquoi Ubuntu met fstrim dans une image de conteneur est un mystère complet. Si vous êtes coincé avec les conteneurs Ubuntu, je vous suggère de désactiver cette tâche cron.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X