LINUX.ORG.RU
ФорумAdmin

Программный RAID в Linux


0

0

Ситуация: ОС CentOS 5.1, есть 2 HDD, на них симметричные Software RAID разделы, из них были собраны /dev/md0, /dev/md1, /dev/md2. При загрузке с Live CD да данной машине raid - устройства были инициализированы как /dev/md125, /dev/md126, /dev/md127. После этого ОС CentOS 5.1 (расположенная на дисках с SRAID) перестала загружаться из-за того, что /dev/md1 стал /dev/md126.

Отсюда вопросы:
1)Где вообще хранится информация о том, какое должно быть имя raid - устройства и почему они так легко сбиваются? Было бы логично, чтобы /dev/md1 был /dev/md1 при загрузке с любой ОС, если конечно в ней /dev/md1 не занято.

2)Как восстановить имя /dev/md1 в родной ОС (в консоли восстановления) без риска повреждения данных? В консоли восстановления мне доступна mdadm и можно удалить raid устройство и создать его заново под новым именем, но не повредятся ли данные на нем?

Заранее благодарен за любую информацию


Ответ на: комментарий от markevichus

вот здесь как раз и непонятки: если я загружаюсь с md2 = /, то
/etc/(mdadm/)mdadm.conf находится на md2. Получается, что информация о том что md2 - это md2 находится на самом md2. Замкнутый круг... Как же тогда происходит загрузка с SRAID?

mvi ()
Ответ на: комментарий от mvi

1. Загружается ядро
2. Загружаются драйверы блочных устройств
3. Загружаютсядрайверы SOFT-RAID
4. Блочные устройства сканируются на предмет разделов типа RAID Autodetect
5. На основании найденых данных, собираются массивы в md0/1/2/3/... При этом в суперблоке массива может быть указано на какой minor собирается каждый из массивов, то есть можно зафиксировать кто будет md0, кто md1, кто md2 и так далее
6. Выбирается устройство которое является корневой ФС (на основании параметра root=... отданного загрузчиком ядру). Устройство можно указать не только как /dev/xyzNM, но и через UUID или метку файловой системы, лежащей на устройстве
7. Монтируется корневая ФС
8. Стартует /bin/init, а в остальном магии больше нет

Nastishka ★★★★★ ()
Ответ на: комментарий от Nastishka

Я правильно понял, что принадлежность раздела RAID Autodetect к определенному md задаётся в суперблоке этого RAID Autodetect? А mdadm редактирует суперблок?
То есть если я сделаю так:
cat /proc/mdadm

mdadm --stop /dev/mdXXX

mdadm --assemble /dev/mdXX /dev/sdYY /dev/sdZZ ....

то в суперблоке пропишется нужный мне md?

mvi ()
Ответ на: комментарий от x3al

сейчас подключил оба диска к другой linux машине, там выполнил:
mdadm --assemble /dev/md1 /dev/sdb2 /dev/sdc2

после этого вернул на основную и все заработало. Это показывает, что mdadm поменял суперблоки, иначе как бы исходная машина увидела правильный md? Если бы mdadm поменял загрузчик, то поменял бы загрузчик HDD другой машины и никак не повлиял бы на загрузчик этих 2 дисков

mvi ()
Ответ на: комментарий от mvi

> принадлежность раздела RAID Autodetect к определенному md задаётся в суперблоке этого RAID Autodetect?

Может задаваться. А может и не задаваться.

Nastishka ★★★★★ ()

Не проще в grub'e и /etc/fstab прописать ФС по LABEL or UUID?

sdio ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.