LINUX.ORG.RU

Как загрузиться с RAID?

 , , , ,


0

2

torm7 - что у тебя в итоге получилось?

У меня такой же вопрос.

Идея такая:

Если mdadm, то есть на самом деле модуль md в ядре представляет пару дисков как устройство /dev/md/N, то пусть и продолжает представлять и обеспечивать посекторное копирование RAID 1.

BIOS грузит MBR, MBR грузит core.img от GRUB, записанный в BIOS-partition от GPT, этот core.img несёт в себе поддержку RAID, GPT, LVM и грузит всё остальное (grub.conf, kernel, initramfs) с основного раздела на GPT.

Дальше ядро запускает модуль md, (не знаю, что там про GPT) и поддержку LVM, после чего монтирует корневой раздел.

В случае выхода из строя диска это тоже всё наверное продолжит работу. Однако синхронизация будет выполняться для массива и закопирует как MBR, так и всё остальное.

Что скажете, непонятливые читатели ЛОРа, так и не смогшие ответить на простой вопрос два года назад?

Ответ на: комментарий от post-factum

хочется подтверждение «да, у меня именно так и работает и я удачно пережил 6 лет и четыре отказа дисков»

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от post-factum

Но могу спросить и конкретнее:
mdadm создаёт свои таблицы версии 1.2 во втором секторе (т.е. начиная с 4096 байта диска)
в то же время, BIOS partition у GPT начинается так же где-то в том же районе (и туда записывается core.img)

Произойдет ли наложение второго на первое или нет?

UPD:
https://en.wikipedia.org/wiki/BIOS_boot_partition
или наложение Partition Entry Array на метаданные v1.2 от MDADM

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

Вот чтоб совсем без даунтайма небыло. Нам не нужно и не по карману. Спокойно штатно остановили, заменили неисправное оборудование, запустили, подождали, проверили. На горячую, по живой системе никто не проверял, т.к. потребности нет.

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

почитал. Для версии 1.2 они записываются не в конец. Сам почитай хотя бы.

Ну и соответственно, GPT тоже от начала начинается:
https://www.anchor.com.au/blog/2012/10/the-difference-between-booting-mbr-and...

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

Знаешь, теперь я начинаю сомневаться, что у меня было именно так, как ты описываешь, то ведь было несколько лет назад. У меня совершенно точно было без GPT, только mbr-таблица разделов. И еще использовался старый gurb, не тот, который grub2.
По идее, с EFI тебе grub в принципе не обязателен, прошивка может сама загрузить ядро и initrd ESP-раздела первого попавшегося диска, а ядро уже само соберет рейд когда все загрузится.

А еще сейчас можно заказать нормальный, пусть и устаревший, рейд-контроллер LSI за недорого, и забыть про все эти приключения.

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

нет, мне хотелось бы, чтобы на ЛОР начали нормально отвечать на вопросы или проходить мимо.

Если спрашивают про BIOS, то чтобы не предлагали UEFI. Если спрашивают про GPT, то чтобы не предлагали обойтись одним MBR (а то диски бывают 3Tb, а MBR не умеет >2TB)

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

сейчас можно заказать нормальный, пусть и устаревший, рейд-контроллер LSI за недорого

отлично, заказываю за твой счёт. Высылай. Доставка тоже за твой счёт. Ну и просто денег тоже можешь подарить, я не гордый.

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

У тебя такие вопросы, что из них непонятно, что ты спрашиваешь. Спрашивай нормальные вопросы, на лоре не техподдержка фирмы-производителя твоего сервера. Если ты упоминаешь gpt, я по-умолчанию предполагаю, что у тебя efi. Если же это не так, надо подробно расписать, что как и почему, а не выдавать не фильтрованный поток сознания, как в ОП.

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

Если же это не так, надо подробно расписать

в топике Torn7 используется BIOS и 3Tb диски. У меня тоже. Я бы мог в тот топик дописать, но он уже архивирован, поэтому я сделал новый и сослался на старый.

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

mdadm создаёт свои таблицы версии 1.2 во втором секторе (т.е. начиная с 4096 байта диска)

У тебя целиком диск отдан под рейд, или все таки раздел? Во втором случае mdraid пишет метадату в начало раздела, а не диска, и никто никуда не наложится.

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

У меня пока ничего нет. Я размышляю, как сделать. Хочу RAID делать на целиком диски. Это позволит их целиком восстанавливать/синхронизировать.

Поэтому второй случай мне не подойдёт.

Я лучше от GPT тоже откажусь, диски возьму поменьше. А затем помучаюсь и подумаю, как сдвинуть core.img при установке (чтобы не накладывался на метаданные от mdadm)

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

