Здравствуйте!
Имеется: ОС Centos 5.8 i386. С помощью mdadm собрал RAID10 из четырех IDE дисков по 250ГБ.
Диски в системе определены как /dev/hdc, /dev/hdd, /dev/hdf, /dev/hdh.
Перед сборкой на каждом диске с помощью fdisk создал разделы соответственно /dev/hdc1, /dev/hdd1, /dev/hdf1, /dev/hdh1, изменил их тип на Linux RAID autodetect. После чего из этих разделов создал массив /dev/md10.
Затем с помощью fdisk на /dev/md10 пытаюсь создать два первичных раздела /dev/md10p1 и /dev/md10p2, они создаются но при записи таблицы разделов (команда w для fdisk) получаю такое сообщение:
Команда (m для справки): w
Таблица разделов была изменена!Вызывается ioctl() для перечитывания таблицы разделов.
ПРЕДУПРЕЖДЕНИЕ: Перечитывание таблицы разделов завершилось неудачей с ошибкой 22: Недопустимый аргумент.
Ядро все еще использует старую таблицу.
Новая таблица будет использована при следующей перезагрузке.
Синхронизируются диски.Таким образом устройства /dev/md10p1 и /dev/md10p2 не появляются в том числе после перезагрузки системы, и я не могу создать на на них файловые системы.
При этом fdisk по команде p показывает что разделы на массиве существуют.
Команда (m для справки): pДиск /dev/md10: 500.1 ГБ, 500113211392 байт
2 heads, 4 sectors/track, 122097952 cylinders
Единицы = цилиндры по 8 * 512 = 4096 байтУстр-во Загр Начало Конец Блоки Id Система
/dev/md10p1 1 73242189 292968754 83 Linux
/dev/md10p2 73242190 122097952 195423052 83 LinuxФайловая система прямо на /dev/md10 создаётся/монтируется/работает без проблем, но вот создать разделы на md10 не получается, подскажите в чём может быть проблема?
Давно не имел дело с софтовыми рейдами. Но тогда, когда работал с mdadm - разбивал ФИЗИЧЕСКИЕ диски на партиции, которые уже затем объединял в софтовый Рейд при помощи mdadm. Кажись, fdisk не умеет работать с /dev/md.
> Давно не имел дело с софтовыми рейдами. Но тогда, когда работал с
> mdadm - разбивал ФИЗИЧЕСКИЕ диски на партиции, которые уже затем объединял
> в софтовый Рейд при помощи mdadm. Кажись, fdisk не умеет работать
> с /dev/md.Спасибо за ответ, действительно я помню когда-то устанавливал CentOS на софт-рейд и на сколько я помню там на каждом диске создавались разделы boot, home, root и т.д. и затем каждый объединялся в RAID но не наоборот, так что думаю вы правы.
Кстати и cfdisk вообще не видит ни созданный массив ни входящие в него диски.
> Кстати и cfdisk вообще не видит ни созданный массив ни входящие в
> него диски.Массив и входящие в него диски видит mdadm -D /dev/mdN. :)
>> Кстати и cfdisk вообще не видит ни созданный массив ни входящие в
>> него диски.
> Массив и входящие в него диски видит mdadm -D /dev/mdN. :)Разумеется, я просто хотел создать разделы с помощью cfdisk ;)
>[оверквотинг удален]
> Id Система
> /dev/md10p1
> 1 73242189 292968754
> 83 Linux
> /dev/md10p2 73242190 122097952
> 195423052 83 Linux
>
1) Разделы создавать можно, а чтобы их потом увидеть, воспользуйтесь kpartx.
2) Попробуйте поверх RAID10 развернуть LVM, и уже им нарезать тома.
> 1) Разделы создавать можно, а чтобы их потом увидеть, воспользуйтесь kpartx.
> 2) Попробуйте поверх RAID10 развернуть LVM, и уже им нарезать тома.Вопрос - зачем? :) Если прекрасно ДО создания софтового Рейда через mdadm можно разбить физические диски на партишены так, как надо (то ли fdisk, то ли cfdisk, то ли parted - не суть важно) - а уже потом из них собрать массив. Хотя прелесть LVM в возможности потом наращивать массив - это да.
>> 1) Разделы создавать можно, а чтобы их потом увидеть, воспользуйтесь kpartx.
>> 2) Попробуйте поверх RAID10 развернуть LVM, и уже им нарезать тома.
> Вопрос - зачем? :) Если прекрасно ДО создания софтового Рейда через
> mdadm можно разбить физические диски на партишены так, как надо (то
> ли fdisk, то ли cfdisk, то ли parted - не суть
> важно) - а уже потом из них собрать массив. Хотя прелесть
> LVM в возможности потом наращивать массив - это да.LVM это конечно хорошо, но боюсь я ещё не готов его использовать в полной мере ;)
С другой стороны задача разбивки массива на тома не стояла так остро.
Важно то, что теперь я понимаю, что fdisk просто не способен нормально распределить md-устройство, а не как я изначально думал, что просто что-то неправильно делаю.
> Важно то, что теперь я понимаю, что fdisk просто не способен нормально
> распределить md-устройство, а не как я изначально думал, что просто что-то
> неправильно делаю.С md вообще все загадочно. :) В пятницу мы с напарником как раз меняли один диск, который по смарту показывал кучи ошибок. md был собран из 2-х винтов по 250 гиг, ОС - CentOS. Сервер не непосредственно наш, просто ребята, которые им пользовались попросили помочь. Нам дали 2 винта по 500 гиг и протсили "расшириить" массив. Что в случае md решить слету невозможно (а вот в случае LVM получилось бы). Но суть не в этом. Суть в том, что после загрузки с Лайв Сиди Дженту, в которой mdadm более новой версии номерация md с 0,1,2... поменялась на 121, 122, 123... Оно бы и ладно - мы примонтировали и прогнали fsck. Маппет-шоу началось ПОСЛЕ перезагрузки. Видать, fsck при проверке перезаписал метки на диск - и они "потеряли" номера md0, md1 и т.д. А стали вот теми невменяемыми md121? md122 и система вываливается в кернел паник. Гугление - помогло. :) Пришлось при загрузиться опять с Лайва, застопить массивы (mdadm -S), после чего стартануть опять массив с идентификаторами md0, md1 и т.д. с указанием ключа на запись супеблоково. Вот после этого все встало на место. Занятная сиутация в профессиональный праздник случилась. :) 500 гиговый диск я уже подготовил - rsync-ом на него слил данные (смонтировав перед этим на "дальнейшие" md - md7,8 ...), предварительно поменяв разбивку на не ту, которую выставила ЦентОсь, а на ту, с которой мне удобнее работать. На неделе перейду на новый диск 500-гиговый (рсинкнув в init1 данные) и уже потом вставив второй 500-гиговый, который уже потом включу в md вторым винтом
>[оверквотинг удален]
> паник. Гугление - помогло. :) Пришлось при загрузиться опять с Лайва,
> застопить массивы (mdadm -S), после чего стартануть опять массив с идентификаторами
> md0, md1 и т.д. с указанием ключа на запись супеблоково. Вот
> после этого все встало на место. Занятная сиутация в профессиональный праздник
> случилась. :) 500 гиговый диск я уже подготовил - rsync-ом на
> него слил данные (смонтировав перед этим на "дальнейшие" md - md7,8
> ...), предварительно поменяв разбивку на не ту, которую выставила ЦентОсь, а
> на ту, с которой мне удобнее работать. На неделе перейду на
> новый диск 500-гиговый (рсинкнув в init1 данные) и уже потом вставив
> второй 500-гиговый, который уже потом включу в md вторым винтомвообще фиксировать так номера (persistent minor) - не самая хорошая идея, гибкость теряется. самые дурацкие случаи бывали - втыкаешь в usb винт, там партиция оказывается куском рейда с фиксированным md0, и в системе бардак.
> вообще фиксировать так номера (persistent minor) - не самая хорошая идея, гибкость
> теряется. самые дурацкие случаи бывали - втыкаешь в usb винт, там
> партиция оказывается куском рейда с фиксированным md0, и в системе бардак.А Вы какой вариант можете предложить? Работать не по /dev/mdN, а по UUID? Но в mdconf-то жесткая связка /dev/mdN -> UUID. Есть вариант, конечно udev-у "сказать" что и с какими номерами инициализировать....
-
> md был собран из 2-х винтов по 250 гиг-
> Нам дали 2 винта по 500 гиг и протсили "расшириить"
> массив. Что в случае md решить слету невозможно (а вот в
> случае LVM получилось бы).-
Можно, как-то проворачивал такое. Сейчас не помню, надо читать маны.
> Можно, как-то проворачивал такое. Сейчас не помню, надо читать маны.Не - ну я-то расширил. :) Собрав еще mdN устройств на новом 500-гиговом винте. Потом скопировал (rsync) туда все данные (ну и влепив загрузчик, конечно), потом отредактировал нужные конфиги, потом перегрузился уже на новый md (вставив еще один винт на 500 гигов) - ну проделав на запасном винте те операции, которые необходимы для включения его в нужный софтовый Рейд.
>[оверквотинг удален]
> Id Система
> /dev/md10p1
> 1 73242189 292968754
> 83 Linux
> /dev/md10p2 73242190 122097952
> 195423052 83 Linux
>
> Файловая система прямо на /dev/md10 создаётся/монтируется/работает без проблем, но вот
> создать разделы на md10 не получается, подскажите в чём может быть
> проблема?при создании массива удобнее явно указать, что он будет с партициями, например так:
mdadm --create --metadata=1.2 --auto=mdp --level=10 --chunk=64 --raid-devices=4 --layout=f2 /dev/md_d0 /dev/hd{c,d,f,h}1
и дальше уже его нарезать parted'ом (fdisk, cfdisk и подобные gui-штуки лучше вообще выкинуть). имя устройства годится либо /dev/md_d## либо /dev/md/имя (из букв проще - скакать само не будет).то что вы сделали тоже может работать. только надо сделать примерно так:
parted /dev/md10 mklabel msdos
parted /dev/md10 mkpart primary ext2 1M 10G
и т. п., если устройства md10p1 .. сами не появляются - то partprobe заставляет ядро пересканировать, и в mdadm.conf нужно это оформить, чтобы номера не выбирались наугад. а вот вариант с auto=mdp - вообще ядром детектится при загрузке, можно смело на такую партицию рутовую ФС класть :)
>[оверквотинг удален]
> вообще выкинуть). имя устройства годится либо /dev/md_d## либо /dev/md/имя (из букв
> проще - скакать само не будет).
> то что вы сделали тоже может работать. только надо сделать примерно так:
> parted /dev/md10 mklabel msdos
> parted /dev/md10 mkpart primary ext2 1M 10G
> и т. п., если устройства md10p1 .. сами не появляются - то
> partprobe заставляет ядро пересканировать, и в mdadm.conf нужно это оформить, чтобы
> номера не выбирались наугад. а вот вариант с auto=mdp - вообще
> ядром детектится при загрузке, можно смело на такую партицию рутовую ФС
> класть :)Большое спасибо за информацию, попробую на досуге:)