LinuxForum.Fans
Тема

Непонятно что нужно mdadm (где-то ошибка).

Автор: diamond 7 сообщений 12031 просмотров
#106271

Здравствуйте.
Собираю RAID1 на базе mdadm. Система - АркЛинукс с последними версиями. Система стоит на /dev/sda, два диска по 500 ГБ - в рейд (sdb и sdc).
Что делаю (попорядку):
1) Размечаю диски fdisk и делаю разделы типа fd
2) Даю команду mdadm --create /dev/md0 /dev/sdb1 /dev/sdc1
Выдается сообщение:

mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata

3) Дальше создаю файл конфигурации: mdadm --examine --scan > /etc/mdadm.conf
4) Вот здесь непонятно: на этом этапе, нужно на /dev/md0 с помощью fdisk создавать раздел? Я пытаюсь создать, но fdisk пишет:


Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF
Building a new DOS disklabel with disk identifier 0x36e5d2f2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью

Команда (m для справки): p

Диск /dev/md0: 500.1 ГБ, 500105625600 байт
2 heads, 4 sectors/track, 122096100 cylinders, всего 976768800 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x36e5d2f2

Устр-во Загр Начало Конец Блоки Id Система

Команда (m для справки): n
Действие команды
e расширенный
p основной раздел (1-4)
p
Номер раздела (1-4, по умолчанию 1): 1
Первый сектор (2048-976768799, по умолчанию 2048):
Используется значение по умолчанию 2048
Last сектор, +секторы or +size{K,M,G} (2048-976768799, по умолчанию 976768799):
Используется значение по умолчанию 976768799

Команда (m для справки): p

Диск /dev/md0: 500.1 ГБ, 500105625600 байт
2 heads, 4 sectors/track, 122096100 cylinders, всего 976768800 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x36e5d2f2

Устр-во Загр Начало Конец Блоки Id Система
/dev/md0p1 2048 976768799 488383376 83 Linux

Команда (m для справки): a
Номер раздела (1-4): 1

Команда (m для справки): m
Действие команды
a переключение флага загрузки
b редактирование метки диска bsd
c переключение флага dos-совместимости
d удаление раздела
l список известных типов файловых систем
m вывод этого меню
n добавление нового раздела
o создание новой пустой таблицы разделов DOS
p вывод таблицы разделов
q выход без сохранения изменений
s создание новой чистой метки диска Sun
t изменение id системы раздела
u изменение единиц измерения экрана/содержимого
v проверка таблицы разделов
w запись таблицы разделов на диск и выход
x дополнительная функциональность (только для экспертов)

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.

То есть все проходит ок.
5) Дальше создаю файловую систему и все ок.

При загрузке пишет. что запуск mdadm не удался, но к дискам (и md0) доступ есть! В логах:


md0: Unknown partition table

Что это?
И еще вопрос: если я уже в образ ядра включил mdadm, нужно ли включать куда-то модули raid1 и raid0? Везде написано, что нужно их грузить modprobe, но надо ли это делать потом, после конфигурации?

Спасибо.

#106396

Попробуй так:

text

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Т.к. по умолчанию создается с metadata=1.2 и ядро такие массивы "не понимает" то нужно потом сделать так:

text
mdadm --detail --scan --verbose >> /etc/mdadm.conf

--verbose можно не писать
И добавить mdadm в "автозапуск". В Gentoo это делается так:

text

rc-update add mdraid boot

Как это сделать в Arch, к сожалению не подскажу.

Но у меня или из-за кривизны рук или из-за кривизны mdadm периодически не создавались массивы при запуске, поэтому я сделал их с metadata=0.90

text

mdadm --create /dev/md1 --level=1 --raid-devices=2 --metadata=0.90 /dev/sdb1 /dev/sdc1
diamond написал:

Вот здесь непонятно: на этом этапе, нужно на /dev/md0 с помощью fdisk создавать раздел?

Уже не получится. Если нужно больше одного раздела, тогда создавай на каждом диске необходимые разделы, а потом из них массивы:

Например, так:

text

1. /boot
  mdadm --create /dev/md1 --level=1 --raid-devices=2 --metadata=0.90 /dev/sdb1 /dev/sdc1
  Для /boot Обязательно metadata=0.90 и RAID 1.
