web-dev-qa-db-fra.com

Comment forcer Mdadm à arrêter le tableau RAID5?

J'ai /dev/md127 RAID5 Tableau composé de quatre lecteurs. J'ai réussi à chaud les supprimer de la matrice et actuellement /dev/md127 n'a pas de lecteurs:

cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdd1[0] sda1[1]
      304052032 blocks super 1.2 [2/2] [UU]

md1 : active raid0 sda5[1] sdd5[0]
      16770048 blocks super 1.2 512k chunks

md127 : active raid5 super 1.2 level 5, 512k chunk, algorithm 2 [4/0] [____]

unused devices: <none>

et

mdadm --detail /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Thu Sep  6 10:39:57 2012
     Raid Level : raid5
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
  Used Dev Size : 2930134016 (2794.39 GiB 3000.46 GB)
   Raid Devices : 4
  Total Devices : 0
    Persistence : Superblock is persistent

    Update Time : Fri Sep  7 17:19:47 2012
          State : clean, FAILED
 Active Devices : 0
Working Devices : 0
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       0        0        1      removed
       2       0        0        2      removed
       3       0        0        3      removed

J'ai essayé de faire mdadm --stop /dev/md127 mais:

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

Je me suis assuré que c'est démontré, umount -l /dev/md127 et confirmé qu'il est en effet démontré:

umount /dev/md127
umount: /dev/md127: not mounted

J'ai essayé de zéro Superblock de chaque lecteur et je reçois (pour chaque lecteur):

mdadm --zero-superblock /dev/sde1
mdadm: Unrecognised md component device - /dev/sde1

Voici la sortie de lsof | grep md127:

lsof|grep md127
md127_rai  276       root  cwd       DIR                9,0          4096          2 /
md127_rai  276       root  rtd       DIR                9,0          4096          2 /
md127_rai  276       root  txt   unknown                                             /proc/276/exe

Que puis-je faire d'autre? LVM n'est même pas installé, il ne peut donc pas être un facteur.


Après beaucoup de piquer, j'ai enfin trouvé ce qui m'empêtait d'arrêter le tableau. C'était un processus Samba. Après le service SMBD STOP, j'ai pu arrêter le tableau. C'est étrange cependant parce que bien que la matrice ait été montée et partagée via Samba à un moment donné, lorsque j'ai essayé de l'arrêter, c'était déjà démonté.

10
matt

Je me rends compte que c'est une question ancienne et l'affiche originale croyait que Samba était la question, mais j'ai connu le même problème exact et penser que très probablement le problème n'était pas Samba (je n'ai même pas de samba), car il n'a pas fait 't apparaît dans la sortie lsof, mais l'utilisateur était déjà dans le répertoire du point de montage RAID lorsqu'il est passé à root ou a fait un sudo.

Dans mon cas, le problème était que j'ai commencé ma coquille racine lorsque mon utilisateur habituel était dans un répertoire situé sur ce lecteur monté /dev/md127.

user1@comp1:/mnt/md127_content/something$ su -
root@comp1:~# umount /dev/md127
umount: /dev/md127: target is busy

Voici la sortie de lsof dans mon cas:

root@comp1:root@comp1:~# 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 procédé sauf [md127_raid1], Je ne pouvais pas démonter /dev/md127. Et tandis que umount -l /dev/md127 Cache /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 est affichée. :

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 à ceux qui sont toujours dans un répertoire sur ce lecteur. Surtout, vérifiez si la coque de racine que vous utilisez a été démarrée lorsque le répertoire actuel de votre utilisateur habituel était sur ce lecteur. Passer à ce shell utilisateur (peut-être juste exit votre racine doit), déplacez-vous ailleurs, et umount et mdadm --stop Travaillera:

root@comp1:~# exit
user1@comp1:/mnt/md127_content/something$ cd /
user1@comp1:/$ su -
root@comp1:~# umount /dev/md127
root@comp1:~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127
7
sd1074

Si vous utilisez LVM sur MDADM, Parfois, LVM ne supprimera pas les périphériques de mapper du périphérique 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. Regarder dans /dev/mapper/. Outre le fichier control, il devrait y avoir un périphérique de mapper de périphérique nommé d'après votre groupe de volumes, par ex. VolGroupArray-name.
  3. Cours Sudo dmsetup remove VolGroupArray-name (substitut VolGroupArray-name avec le nom du périphérique de mapper du périphérique).
  4. Vous devriez maintenant pouvoir courir Sudo mdadm --stop /dev/md0 (ou quel que soit le nom du périphérique mdadm est).
7
Vladimir Panteleev

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

Tout a entraîné:

# 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éparé pour moi, il se souvenait que c'était une partition de swap - alors je devais juste avoir à swapoff /dev/md2 - Cela m'a permis de mdadm --stop /dev/md2 avec succès.

1
bcrook88