URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93597
[ Назад ]

Исходное сообщение
"Не получается создать разделы поверх RAID10 (mdadm)"

Отправлено Martyr , 25-Июл-12 15:54 
Здравствуйте!
Имеется: ОС 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 не получается, подскажите в чём может быть проблема?


Содержание

Сообщения в этом обсуждении
"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Дядя_Федор , 25-Июл-12 16:44 
Давно не имел дело с софтовыми рейдами. Но тогда, когда работал с mdadm - разбивал ФИЗИЧЕСКИЕ диски на партиции, которые уже затем объединял в софтовый Рейд при помощи mdadm. Кажись, fdisk не умеет работать с /dev/md.

"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Martyr , 25-Июл-12 17:12 
> Давно не имел дело с софтовыми рейдами. Но тогда, когда работал с
> mdadm - разбивал ФИЗИЧЕСКИЕ диски на партиции, которые уже затем объединял
> в софтовый Рейд при помощи mdadm. Кажись, fdisk не умеет работать
> с /dev/md.

Спасибо за ответ, действительно я помню когда-то устанавливал CentOS на софт-рейд и на сколько я помню там на каждом диске создавались разделы boot, home, root и т.д. и затем каждый объединялся в RAID но не наоборот, так что думаю вы правы.
Кстати и cfdisk вообще не видит ни созданный массив ни входящие в него диски.


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Дядя_Федор , 25-Июл-12 17:28 
> Кстати и cfdisk вообще не видит ни созданный массив ни входящие в
> него диски.

Массив и входящие в него диски видит mdadm -D /dev/mdN. :)


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Martyr , 25-Июл-12 17:46 
>> Кстати и cfdisk вообще не видит ни созданный массив ни входящие в
>> него диски.
>  Массив и входящие в него диски видит mdadm -D /dev/mdN. :)

Разумеется, я просто хотел создать разделы с помощью cfdisk ;)


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено PavelR , 26-Июл-12 10:37 
>[оверквотинг удален]
> Id  Система
> /dev/md10p1            
>    1    73242189   292968754
>   83  Linux
> /dev/md10p2        73242190   122097952
>   195423052   83  Linux
>

> Файловая система прямо на /dev/md10 создаётся/монтируется/работает без проблем, но вот
> создать разделы на md10 не получается, подскажите в чём может быть
> проблема?

1) Разделы создавать можно, а чтобы их потом увидеть, воспользуйтесь kpartx.

2) Попробуйте поверх RAID10 развернуть LVM, и уже им нарезать тома.


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Дядя_Федор , 26-Июл-12 12:46 
> 1) Разделы создавать можно, а чтобы их потом увидеть, воспользуйтесь kpartx.
> 2) Попробуйте поверх RAID10 развернуть LVM, и уже им нарезать тома.

Вопрос - зачем? :) Если прекрасно ДО создания софтового Рейда через mdadm можно разбить физические диски на партишены так, как надо (то ли fdisk, то ли cfdisk, то ли parted - не суть важно) - а уже потом из них собрать массив. Хотя прелесть LVM в возможности потом наращивать массив - это да.



"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Martyr , 29-Июл-12 01:31 
>> 1) Разделы создавать можно, а чтобы их потом увидеть, воспользуйтесь kpartx.
>> 2) Попробуйте поверх RAID10 развернуть LVM, и уже им нарезать тома.
>  Вопрос - зачем? :) Если прекрасно ДО создания софтового Рейда через
> mdadm можно разбить физические диски на партишены так, как надо (то
> ли fdisk, то ли cfdisk, то ли parted - не суть
> важно) - а уже потом из них собрать массив. Хотя прелесть
> LVM в возможности потом наращивать массив - это да.

