GNU/Linux >> Tutoriels Linux >  >> Linux

Comment forcer mdadm à arrêter la matrice RAID5 ?

Je me rends compte qu'il s'agit d'une vieille question et l'affiche originale pensait que SAMBA était le problème, mais j'ai rencontré exactement le même problème et je pense que très probablement le problème n'était pas SAMBA (je n'ai même pas SAMBA), car il n'a pas n'apparaît pas dans le lsof sortie, mais plutôt l'utilisateur était déjà dans le répertoire du point de montage RAID lorsqu'il est passé à la racine ou a fait un sudo.

Dans mon cas, le problème était que j'ai démarré mon shell root alors que mon utilisateur habituel se trouvait dans un répertoire situé sur ce /dev/md127 monté conduire.

[email protected]:/mnt/md127_content/something$ su -
[email protected]:~# umount /dev/md127
umount: /dev/md127: target is busy

Voici la sortie de lsof dans mon cas :

[email protected]:[email protected]:~# lsof | grep /dev/md127
md127_rai  145            root  cwd       DIR      253,0     4096          2 /
md127_rai  145            root  rtd       DIR      253,0     4096          2 /
md127_rai  145            root  txt   unknown                                /proc/145/exe

Même si lsof | grep md125 n'a montré aucun processus sauf [md127_raid1] , je n'ai pas pu démonter /dev/md127 . Et tandis que umount -l /dev/md127 masque /dev/md127 à partir de la sortie de mount , le lecteur est apparemment toujours occupé, et lorsque mdadm --stop /dev/md127 est tenté, la même erreur s'affiche :

mdadm: Cannot get exclusive access to /dev/md127:Perhaps a running process, mounted filesystem or active volume group?

SOLUTION est simple :vérifiez s'il y a des utilisateurs connectés qui se trouvent encore dans un répertoire sur ce lecteur. En particulier, vérifiez si le shell root que vous utilisez a été démarré lorsque le répertoire actuel de votre utilisateur habituel se trouvait sur ce lecteur. Passez au shell de cet utilisateur (peut-être juste exit votre racine doit), déplacer ailleurs, et umount et mdadm --stop fonctionnera :

[email protected]:~# exit
[email protected]:/mnt/md127_content/something$ cd /
[email protected]:/$ su -
[email protected]:~# umount /dev/md127
[email protected]:~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127

Si vous utilisez LVM au-dessus de mdadm, parfois LVM ne supprimera pas les périphériques Device Mapper lors de la désactivation du groupe de volumes. Vous pouvez le supprimer manuellement.

  1. Assurez-vous qu'il n'y a rien dans la sortie de sudo vgdisplay .
  2. Regardez dans /dev/mapper/ . Mis à part le control fichier, il devrait y avoir un périphérique Device Mapper nommé d'après votre groupe de volumes, par ex. VolGroupArray-name .
  3. Exécutez sudo dmsetup remove VolGroupArray-name (en remplaçant VolGroupArray-name avec le nom de l'appareil Device Mapper).
  4. Vous devriez maintenant pouvoir exécuter sudo mdadm --stop /dev/md0 (ou quel que soit le nom du mdadm l'appareil est).

Je rencontrais des problèmes similaires, mais je n'avais pas monté le périphérique RAID de quelque manière que ce soit. Arrêter SAMBA n'a pas semblé aider non plus. lsof n'a rien montré.

Tout a abouti à :

# mdadm --stop /dev/md2
mdadm: Cannot get exclusive access to /dev/md2:Perhaps a running process, mounted filesystem or active volume group?

Ce qui m'a finalement résolu le problème, c'est de me souvenir qu'il s'agissait d'une partition de swap - je n'avais donc qu'à swapoff /dev/md2 - cela m'a permis de mdadm --stop /dev/md2 avec succès.


Linux
  1. Comment remplacer un disque dur défaillant dans un RAID logiciel Linux

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Quand utiliser /dev/random contre /dev/urandom ?

  4. Comment désactiver complètement un Cronjob vers /dev/null/?

  5. CentOS / RHEL :Comment supprimer un miroir avec mdadm

Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

Comment mapper les périphériques /dev/sdX et /dev/mapper/mpathY à partir du périphérique /dev/dm-Z

Comment encoder en base64 /dev/random ou /dev/urandom ?

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Comment remplacer en toute sécurité un disque pas encore défaillant dans une matrice Linux RAID5 ?

noyau :désactiver /dev/kmem et /dev/mem