Вообще так рекомендуют не делать. Но в таком случае тебя не должна волновать судьба mbr/gpt.

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

Ну как минимум, Torn7 говорит о btrfs raid, а ты про mdraid, что есть немного разные сущности. mdraid это, фактически, надстройка над обычными block devices, а btrfs raid реализован в драйвере файловой системы btrfs.

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

да, я не хочу btrfs, я хочу mdadm (а не dmraid). mdraid - это по-видимому подсознательный результат скрещивания двух предыдущих.

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от post-factum

не, а чего? Сначала разметить диск в GPT, это позволит записать core.img не с начала диска. Потом разметку GPT затереть (но MBR и core img останется. В MBR прописать раздел такого же размера, как был на GPT. После этого метаданные mdadm 1.2 записать.

Либо, как вариант, вообще не записывать метаданные mdadm на диски. Перестанет работать автособирание в initramfs, но это можно обойти, если всё что нужно написать в mdadm.conf в initramfs

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

mdraid довольно часто употребляемое наименование которое встречается даже в документации, т.к. mdadm (Multiple Disk ADMinistrator) это всего лишь название утилиты управления.

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

В данный момент, мне видится, что вариант с mdadm.conf в initramfs более живучий в том случае если через много лет что-то все-таки пойдет не так и тебе понадобится разбираться в этом заново. Во всяком случае, не надо будет вспоминать, что ты там стирал и перезаписывал. Но имеет смысл смоделировать ситуацию на кошках (виртуальных машинах).

Khnazile ★★★★★
()

для тех, кто найдёт этот топик через поисковик

не парьте мозг - бут раздел на флешку (если не хочется тратить винт и занимать порт), а с него можно грузить какой угодно рейд, и в случае смерти рейда иметь живой бизибокс для базовой диагностики.

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

ага, и следующий вопрос - как сделать RAID из флешек

Рейд из флешек грузить с сервера по сети. На серверах сетевой загрузки рейд не делать, а просто иметь их три. :D Еще, конечно же, надо продублировать весь сетап в 5 датацентрах на 5 континентах. И криптографию на торсионных полях. Вроде ничего не забыл... стандартный набор ЛОРовца, каждый должен знать!

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

Я думаю, если я начну отвечать на этот вопрос, то тред сорвется в лютый оффтоп, по этому оставим как есть.

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

вот, разумных причин у тебя нет, только люто оффтопичные.

а мог бы привести сравнение/подсчёт TCO различных вариантов

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

Эталонный изврат. Берем дисковый массив, предполагающий надежность. Извращаемся над ним, чтоб эта надежность не имела значение. А имели значение всякие bios, gpt, mbr, grub. Но не надежность массива. Ни в коем случае. Хоть бы заикнулся про память с контролем четности для софт-рейда. Нет важен куда запишется какой-то core.img

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

И чем поможет zfs при описанных тобой извратах? Ты эталонный извращенец. Сперва ответь, зачем тебе raid1? Чтобы с него грузиться? Raid1 не загрузчик.

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

По-моему, должно быть совершенно очевидно, что я намерено предлагал совершенно абсурдный вариант. Не вижу смысла заниматься подсчетами в данном случае.

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

Чтобы с него грузиться?

чтобы если флешка откажет, вынуть её, вставить другую, а система сама бы всё восстановила.

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

ну я пережил уже вторую замену пар, последний раз перешел на гпт и груб2, как раз спрашивал про легаси, но никто не отозвался. решил сам, да диски 3тб корень в райде. могу завтра глянуть

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

ТС хочет не просто корень в рейд, а весь накопитель зеркалировать, в месте с таблицей разделов, загрузочной записью и прочим. Но если у тебя именно так, очень интересно послушать. Я тут внезапно понял, что в 11 году какую-то херню сделал, которая работала совсем не так, как я думал, но при этом вела себя как ожидалось.

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

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

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

Что ты хочешь восстановить? Восстанавливают из бекапов. Сделай себе 100500 загрузочных дисков/флешек и вставляй их по мере необходимости. Raid не про восстановление. Хватит уже извращаться.

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

Что ты хочешь восстановить?

одну половину RAID-а с другой.

Хватит уже извращаться.

тебе хватит, ты и переставай

Сделай себе 100500 загрузочных дисков/флешек

Их изготовление - 100500 операций, более сложных, чем «вставить чистую флешку в разъём»

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

так все же опиши, что за радость синкать загрузочник и таблицу разделов? все это востанвливается парой команд с живого диска

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

Что ты хочешь восстановить?

одну половину RAID-а с другой.

Он это сделает. Но ты же хочешь совсем другого?

Хватит уже извращаться.

тебе хватит, ты и переставай

Я извращаюсь, потому что с извращенцем общаюсь. С волками жить - по волчть выть

anonymous
()

Что скажете, непонятливые читатели ЛОРа, так и не смогшие ответить на простой вопрос два года назад?

Что тебе стоит научится описывать свои мысли более внятно.

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

Тут остаётся только проверить. Вряд ли кто-то, кроме тебя решит заниматься таким извратом. Так что всё в твоих руках. Большинству людей сделать

sgdisk /dev/sda -R /dev/sdb
sgdisk -G /dev/sdb
, перед тем, как ввести диск в рэйд не представляется проблемой.

По поводу хитрых планов. Когда у тебя откажет диск, тебе придётся много плясать с бубном, если у тебя не будет возможности сделать grub2-install /dev/sdX. Так что если рэйд без разметки конфликтует с mbr, то лучше откажись от этой затеи.

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

Он это сделает.

отлично!

Но ты же хочешь совсем другого?

почему тебе так показалось?

Я хочу, чтобы RAID, созданный из всего диска (флешки), восстановил свою половину целиком (т.е. отказавшую флешку).

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

ты хочешь сделать рэйд целиком на весь диск

верно

, без разметки.

почему без разметки? Тут неоднозначно у тебя написано. Диск у меня с разметкой, только RAID не на отдельный раздел, а на диск целиком.

Но при этом переживаешь, что метаданные рэйда затрут mbr?

нет, не mbr, почитай повнимательнее.

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

Сначала разметить диск в GPT, это позволит записать core.img не с начала диска.

Под core.img что подразумевается? stage1.5? Он и так не в начале диска. А если под core.img подразумевается mbr, то она обязана быть в начале диска, иначе биос её не прочитает.

Либо, как вариант, вообще не записывать метаданные mdadm на диски.

А куда ты их собрался записывать? Выносить на ещё один диск? В чём смысл?

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

Под core.img что подразумевается? stage1.5?

верно

Он и так не в начале диска.

верно. Но и метаданные mdadm тоже не затирают mbr. Они как раз с core.img за одно место дерутся.

А если под core.img подразумевается mbr

неверно.

MBR обязана быть в начале диска, иначе биос её не прочитает.

верно, но нерелеванто

как вариант, вообще не записывать метаданные mdadm на диски.

А куда ты их собрался записывать?

в mdadm.conf в initramfs, выше это написано.
Если использовать by-path указание дисков, то менять/редактировать mdadm.conf будет не нужно.

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

Хочу чуть поправить себя. Raid1 не восстанвливает свою вторую половину. Он восстанавливает свое нормальное рабочее состояние из ненормального сломанного состояния. Хочеть быть нормальным, не извращенцем. Нормальные ждут от другого нормального поведения, это есть надежность. То что кто-то снаружи выводит его из нормального состяния, извращается, и при этом требует нормальное поведение - это уже совсем не про надежность. Только по случайному стечению обстоятельств извращение может выглядет как нормальное поведение.

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

почему без разметки? Тут неоднозначно у тебя написано. Диск у меня с разметкой, только RAID не на отдельный раздел, а на диск целиком.

Ну тут либо у тебя на диске разметка, либо рэйд. Два в одном не получится. Если ты имеешь ввиду, что на /dev/mdX ты сделаешь разметку или lvm, то это к загрузке уже не особо относится.

Они как раз с core.img за одно место дерутся.

Я могу заблуждаться, но вроде как stage1.5 пишется либо в bios boot partition (если у тебя gpt), либо в /boot, если mbr. Учитывая, что у тебя ни того, ни другого, весь вопрос в том, как себя поведёт grub-install.

Если поверх /dev/mdX ты создашь gpt, то создай на нём bios boot partition поближе к началу диска. stage1.5 запишется в него, для mdadm это будет валидный раздел, который будет зеркалироваться и не будет затираться метаданными.

Дальше делаешь grub-install на все диски, и загрузчик в mbr будет содержать offset для stage1.5. По идее так должно работать. От grub-install при восстановлении ты не избавишься, но разделы он зазеркалирует, да.

Если поверх /dev/mdx будет mbr, то создай раздел под /boot в начале диска. Остальное тоже самое.

С lvm видимо тоже самое, но в том, что grub-install не сойдёт с ума, я не уверен. Возможно придётся руками mbr писать.

в mdadm.conf в initramfs, выше это написано.

Если использовать by-path указание дисков, то менять/редактировать mdadm.conf будет не нужно.

А где рэйд будет хранить инфу о своём состоянии? Метаданные это же не только UUID'ы дисков и тип рэйда, но и журнал.

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