2010-03-09 09:55:18 +0000 2010-03-09 09:55:18 +0000
31
31

Как заставить неактивное устройство RAID снова работать?

После загрузки мое устройство RAID1 (0x6 и *) иногда переходит в забавное состояние, и я не могу его смонтировать.

* Первоначально я создал /dev/md_d0, но оно каким-то образом изменилось в /dev/md0.

# mount /opt
mount: wrong fs type, bad option, bad superblock on /dev/md_d0,
       missing codepage or helper program, or other error
       (could this be the IDE device where you in fact use
       ide-scsi so that sr0 or sda or so is needed?)
       In some cases useful info is found in syslog - try
       dmesg | tail or so

Устройство RAID каким-то образом оказывается неактивным:

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] 
                [raid4] [raid10] 
md_d0 : inactive sda4[0](S)
      241095104 blocks

# mdadm --detail /dev/md_d0
mdadm: md device /dev/md_d0 does not appear to be active.

Вопрос в том, как сделать устройство снова активным (используя /dev/md_d0, я полагаю)?

(В других случаях все в порядке (активно) после загрузки, и я могу смонтировать его вручную без проблем. Но оно все равно не будет монтироваться автоматически, несмотря на то, что у меня оно есть в mdmadm:

/dev/md_d0 /opt ext4 defaults 0 0

Так что бонусный вопрос: что я должен сделать, чтобы RAID устройство автоматически монтировалось в /etc/fstab во время загрузки? )

Это рабочая станция Ubuntu 9.10. Справочная информация о моей настройке RAID в этом вопросе .

Правка : Мои /opt выглядят так. Я никогда не прикасался к этому файлу, по крайней мере, вручную.

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR <my mail address>

# definitions of existing MD arrays

# This file was auto-generated on Wed, 27 Jan 2010 17:14:36 +0200

В /etc/mdadm/mdadm.conf последней записью является /proc/partitions по крайней мере сейчас, после перезагрузки, когда устройство снова активно. (Я не уверен, что это будет то же самое, когда он неактивен.) 0x2 и 0x2 и Разрешение : как [ Джимми Хедман предложил ]0x3 и, я взял выход 0x6 &:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=de8fbd92[...]

и добавил его в md_d0, что, похоже, исправило основную проблему. После изменения mdadm --examine --scan на использование /etc/mdadm/mdadm.conf снова (вместо /etc/fstab), RAID-устройство также монтируется автоматически!

Ответы (9)

25
25
25
2010-03-10 12:34:08 +0000

Для твоего бонусного вопроса:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf
11
11
11
2011-08-01 02:41:23 +0000

Я обнаружил, что мне нужно добавить массив вручную в /etc/mdadm/mdadm.conf, чтобы заставить Linux смонтировать его при перезагрузке. В противном случае я получаю именно то, что у вас есть - md_d1-устройства, которые неактивны и т.д.

Conf-файл должен выглядеть так, как показано ниже - т.е. по одной строке ARRAY на каждое md-устройство. В моем случае новые массивы в этом файле отсутствовали, но если они есть в списке, то это, скорее всего, не является исправлением вашей проблемы.

# definitions of existing MD arrays
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d

Добавьте по одному массиву на md-устройство и добавьте их после комментария, включенного выше, или, если такого комментария нет, в конце файла. Вы получаете UUID, делая sudo mdadm -E --scan:

$ sudo mdadm -E --scan
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d

Как видите, вы можете просто скопировать результат сканирования в файл.

Я запустил ubuntu рабочего стола 10.04 LTS, и насколько я помню, такое поведение отличается от серверной версии Ubuntu, однако это было так давно, что я создал свои md-устройства на сервере, что я могу ошибаться. Также может быть, что я просто пропустил некоторый вариант.

В любом случае, добавление массива в conf-файл, кажется, делает трюк. Я запустил указанный выше рейд 1 и рейд 5 в течение многих лет без проблем.

7
7
7
2012-03-21 22:21:47 +0000

предупреждение: Прежде всего, позвольте мне сказать, что нижеприведенное (из-за использования “-силы”) кажется мне рискованным, и если у вас есть невосстановимые данные, я бы порекомендовал сделать копии соответствующих разделов, прежде чем вы начнете пробовать что-либо из нижеприведенного. Однако, это сработало для меня.

У меня была та же проблема, массив оказался неактивным, и ничто из того, что я делал, включая “mdadm –examine –scan >/etc/mdadm.conf”, как предлагали другие здесь, не помогло.

В моём случае, когда он пытался запустить массив RAID-5 после замены диска, он говорил, что он грязный (через dmesg):

md/raid:md2: not clean -- starting background reconstruction
md/raid:md2: device sda4 operational as raid disk 0
md/raid:md2: device sdd4 operational as raid disk 3
md/raid:md2: device sdc4 operational as raid disk 2
md/raid:md2: device sde4 operational as raid disk 4
md/raid:md2: allocated 5334kB
md/raid:md2: cannot start dirty degraded array.

Причина, по которой он показывался как неактивный в /proc/mdstat:

md2 : inactive sda4[0] sdd4[3] sdc4[2] sde4[5]
      3888504544 blocks super 1.2

Я обнаружил, что на всех устройствах были одни и те же события, за исключением диска, который я заменил (/dev/sdb4):

Тем не менее, подробности массива показали, что на нем были доступны 4 из 5 устройств:

[root@nfs1 sr]# mdadm -E /dev/sd*4 | grep Event
mdadm: No md superblock detected on /dev/sdb4.
         Events : 8448
         Events : 8448
         Events : 8448
         Events : 8448

(Вышеуказанное взято из памяти в колонке “Состояние”, я не могу найти его в буфере прокрутки).

я смог это разрешить, остановив массив, а затем снова собрав его:

[root@nfs1 sr]# mdadm --detail /dev/md2
/dev/md2:
[...]
   Raid Devices : 5
  Total Devices : 4
[...]
 Active Devices : 4
Working Devices : 4
[...]
    Number Major Minor RaidDevice State
       0 8 4 0 inactive dirty /dev/sda4
       2 8 36 2 inactive dirty /dev/sdc4
       3 8 52 3 inactive dirty /dev/sdd4
       5 8 68 4 inactive dirty /dev/sde4

В этот момент массив был запущен, работал с 4 из 5 устройств, и я смог добавить заменяющее устройство, и оно восстанавливается. Я смог получить доступ к файловой системе без каких-либо проблем.

5
5
5
2012-04-24 01:29:43 +0000

У меня были проблемы с Ubuntu 10.04, где ошибка в FStab не позволяла серверу загрузиться.

я выполнил эту команду, как упоминалось в вышеприведенных решениях:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Это добавит результаты из “mdadm –examine –scan” в “/etc/mdadm/mdadm.conf”

В моем случае это было:

ARRAY /dev/md/0 metadata=1.2 UUID=2660925e:6d2c43a7:4b95519e:b6d110e7 name=localhost:0

Это фальшивый 0. Моя команда в /etc/fstab для автоматического монтажа:

/dev/md0 /home/shared/BigDrive ext3 defaults,nobootwait,nofail 0 0

Важно то, что у вас есть “nobootwait” и “nofail”. Nobootwait пропустит любые системные сообщения, которые препятствуют вашей загрузке. В моем случае это было на удаленном сервере, поэтому это было необходимо.

Надеюсь, это поможет некоторым людям.

2
2
2
2010-03-09 10:46:27 +0000

Вы можете активировать md-устройство с помощью

mdadm -A /dev/md_d0

Я полагаю, что какой-то скрипт запуска начнется слишком рано, до того, как один из членов RAID будет обнаружен или возникнет какая-то подобная проблема. В качестве быстрого и грязного обходного пути, вы должны быть в состоянии добавить эту строку в /etc/rc.local :

mdadm -A /dev/md_d0 && mount /dev/md_d0

Правка : видимо ваш /etc/mdadm/mdadm.conf все еще содержит старое имя конфигурации. Отредактируйте этот файл и замените случайные совпадения md0 на md_d0.

2
2
2
2011-08-15 01:56:27 +0000

У меня была похожая проблема… мой сервер не монтировал md2 после того, как я отрастил разделы устройств. Читая эту статью, я обнаружил, что устройство md2 RAID имеет новый и nbsp;UUID, а машина пыталась использовать старый.

Как и предполагалось… используя вывод ‘md2’ из

mdadm --examine --scan

я отредактировал /etc/mdadm/mdadm.conf и заменил старый UUID строку на один вывод из вышеприведенной команды, и моя проблема ушла в прошлое.

2
2
2
2010-03-10 13:14:14 +0000

md_d0 : inactive sda4[0](S) выглядит неправильно для массива RAID1. Похоже, что в массиве нет активных устройств и есть одно запасное устройство (обозначается буквой (S), для неисправного устройства - буквой (F), для активного устройства - буквой (OK/active device) - для неработающего массива RAID1 должно быть как минимум два активных устройства (а для неисправного массива - как минимум одно активное устройство), и вы не можете активировать массив RAID1 без неработающих неработающих устройств (так как запасные устройства не содержат копии данных до тех пор, пока они не станут активными, когда другой диск не выйдет из строя). Если я считаю, что /proc/mdstat выводится правильно, то вы не сможете активировать массив в его текущем состоянии.

Есть ли у вас в машине физические диски, которые не раскрутились? ls /dev/sd* Перечисляет ли 0x6& все диски и разделы, которые вы обычно ожидаете увидеть на этой машине?

2
2
2
2012-11-26 21:43:18 +0000

Когда вы притворяетесь, что что-то делаете с /dev/md[012346789} оно переходит на /dev/md{126,127...}./dev/md0 и продолжает монтироваться на /dev/md126 или /dev/md127, вы должны это сделать:

устанавливают /dev/md127 или устанавливают /dev/md126.

Это временно, чтобы позволить вам выполнять команды и некоторые приложения без остановки вашей системы.

2
2
2
2017-02-14 23:24:17 +0000

Простой способ заставить массив работать в предположении отсутствия аппаратных проблем и наличия достаточного количества дисков/разделов для запуска массива заключается в следующем:

md20 : inactive sdf1[2](S)
      732442488 blocks super 1.2

 sudo mdadm --manage /dev/md20 --run

Может быть, по какой-то причине массив в порядке, но что-то помешало ему запуститься или собраться. В моем случае это было из-за того, что mdadm не знал, что первоначальное имя массива - md127, и все диски были отключены для этого массива. При репликации мне пришлось собирать массив вручную (вероятно, это ошибка, при которой mdadm думал, что массив уже активен из-за старого автономного имени массива).

Похожие вопросы

6
10
5
37
3