2. /
  mdadm --create /dev/md2 --level=0 --raid-devices=2 --metadata=0.90 /dev/sdb2 /dev/sdc2
  !!!Обязательно metadata=0.90. Нигде не встречал упоминания об этом, но корень с metadata=1.2 (по умолчанию) у меня вызывал kernel panic.

3. /usr mdadm --create /dev/md3 --level=0 --raid-devices=2 /dev/sdb5 /dev/sdc5

4. /var mdadm --create /dev/md4 --level=0 --raid-devices=2 /dev/sdb6 /dev/sdc6

5. /tmp mdadm --create /dev/md5 --level=0 --raid-devices=2 /dev/sdb7 /dev/sdc7

А после этого создавай на массивах необходимые ФС:

text

mkfs.reiserfs /dev/md5 и т.д.

Еще я пробовал удалять все разделы с винтов, потом:

text

mdadm --create /dev/md0 --level=0 --raid-devices=2 --metadata=0.90 /dev/sdb /dev/sdc

Обрати внимание на /dev/sdb /dev/sdc
И после этого создавал разделы fdisk'ом на /dev/md0. Только меня это не устроило, так как /boot нужен был в raid1, а все остальное в raid0

diamond написал:

И еще вопрос: если я уже в образ ядра включил mdadm,

А это как? Мне устанавливать его пришлось

diamond написал:

нужно ли включать куда-то модули raid1 и raid0? Везде написано, что нужно их грузить modprobe, но надо ли это делать потом, после конфигурации?

Эти модули обязательно должны загружаться (у меня они в ядре). И еше должен быть включен Raid autodetect.

#106402

mycetophylax, спасибо за ответ.

mycetophylax написал:
diamond пишет:

И еще вопрос: если я уже в образ ядра включил mdadm,

А это как? Мне устанавливать его пришлось

В archlinux есть возможность пересобрать initramfs так, чтобы поддерживало это все нужные нам модули. Вероятное такое же средство есть и в генте.
Делается через mkinitcpio - добавление hook'a mdadm в секцию HOOKS файла /etc/mkinitcpio.conf, и затем пересборки командой mkinitcpio -g /boot/kernel26.img.

В общем, я совсем запутался.... Нихрена не понимаю: ведь рейд1 - это тупое зеркало. Нужно ли создавать разделы на дисках рейда1 до подключения к подсистеме mdadm или нет?...
И, если можно, проясните, в чем разница от использования метаданных 0.9 и 1.2?
Спасибо.

#106403
diamond написал:
Нужно ли создавать разделы на дисках рейда1 до подключения к подсистеме mdadm или нет?...
И, если можно, проясните, в чем разница от использования метаданных 0.9 и 1.2?
Спасибо.

А вот этого я не знаю wink

#106466

smile
Ну может тогда кто скажет, почему mdadm выдает при старте сообщение md0: Unknown partition table?

#106475

В общем-то ответ нашел. Ответ состоит из 2х частей:
1) читать вот https://bbs.archlinux.org/viewtopic.php?id=98865. Вкратце: происходит двойная инициализация массива, поэтому имеет смысл при включении mdadm в раздел HOOKS убрать вот этот кусок инициализации из rc.sysinit:


#If necessary, find md devices and manually assemble RAID arrays
if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ];
then
status "Activating RAID arrays" /sbin/mdadm --assemble --scan
fi

2) Вторая часть проблемы описана здесь: http://www.linux.org.ru/forum/admin/4834879?lastmod=1272804551856#comment-4841557

#311104

у меня такая же ерунда в логах:
md0: Unknown partition table

md0: WARNING: sda2 appears to be on the same physical disk as sda1.
True protection against single-disk failure might be compromised.
raid1: raid set md0 active with 2 out of 2 mirrors
md0: detected capacity change from 0 to 2047803392
md: ... autorun DONE.
md0: unknown partition table


у меня софтовый raid1 на debian lenny.

вот таблица разделов:

Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
3 15.7MB 528MB 513MB linux-swap(v1) primary
1 528MB 2576MB 2048MB ext3 primary raid
2 2576MB 4624MB 2048MB ext3 primary raid
4 4624MB 1000GB 996GB ext4 primary


я совсем не опытный в линукс. вы могли бы пояснить свой ответ на решение данной проблемы...

Войдите или зарегистрируйтесь, чтобы ответить.