6

У меня есть /dev/md127 RAID5 массив, который состоял из четырех дисков. Мне удалось горячим образом удалить их из массива, и в настоящее время /dev/md127 не имеет никаких дисков:

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>

а также

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

Я пытался сделать mdadm --stop /dev/md127 но:

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

Я убедился, что он размонтирован, umount -l /dev/md127 и подтвердил, что он действительно размонтирован:

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

Я попытался обнулить суперблок каждого диска, и я получаю (для каждого диска):

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

Вот вывод 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

Что еще я могу сделать? LVM даже не установлен, поэтому он не может быть фактором.


После долгих прогулок я наконец нашел то, что мешало мне остановить массив. Это был процесс САМБА. После остановки службы smbd мне удалось остановить массив. Это странно, потому что хотя массив был подключен и совместно использовался через SAMBA в какой-то момент времени, когда я пытался остановить его, он уже был отключен.

3 ответа3

5

Я понимаю, что это старый вопрос, и оригинальный постер полагал, что проблема была в SAMBA, но я столкнулся с той же самой проблемой и думаю, что, скорее всего, проблема была не в SAMBA (на самом деле у меня даже нет SAMBA), поскольку не отображается в выводе lsof , но пользователь уже находился в каталоге точки монтирования RAID, когда переключался на root или делал sudo.

В моем случае проблема заключалась в том, что я запускал свою корневую оболочку, когда мой обычный пользователь находился в каталоге, расположенном на этом смонтированном диске /dev/md127 .

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

Вот вывод lsof в моем случае:

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

Хотя lsof | grep md125 не показывал никаких процессов, кроме [md127_raid1] , я не мог размонтировать /dev/md127 . И хотя umount -l /dev/md127 скрывает /dev/md127 из выходных данных mount , диск, по-видимому, все еще занят, и при mdadm --stop /dev/md127 та же ошибка:

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

РЕШЕНИЕ простое: проверьте, есть ли в системе пользователи, которые все еще находятся в каталоге на этом диске. В частности, проверьте, запускалась ли используемая вами корневая оболочка, когда на этом диске находился каталог текущего пользователя. Переключитесь на эту пользовательскую оболочку (возможно, просто exit корневого каталога ), переместитесь куда-нибудь еще, и сработают umount и mdadm --stop :

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
1

Я сталкивался с подобными проблемами, но у меня не было никакого монтированного устройства рейда. Остановка САМБА, похоже, тоже не помогла. lsof ничего не показал.

Все только что привело к:

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

В конце концов я решил, что это был раздел подкачки - поэтому мне просто нужно было swapoff /dev/md2 - это позволило мне успешно выполнить mdadm --stop /dev/md2 .

1

Если вы используете LVM поверх mdadm, иногда LVM не удаляет устройства Device Mapper при деактивации группы томов. Вы можете удалить его вручную.

  1. Убедитесь, что в выводе sudo vgdisplay .
  2. Посмотри в /dev/mapper/ . Помимо control файла, должно быть устройство Device Mapper, названное в честь вашей группы томов, например VolGroupArray-name .
  3. Запустите sudo dmsetup remove VolGroupArray-name (заменив VolGroupArray-name именем устройства сопоставления устройств).
  4. Теперь у вас должна быть возможность запустить sudo mdadm --stop /dev/md0 (или любое другое имя устройства mdadm ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .