GNU/Linux >> Znalost Linux >  >> Linux

Jak přinutit mdadm zastavit pole RAID5?

Uvědomuji si, že toto je stará otázka a původní plakát se domníval, že problémem je SAMBA, ale zažil jsem přesně stejný problém a myslím si, že velmi pravděpodobně problém nebyl SAMBA (ve skutečnosti ani SAMBU nemám), protože to nebylo Nezobrazuje se v lsof výstup, ale uživatel už byl v adresáři přípojného bodu RAID, když přešel na root nebo provedl sudo.

V mém případě byl problém v tom, že jsem spustil svůj root shell, když byl můj běžný uživatel v adresáři umístěném na připojeném /dev/md127 řídit.

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

Zde je výstup lsof v mém případě:

[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

I když lsof | grep md125 neukázal žádné procesy kromě [md127_raid1] , nemohl jsem odpojit /dev/md127 . A zatímco umount -l /dev/md127 skrývá /dev/md127 z výstupu mount , disk je zřejmě stále zaneprázdněn, a když je mdadm --stop /dev/md127 pokusu, zobrazí se stejná chyba:

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

ŘEŠENÍ je jednoduché:zkontrolujte, zda jsou přihlášeni nějací uživatelé, kteří jsou stále v adresáři na tomto disku. Zejména zkontrolujte, zda byl kořenový shell, který používáte, spuštěn, když byl aktuální adresář vašeho běžného uživatele na této jednotce. Přepněte na tento uživatelský shell (možná jen exit váš root by měl), přesunout se někam jinam a umount a mdadm --stop bude fungovat:

[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

Pokud používáte LVM nad mdadm, někdy LVM neodstraní zařízení Mapovač zařízení při deaktivaci skupiny svazků. Můžete jej odstranit ručně.

  1. Ujistěte se, že ve výstupu sudo vgdisplay není nic .
  2. Podívejte se do /dev/mapper/ . Kromě control by mělo být zařízení Device Mapper pojmenované podle vaší skupiny svazků, např. VolGroupArray-name .
  3. Spustit sudo dmsetup remove VolGroupArray-name (nahrazení VolGroupArray-name s názvem zařízení Mapovač zařízení).
  4. Nyní byste měli být schopni spustit sudo mdadm --stop /dev/md0 (nebo jakkoli název mdadm zařízení je).

Potýkal jsem se s podobnými problémy, ale neměl jsem nájezdové zařízení žádným způsobem namontované. Zdá se, že ani zastavení SAMBY nepomohlo. lsof neukázal nic.

Vše vyústilo v:

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

To, co mi to nakonec vyřešilo, bylo to, že jsem si vzpomněl, že se jedná o swapovací oddíl - takže jsem prostě musel swapoff /dev/md2 - to mi umožnilo mdadm --stop /dev/md2 úspěšně.


Linux
  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. CentOS / RHEL :Jak odstranit zrcadlo pomocí mdadm

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak Linux používá /dev/tty a /dev/tty0

  1. echo nebo print /dev/stdin /dev/stdout /dev/stderr

  2. Proč jsou < nebo > vyžadovány pro použití /dev/tcp

  3. mdadm mdadm:nelze otevřít /dev/sda1:Zařízení nebo prostředek je zaneprázdněn