LINUX.ORG.RU
ФорумAdmin

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

 , , ,


1

2

Добрый день!

Подскажите кто в курсе, как делается загрузка с RAID. Я имею в виду такую загрузку, что бы и linux и grub и вообще все что находится на HDD(mbr, gpt...) было в RAID. Что бы BIOS загружал систему из RAID.

Сейчас использую вариант когда мой домашний сервер загружается с одного диска, потом после загрузки монтирует «ценные» данные, которые хранятся в BRTFS RAID. В целом так достаточно неплохо живется, но когда дохнет диск с системой требуются известные танцы с бубном. Как выйти из данной ситуации?

Предложения вынести /boot а потом восстанавливать только его считаю полумерой. Это конечно сэкономит немного времени, но не решит вопрос принципиально.


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

Как таковой задачи нет.

Некогда n лет назад, я купил себе HP Microserver, для хранения мультимедийного контента в домашней сети. В этот сервер я напихал 5 дисков. 1 на 250Gb и 4 на 3Tb, поскольку работать со зверопарком физических дисков нет особого желания, то встал вопрос объединения этого хозяйства в логические массивы. 1 диск на 250Gb остался системным, остальные объединились в raid10. Технологии объединения в raid выбирал из mdraid+lvm, dmraid, btrfs. Выбор пал на btrfs (не надо холиваров, просто захотелось посмотреть). Массив пережил не один диск, менял 3 или 4, полет нормальный. На нем же хранится дамп системного диска, который уже тоже умирал. Сервер работает 24/7, поэтому скорость загрузки не критична. uptime где то 1,5 года.

Сейчас подумываю над увеличением размера raid массива, при этом в голову закралась мысль: - А почему бы не установить на него ОС? В этом случае появится возможность посмотреть фичу снапшотов, квот, чего там еще есть, а самое интересное горячее подключение системных дисков. Но бивис грузить систему с программного btrfs raid не умеет. Отсюда собственно и вопросы, кто как решал подобные задачи? Какие вообще есть технологии?

Предложенные вами варианты конечно более продвинутые чем мой, но не на столько что бы ради этого терять контент(~5Tb). Сам сервер относительно старый, uefi не умеет, загрузиться с диска gpt не сможет.

Мне этот пост скорее нужен как сбор информации о том как народ решает подобные задачи. Какие появились новые возможности и т.д. Может для моей хотелки проще сменить сервер и получить загрузку с btrfs raid из коробки, или купить недорогой raid контроллер.

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

Тут всё довольно просто и можно обойтись без потери данных. Наверное, ибо на бтрфсе не проверял.

Тебе надо

  • взять свой готовый рэйд на btrfs
  • создать на нём subvol под корень
  • перенести туда свою систему
  • сделать chroot в новую систему
  • сгенерировать новый grub.conf и fstab
  • убедиться, что прописываются правильные параметры ядра (то, что нужный subvol передаётся в качестве root, гугл знает, как должно быть, я уже не помню)
  • установить на каждый диск grub2-install
  • всё проверить, убедиться, что грузится деградированным, убедиться что может загрузиться с любого диска и т.п. В общем 100500 перезагрузок.

По идее должно работать вообще без всяких таблиц разделов, просто с винтами, напрямую отданными btrfs. Но только если граб так умеет. Возможно, в этом случае grub.conf придётся править руками, если скрипты такую конфигурацию не осилят.

Ну и для надёжности лучше сделать subvol под /boot и сделать его зеркалированным на каждый диск, ибо есть сомнения, что граб сможет загрузиться с деградировавшего массива со stripe'ом. Хотя вполне вероятно, что они напрасны.

В общем, т.к. конфигурация не стандартная, можно наступить на много граблей, но в теории всё это возможно, и кроме багов, препятствий не видно. Ну и в случае проблем всегда можно вернуться на оригинальную систему на отдельном диске.

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

Систему можно грузить с btrfs-raid, а вот ядро уже не получится, нужен отдельный boot

А почему, можно по подробнее? У граба же есть поддержка бтрфс.

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

Ну и если с бтрфс по каким-то причинам не взлетит, а желание что-то сделать останется, всегда можно

  • вывести два диска из бтрфс
  • сделать на них таблицу разделов (/boot, efi(если надо), root, data), разделы fd00
  • создать деградированные рэйды на 4 устройства (boot и efi имхо лучше делать как raid1, а не raid10, для efi нужна metadata=1.0, а не стандартная 1.2)
  • примонтировать, скопировать систему
  • chroot и grub2-mkconfig
  • отредактировать fstab
  • установить grub2 на оба диска
  • всё проверить, ребутнуться, убедиться, что грузится с обоих выведенных дисков
  • примонтировать btrfs в новой системе, поставить копирование на ночь
  • когда всё скопируется, создать новую разметку на оставшихся дисках
  • добавить их в массивы
  • установить на них граб
  • после окончания синхронизации получить работающее более-менее отказоустойчивое хранилище
  • по желанию можно сделать ещё 100500 перезагрузок с целью всё проверить
  • настроить оповещения
  • спать спокойно

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

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

Вполне возможно, что сервер поддерживает intel matrix storage manager (imsm) raid, он же intel rapid storage technology (rst) raid, и умеет грузиться с массива. Тогда с помощью mdadm можно создать контейнер типа imsm на все диски, затем в этом контейнере создать два массива, один для загрузки (меньше 2 тб), второй для хранилища. На первом массиве можно будет создать таблицу разделов MBR. На втором массиве можно создать таблицу разделов GPT. Можно и не создавать разделов на втором массиве вовсе, использовать его без разделов как физический том BTRFS или LVM.

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