GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man mdadm zwingen, das RAID5-Array zu stoppen?

Mir ist klar, dass dies eine alte Frage ist und der ursprüngliche Poster glaubte, dass SAMBA das Problem war, aber ich hatte genau dasselbe Problem und denke, dass das Problem sehr wahrscheinlich nicht SAMBA war (ich habe eigentlich nicht einmal SAMBA), da dies der Fall war nicht in lsof auftauchen ausgegeben, sondern der Benutzer befand sich bereits im RAID-Mount-Point-Verzeichnis, als er zu root wechselte oder ein sudo ausführte.

In meinem Fall bestand das Problem darin, dass ich meine Root-Shell gestartet habe, als sich mein normaler Benutzer in einem Verzeichnis befand, das sich auf diesem gemounteten /dev/md127 befand fahren.

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

Hier ist die Ausgabe von lsof in meinem Fall:

[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

Obwohl lsof | grep md125 zeigte keine Prozesse außer [md127_raid1] , ich konnte /dev/md127 nicht unmounten . Und während umount -l /dev/md127 verbirgt /dev/md127 aus der Ausgabe von mount , das Laufwerk ist anscheinend noch beschäftigt, und wenn mdadm --stop /dev/md127 versucht wird, wird derselbe Fehler angezeigt:

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

LÖSUNG ist einfach:Überprüfen Sie, ob Benutzer angemeldet sind, die sich noch in einem Verzeichnis auf diesem Laufwerk befinden. Überprüfen Sie insbesondere, ob die von Ihnen verwendete Root-Shell gestartet wurde, als sich das aktuelle Verzeichnis Ihres regulären Benutzers auf diesem Laufwerk befand. Wechseln Sie zu dieser Benutzer-Shell (vielleicht nur exit Ihre Wurzel soll), woanders hingehen und umount und mdadm --stop funktioniert:

[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

Wenn Sie LVM zusätzlich zu mdadm verwenden, löscht LVM manchmal die Device Mapper-Geräte nicht, wenn die Volumengruppe deaktiviert wird. Sie können es manuell löschen.

  1. Stellen Sie sicher, dass die Ausgabe von sudo vgdisplay nichts enthält .
  2. Schauen Sie in /dev/mapper/ nach . Abgesehen von control -Datei sollte ein Device Mapper-Gerät vorhanden sein, das nach Ihrer Volume-Gruppe benannt ist, z. VolGroupArray-name .
  3. Führen Sie sudo dmsetup remove VolGroupArray-name aus (Ersetzen von VolGroupArray-name mit dem Namen des Device-Mapper-Geräts).
  4. Sie sollten jetzt sudo mdadm --stop /dev/md0 ausführen können (oder wie auch immer der Name des mdadm lautet Gerät ist).

Ich hatte ähnliche Probleme, aber ich hatte das Raid-Gerät in keiner Weise montiert. Auch das Anhalten von SAMBA schien nicht zu helfen. lsof nichts angezeigt.

Alles führte einfach zu:

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

Was es schließlich für mich behoben hat, war, mich daran zu erinnern, dass dies eine Swap-Partition war - also musste ich nur swapoff /dev/md2 - das erlaubte mir mdadm --stop /dev/md2 erfolgreich.


Linux
  1. So ersetzen Sie eine ausgefallene Festplatte in einem Linux-Software-RAID

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  4. CentOS / RHEL :So entfernen Sie einen Spiegel mit mdadm

  5. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0

So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

Wie tauscht man /dev/sda mit /dev/sdb aus?

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie kann man eine noch nicht ausgefallene Festplatte in einem Linux-RAID5-Array sicher ersetzen?

Kernel:/dev/kmem und /dev/mem deaktivieren