2

Я недавно обновил сервер с Fedora 6 до Fedora 14. В дополнение к основному жесткому диску, на котором установлена ОС, у меня есть 3 жестких диска по 1 ТБ, настроенных для RAID5 (через программное обеспечение). После обновления я заметил, что один из жестких дисков был удален из массива raid. Я попытался добавить его обратно с помощью mdadm --add, но он просто вставил его как запасной. Я подумал, что вернусь к этому позже.

Затем при выполнении перезагрузки система вообще не смогла подключить массив raid. Я удалил его из fstab, чтобы я мог загрузить систему, и теперь я пытаюсь восстановить массив raid.

Я запустил следующее:

mdadm --create /dev/md0 --assume-clean --level=5 --chunk=64 --raid-devices=3 missing /dev/sdc1 /dev/sdd1

Я знаю, что размер моего чанка составляет 64 КБ, и "отсутствует" для диска, который был выгружен из массива (/dev/sdb1).

Похоже, это сработало, и mdadm сообщает, что массив работает «чисто, поврежден» с отсутствующим диском.

Тем не менее, я не могу смонтировать raid массив. Когда я пытаюсь:

mount -t ext3 /dev/md0 /mnt/foo

Я получил:

mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

и /var /log /messages показывает:

EXT3-fs (md0): error: can't find ext3 filesystem on dev md0.

У кого-нибудь есть идеи, что попробовать дальше?

2 ответа2

0

я обнаружил, что mdadm --create /dev/md0 --assume-clean будет работать правильно, только если вы используете ту же (или близкую) версию mdadm, которая использовалась для создания исходного массива. Это потому, что они используют разные смещения для данных и метаданных, даже если одна и та же версия суперблока (например, 1.2)

Проблема в том, что вывод mdadm всегда говорит, что это воссозданный массив, но данные, содержащиеся в /dev /md0, будут неправильными.

например, использование последней версии mdadm 3.3.2 или даже предыдущей версии 3.2.5 не сработало для меня, но откат к mdadm 3.1.4 (который создал массив) работал просто отлично.

Обратите внимание, что я также позаботился о том, чтобы указывать диски в правильном порядке (как подробно описано в mdadm --examine /dev/sd?) при воссоздании массива и использовании оверлейных файлов для всего тестирования (чтобы не увеличивать ущерб), используя инструкции по адресу https://raid.wiki.kernel.org/index.php/Recovering_a_failed_software_RAID

В моем случае проблема была в 6-дисковом RAID5, который был увеличен до 7 дисков, но он вообще не прогрессировал, поэтому был прерван и больше не собирался с mdadm: Failed to restore critical section for reshape, sorry. И --force и --invalid-backup не помогают либо, так что я должен был использовать --create --assume-clean

0

Вы можете есть missing на неправильном положении. Будет работать только правильное положение и missing дисков. Просто беги:

mdadm --examine  /dev/sdb1

Это выведет (среди прочего) информацию о том, какое число в RAID действительно отсутствует. Посмотрите на this строку:

      Number   Major   Minor   RaidDevice State
this     0     253       13        0      active sync   /dev/dm-13

В этом случае это номер 0 (= первое устройство), и он active как мой RAID сейчас подключен. Теперь вы знаете, какой диск должен быть указан как missing .

Но у вас все еще есть 2 варианта: порядок рабочих дисков также может быть изменен. Однако эта информация теряется, потому что она была перезаписана при попытке повторной сборки.

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