Создание многораздельного массива raid1 для загрузки системы Debian Squeeze

2

Я хотел бы иметь следующую настройку raid1 (зеркало):

/dev/md0 consists of /dev/sda and /dev/sdb

Я создал это устройство raid1, используя

mdadm --create --verbose /dev/md0 --auto=yes --level=1 --raid-devices=2 /dev/sda /dev/sdb

Это дало предупреждение о метаданных 1.2, и моя система может не загружаться. Я не могу использовать 0,9, потому что он ограничивает размер рейда до 2 ТБ, и я предполагаю, что grub, поставляемый с последним Debian (squeeze), должен быть в состоянии обрабатывать метаданные 1.2.

Итак, я создал необходимые разделы, как это:

# creating new label (partition table)
parted -s /dev/md0 mklabel 'msdos'

# creating partitions
sfdisk -uM /dev/md0 << EOF
0,4096
,1024,S
;
EOF

# making root filesystem
mkfs -t ext4 -L boot -m 0 /dev/md0p1

# making swap filesystem
mkswap /dev/md0p2

# making data filesystem
mkfs -t ext4 -L data /dev/md0p3

Затем я смонтировал корневой раздел, скопировал минимальную установку Debian внутрь и временно смонтировал / dev / proc / sys. После этого я привязался к новой корневой папке и выполнил:

grub-install --no-floppy --recheck /dev/md0

Однако это плохо с:

/ usr / sbin / grub-probe: ошибка: неизвестная файловая система. Автоопределение файловой системы / dev / md0p1 не удалось. Пожалуйста, сообщите об этом вместе с выводом "/ usr / sbin / grub-probe --device-map = / boot / grub / device.map --target = fs -v / boot / grub" для

Я не думаю, что это ошибка в grub (поэтому я еще не сообщал об этом), но моя вина. Поэтому мне действительно интересно, как правильно настроить мой raid1, все, что я до сих пор пробовал, не удалось.

gucki
источник

Ответы:

1

Вы должны установить grub на дисках MBR, а не в / dev / md0, поэтому запустите grub-install /dev/sda ; grub-install /dev/sdb. Эта работа лучше?

Дом
источник
Нет, ошибка остается точно такой же .. :-(
gucki
Хорошо, похоже, ошибка в bugs.debian.org/cgi-bin/bugreport.cgi?bug=613444 . Это должно быть уже исправлено, но у Debian есть версия для брокера ?! :-(
гуки
У squeeze есть 1.98, и эта ошибка исправлена ​​в 1.99-2. так что вы должны создать бэкпорт grub2 ...
ThorstenS
1

Я не думаю, что это хорошая идея создавать разделы на рейде. Лучшим подходом было бы создать разделы на каждом устройстве и затем создать рейды соответственно.

Кроме того, создайте 2 загрузочных раздела одинакового размера (точно так же, как разделы raid должны совпадать по размеру), которые не будут частью raid, и убедитесь, что они точно такие же, чтобы система могла загрузиться с любого из них.

Я также предпочитаю отдельные разделы для обычных мест, таких как / var, / tmp, / usr, / home и т. Д.

Например:

/dev/sd[ab]1 - /boot
/dev/sd[ab]2 - swap
/dev/sd[ab]3 - /
/dev/sda[ab]4 - /usr
/dev/sda[ab]5 - /tmp
/dev/sda[ab]6 - /var
/dev/sda[ab]7 - /home

Создайте рейды из каждого раздела, кроме первого. Например:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[ab]2

и так далее.

Затем назначьте / boot для / dev / sda1 и убедитесь, что MBR сохранена в / dev / sda и / dev / sdb. Как только вся система будет установлена, вы делаете это (bs = 500M сильно ускорит дд, настройте 500M примерно на 2/3 памяти вашей системы):

dd bs=500M if=/dev/sda1 of=/dev/sdb1

Теперь, пока bios будет пытаться загрузиться с любого диска, в случае сбоя одного из дисков система будет автоматически загружаться с другого диска, потому что идентификаторы UUID точно такие же. Не забывайте иногда повторять команду dd, если / boot изменился, скажем, с обновлением ядра.

Вы хотите проверить это, изменив приоритет загрузки BIOS. И если вам повезет, проверьте это, вынув один диск :-)

Это будет работать и с raid10, я сделал это как с raid1, так и с raid10, даже с raid10 с 3 дисками (что на самом деле возможно с mdadm).

Кстати, вы должны использовать загрузочный раздел, который не является частью рейда, потому что иначе ваша система не сможет загрузиться. Должен быть способ запуска рейда, и, поскольку это мягкий страх, сначала нужно загрузить ядро ​​для того, чтобы рейд был повторен.

aseq
источник
1
На самом деле было бы очень хорошо иметь разделенный RAID, но linux mdraid не поддерживал его до недавнего времени. Там все еще много ошибок, связанных с разделами на RAID.
DukeLion
0

Есть sudo update-grub. Есть вероятность, что вы /boot/grub/device.mapне в курсе, и ошибка для устаревшей карты устройства такая же.

ujifgc
источник