LINUX.ORG.RU
ФорумAdmin

GRUB на полноценном RAID-1: в чём концептуальная трудность?


1

4

Собственно вопрос: Очень часто нужна система, работающая на двух зеркалированных дисках. Тупое зеркалирование, тривиальное расположение блоков, никаких CRC. Кто-нибудь в курсе, почему в 2013-м году от Рождества Христова GRUB всё ещё не умеет грузить ядро ни с одного из типов RAID?

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

Видать, проблема не в GRUB'е самом, а в том, что BIOS не сможет передать управление коду загрузчика, поскольку в начале диска не запись типа MBR, а некое непонятно что, записанное mdadm'ом... Во всяком случае, grub умеет грузить с зеркалированного /boot'а, а это значит, что не такой уж он и тупой...

DRVTiny ★★★★★
() автор топика

Сколько использую программный RAID1 - никогда не возникало проблем с загрузкой с него grub'ом (в том числе «первой» версии).

Что я делаю не так?

// mironov_ivan

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

Видать, проблема не в GRUB'е самом, а в том, что BIOS не сможет передать управление коду загрузчика, поскольку в начале диска не запись типа MBR, а некое непонятно что, записанное mdadm'ом... Во всяком случае, grub умеет грузить с зеркалированного /boot'а, а это значит, что не такой уж он и тупой...

man mdadm:

       -e, --metadata=
              Declare the style of RAID metadata (superblock) to be used.  The
              default  is 1.2 for --create, and to guess for other operations.
              The default can be overridden by setting the metadata value  for
              the CREATE keyword in mdadm.conf.

              Options are:

              0, 0.90
                     Use  the  original  0.90  format superblock.  This format
                     limits arrays to 28 component devices and  limits  compo‐
                     nent  devices of levels 1 and greater to 2 terabytes.  It
                     is also possible for there to be confusion about  whether
                     the superblock applies to a whole device or just the last
                     partition, if that partition starts on a 64K boundary.

              1, 1.0, 1.1, 1.2 default
                     Use the new version-1 format superblock.  This has  fewer
                     restrictions.   It can easily be moved between hosts with
                     different endian-ness, and a recovery  operation  can  be
                     checkpointed  and  restarted.  The different sub-versions
                     store  the  superblock  at  different  locations  on  the
                     device,  either  at  the end (for 1.0), at the start (for
                     1.1) or 4K from the start (for 1.2).  "1"  is  equivalent
                     to  "1.2" (the commonly preferred 1.x format).  "default"
                     is equivalent to "1.2".

              ddf    Use the "Industry Standard" DDF (Disk Data Format) format
                     defined  by  SNIA.  When creating a DDF array a CONTAINER
                     will be created, and normal arrays can be created in that
                     container.

              imsm   Use  the Intel(R) Matrix Storage Manager metadata format.
                     This creates a CONTAINER which is managed  in  a  similar
                     manner  to DDF, and is supported by an option-rom on some
                     platforms:

                     http://www.intel.com/design/chipsets/matrixstorage_sb.htm

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

Речь об этом? В принципе, у меня сервер Intel, можно попробовать imsm-RAID сделать...

imsm   Use  the Intel(R) Matrix Storage Manager metadata format.
                     This creates a CONTAINER which is managed  in  a  similar
                     manner  to DDF, and is supported by an option-rom on some
                     platforms:

                     http://www.intel.com/design/chipsets/matrixstorage_sb.htm
DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Формируешь RAID из разделов, а не из дисков целиком, не?

Естественно. А зачем делать как-то ещё? Да, это возможно, но ведь профита никакого не даёт.

В принципе, оно и с дисками должно нормально работать. Нужно просто сделать MBR с загрузчиком и загрузочным разделом внутри RAID1 с метаданными в конце раздела. Но это будет... даже не знаю, в общем - «говнокод от админства».

// mironov_ivan

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

Нет, речь о метаданных, расположенных строго в конце устройств, входящих в RAID1. В этом случае эти устройства ничем не будут отличаться от обычных для систем, ничего не знающих о linux softraid. То есть если ты на таком RAID'е сделаешь, например, файловую систему, то её можно будет легко (а в случае ro - ещё и безопасно) смонтировать с отдельных устройств без сборки массива в единое устройство.

// mironov_ivan

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

mironov_ivan

Тебя забанили что-ли?

Слушай,

Счастливый владелец HTC Desire

У тебя проблем с отсутствием места для apps на cm нет?
Запарило уже.

zgen ★★★★★
()

Что есть «полноценный рейд»? Аппаратный?

GRUB всё ещё не умеет грузить ядро ни с одного из типов RAID?

я скажу как только пойму что есть «полноценный рейд».

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

Нужно просто сделать MBR с загрузчиком и загрузочным разделом внутри RAID1 с метаданными в конце раздела

IMHO нужно, чтобы BIOS понимал, что таки да, бывает, что перед MBR ещё и метаданные RAID находятся,в этом нет никакого криминала, нужно просто считать началом MBR конец метаданных RAID. А лучше даже, чтобы понавстроенные в южные мосты всех материнок «как бы рейд-контроллеры» сразу понимали MD RAID и подставляли вышележащему уровню POST как один целый диск, а не как кучку разрозненных. Перемещение метаданных в конец - это какой-то глупый хак, который пытается обойти следствие и никак не затрагивает причину .

