web-dev-qa-db-fra.com

Dispositif ou ressource u sur mesure occupé; Déjà essayé: mont, lsof, fuser, exportfs, ps axf

Dans le cadre d'un automated VM Système de création, un périphérique de blocage est monté sur un dossier temporaire (/ TMP/autre). Différents scripts installent et configurent le VM avant C'est la première course.

Récemment, quelque chose a changé, le montage temporaire est occupé et refuse d'oublier. En essayant de déterminer ce qui pourrait toujours garder un fichier ouvert, j'ai vérifié:

Les tests fonctionnent en tant que root

  • mount
  • lsof | GREP/TMP /
  • fuser -M/TMP/...
  • exportsfs -rv -rv
  • Redémarrez le démon qui dirige les scripts de création de toute façon ...
  • pS AXF
  • table dmsetup
  • lOSETUP -A
  • fuser -vm /tmp/tmp.random-chars/ (donne deux lignes)
    • Commande d'accès PID utilisateur
    • /tmp/tmp.random-chars: monteau de noyau root /tmp/tmp.random-chars

Aucun des tests ci-dessus n'a de résultats qui pointent sur une utilisation du système de fichiers, cependant, Umount -f se plaint toujours "Device ou ressource occupé"/"Le périphérique est occupé".

Quels autres tests devrais-je essayer de manière à ce que je puisse accéder à la cause de la racine véritable et que je puisse ainsi réparer la monture bloquée sans redémarrer sur un système que je ne peux pas redémarrer un certain temps et empêcher cela de se reproduire?

C'est aussi/douteux/(mais je ne sais pas comment vérifier) ​​que les modules de noyau de la monture temporaire sont chargés, car le montage temporaire a une version différente de Linux installée que l'hôte est en cours d'exécution.

modifications

  • À partir de divers résultats de recherche, il apparaît que/les modules/sont simplement lus en mémoire. Je ne suis pas au courant de si le noyau pourrait avoir des fichiers ouverts et sur la manière d'accéder à une telle liste.
  • Ajouté le dmsetup/perplexe dans les listes de "tests qui ne montrent pas de problèmes"
  • fuser -VM comme suggéré à Freeenode ## Linux
6
Michael J. Evans

Si cela fait partie d'un processus de construction, je suppose que vous devez redémarrer à un moment donné. Essayez d'insérer un démontage "paresseux" dans le processus. Utilisation umount -l /tmp Et voyez si cela vous aide à dépasser cette barrière dans le processus.

6
ewwhite

Nous avons eu le même problème, mais il semble que cela ne se produit que si le système de fichiers racine de la machine virtuelle est ext4. EXT3 fonctionne correctement. Je sais que cela semble étrange mais cela pourrait être un bug de noyau décrit dans http://www.phoronix.com/scan.php?page=news_item&px=mtixndq

Si tel est le cas, nous devons simplement attendre le patch du noyau OR _ Évitez d'installer de nouveaux VM dans la machine principale. L'installer à partir d'une exécution de Linux temporaire lorsque la machine virtuelle fonctionne correctement car la machine est redémarrée sans redémarrer la machine principale.

Avez-vous essayé ext3? Sinon, essayez d'installer à ext3, vous pouvez le convertir à EXT4 plus tard si vous utilisez EXT4 est crucial (et il est décrit dans http://www.debian-administration.org/article/643/migrature_a_ext3_to_ext4_fileSystem ) ==) ==) ==) ==) ==) ==) ==) ==) ==).

0
ChewbaccaKL

Une des raisons umount peut échouer est si l'adresse IP sous-jacente du périphérique distant a changé.

J'ai vu cela arriver lorsque je monte à distance un ordinateur portable à partir de mon serveur de bureau. Le premier montage a lieu avec une adresse IP A. Bien que le redémarrage de l'ordinateur portable lui donne une adresse B, mon bureau continue d'enregistrer l'adresse A comme adresse de l'ordinateur portable. Je peux voir cela lorsque j'examine l'adresse IP renvoyée par la commande mount et la comparant avec l'adresse actuelle de l'ordinateur portable.

  • J'ai pu démonter à l'aide de umount -l
  • La solution à ce problème était - pour moi - d'utiliser une adresse IP fixe pour l'ordinateur portable
0
Moshe Yudkowsky