LVM это конечно хорошо, но боюсь я ещё не готов его использовать в полной мере ;)
С другой стороны задача разбивки массива на тома не стояла так остро.
Важно то, что теперь я понимаю, что fdisk просто не способен нормально распределить md-устройство, а не как я изначально думал, что просто что-то неправильно делаю.


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Дядя_Федор , 29-Июл-12 09:47 
> Важно то, что теперь я понимаю, что 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 вторым винтом


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено polyakov , 29-Июл-12 13:51 
>[оверквотинг удален]
> паник. Гугление - помогло. :) Пришлось при загрузиться опять с Лайва,
> застопить массивы (mdadm -S), после чего стартануть опять массив с идентификаторами
> md0, md1 и т.д. с указанием ключа на запись супеблоково. Вот
> после этого все встало на место. Занятная сиутация в профессиональный праздник
> случилась. :) 500 гиговый диск я уже подготовил - rsync-ом на
> него слил данные (смонтировав перед этим на "дальнейшие" md - md7,8
> ...), предварительно поменяв разбивку на не ту, которую выставила ЦентОсь, а
> на ту, с которой мне удобнее работать. На неделе перейду на
> новый диск 500-гиговый (рсинкнув в init1 данные) и уже потом вставив
> второй 500-гиговый, который уже потом включу в md вторым винтом

вообще фиксировать так номера (persistent minor) - не самая хорошая идея, гибкость теряется. самые дурацкие случаи бывали - втыкаешь в usb винт, там партиция оказывается куском рейда с фиксированным md0, и в системе бардак.


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Дядя_Федор , 31-Июл-12 08:46 
> вообще фиксировать так номера (persistent minor) - не самая хорошая идея, гибкость
> теряется. самые дурацкие случаи бывали - втыкаешь в usb винт, там
> партиция оказывается куском рейда с фиксированным md0, и в системе бардак.

А Вы какой вариант можете предложить? Работать не по /dev/mdN, а по UUID? Но в mdconf-то жесткая связка /dev/mdN -> UUID. Есть вариант, конечно udev-у "сказать" что и с какими номерами инициализировать....



"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено PavelR , 01-Авг-12 18:43 
-
> md был собран из 2-х винтов по 250 гиг

-
> Нам дали 2 винта по 500 гиг и протсили "расшириить"
> массив. Что в случае md решить слету невозможно (а вот в
> случае LVM получилось бы).

-

Можно, как-то проворачивал такое. Сейчас не помню, надо читать маны.



"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Дядя_Федор , 02-Авг-12 12:42 
> Можно, как-то проворачивал такое. Сейчас не помню, надо читать маны.

Не - ну я-то расширил. :) Собрав еще mdN устройств на новом 500-гиговом винте. Потом скопировал (rsync) туда все данные (ну и влепив загрузчик, конечно), потом отредактировал нужные конфиги, потом перегрузился уже на новый md (вставив еще один винт на 500 гигов) - ну проделав на запасном винте те операции, которые необходимы для включения его в нужный софтовый Рейд.



"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено polyakov , 29-Июл-12 13:30 
>[оверквотинг удален]
> 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 - вообще ядром детектится при загрузке, можно смело на такую партицию рутовую ФС класть :)


"Не получается создать разделы поверх RAID10 (mdadm)"
Отправлено Martyr , 31-Июл-12 01:02 
>[оверквотинг удален]
> вообще выкинуть). имя устройства годится либо /dev/md_d## либо /dev/md/имя (из букв
> проще - скакать само не будет).
> то что вы сделали тоже может работать. только надо сделать примерно так:
> parted /dev/md10 mklabel msdos
> parted /dev/md10 mkpart primary ext2 1M 10G
> и т. п., если устройства md10p1 .. сами не появляются - то
> partprobe заставляет ядро пересканировать, и в mdadm.conf нужно это оформить, чтобы
> номера не выбирались наугад. а вот вариант с auto=mdp - вообще
> ядром детектится при загрузке, можно смело на такую партицию рутовую ФС
> класть :)

Большое спасибо за информацию, попробую на досуге:)