DRVTiny ★★★★★
() автор топика

У меня дебиан визи, система грузится с софтового зеркала. Что я делаю не так?

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 3.7.1' --class debian --class gnu-linux --class gnu --class os {
        insmod gzio
        insmod raid
        insmod mdraid09
        insmod part_msdos
        insmod part_msdos
        insmod ext2
        set root='(mduuid/a9f4ec875d013ae8cb201669f728008a)'
        search --no-floppy --fs-uuid --set=root 778101f0-1a07-4d17-a353-59774442dbd4
        echo    'Loading Linux 3.7.1 ...'
        linux   /boot/vmlinuz-3.7.1 root=/dev/md1 ro  rootfstype=ext4 iTCO_wdt.heartbeat=300 it87.force_id=0x8721
}

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

понавстроенные в южные мосты всех материнок «как бы рейд-контроллеры» сразу понимали MD RAID

Думаю надо решать проблемы программными средставами со стороны загрузчика и md. Иными словами, поддержка soft raid это задача ОС, а не биоса и производителя мамок. Иначе мы будем постоянно иметь проблемы с совместимостью с теми ОС на которые производитель не закладывался. Да и наращивать функционал биоса после выхода мамки никто не будет, а вот софтовые рейды вполне себе эволюционируют и для добавления новых фич в большинстве случаев достаточно обновить ядро/ОС.

По поводу того чтобы запихнуть поддержку md raid в биос. Я был бы рад этому, но факт в том что производители этим заморачиваться не будут. До сих пор есть мамки которые нормально с флешек не грузятся. Поэтому лучше grub и md подпиливать в нужную сторону.

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

Что я делаю не так?

Возможно, просто не думаешь?

Состав /dev/md1 какой?
Где лежит /boot?
Откуда загружается система (где MBR)?

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

Поэтому лучше grub и md подпиливать в нужную сторону.

Вопрос в том, что это бесполезно: если в начале диска - запись MD RAID, то до загрузки GRUB'ом дело вовсе не дойдёт. Современный GRUB грузит с RAID'ов, если это разделы или просто не те диски, с которых начинается загрузка - тут вопросов нет (пусть и нетривиально слегка, но работает). А вот то, что современные BIOS'ы такие тупые и не могут даже просто формат Soft-RAID'а распознать - печально. ИМХО тут нужно было бы развивать бурную деятельность по написанию альтернативных OpenSource BIOS.

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

не могут даже просто формат Soft-RAID'а распознать - печально

им и не надо, они должны смотреть на наличие загрузчика и всё. Остальное их не касается.

если в начале диска - запись MD RAID, то до загрузки GRUB'ом дело вовсе не дойдёт

поэтому мета-данные можно и перенести от начала диска. Что и сделано.

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

Конечно не думаю, зачем? Это вредно.

/dev/md1 - зеркало из двух разделов на SSD дисках с метаданными формата 0.9

/boot лежит на нём же.

MBR на обоих винтах зеркала.

blind_oracle ★★★★★
()
Последнее исправление: blind_oracle (всего исправлений: 1)
Ответ на: комментарий от blind_oracle

/dev/md1 - зеркало из двух разделов на SSD дисках с метаданными формата 0.9

Советую перейти на 3.7 ведро, там трим начал поддерживаться в mdadm.

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

Всмысле? Вот из них как раз и рейд1. Это системные винты на NAS/HTPC.

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

Тебя забанили что-ли?

Это был профилактический самозабан.

У тебя проблем с отсутствием места для apps на cm нет? Запарило уже.

Тоже недавно началось. В моём случае это можно вылечить путём удаления ненужного хлама =).

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

IMHO нужно, чтобы BIOS понимал, что таки да, бывает, что перед MBR ещё и метаданные RAID находятся,в этом нет никакого криминала, нужно просто считать началом MBR конец метаданных RAID. А лучше даже, чтобы понавстроенные в южные мосты всех материнок «как бы рейд-контроллеры» сразу понимали MD RAID и подставляли вышележащему уровню POST как один целый диск, а не как кучку разрозненных.

Ты конечно прав, но на практике это никто реализовывать не будет. Разве что в Coreboot можно сделать, но это покроет полторы современные материнки.

Перемещение метаданных в конец - это какой-то глупый хак, который пытается обойти следствие и никак не затрагивает причину.

И тем не менее, раньше по умолчанию при создании массива использовался формат 0.90, по которому суперблок находился как раз таки в конце устройств. Так что изначально описанной проблемы не было, она появилась с появлением новых форматов метаданных 1.*.

Deleted
()

шел 2013 год, а в треде:

MBR
BIOS понимал

parrot
()

А не судьба просто поставить grub дважды - на sda и на sdb?, благо оные в зеркале?

no-dashi ★★★★★
()

что за бред? Нормально грузится с lvm over raid1 (и без лвм тоже)

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