FreeSource : AlexeyBorovskoy/Projects/InstallOnLvmOverRaid

Установка Мастера 2.4 на LVM поверх RAID

Необходимые инградиенты

Немного теории

Инсталляция

Основная идея такова:
Разбиение дисков
Предположим что два наших диска определились как sda и sdb.

Диск sda разобъем на два раздела:

Диск sdb разобъем на шесть разделов:

Разделы sda1 и sdb1 объединим в RAID1 и назовем его md0. На нем будет жить корневая ФС.
Монтируем разделы
Форматируем разделы в XFS и монтируем их следующим образом:
Инсталляция системы и перезагрузка
Устанавливаем систему как обычно.

При установке загрузчика может вылезти окошко с багой про какие-то там хеши, это приведет к следующим неприятностям:
Эта бага появляется при установке на SATA (через libata). Бага стабильная, у меня она вылезла уже на четырех инсталляциях.

Настройка

Если не получается загрузится в первый раз (обычно при этом нет образа initrd), то загружаетесь с болванки в режиме rescue и с помощью chroot /mnt попадаете в систему.
Установка загрузчика
Создаем /etc/lilo.conf со следующим содержимым:


Затем тестируем конфигурацию:

И устанавливаем загрузчик:


Внимание
Для XFS загрузчик прописывается только в MBR, иначе убьем ФС. У XFS с самого начала раздела лежит суперблок, загрузчик писать некуда.
Настройка MD
Создаем /etc/raidtab со следующим содержимым:

Внимание
Раздела sdb2 еще нет (на его месте лежат временные разделы), поэтому md1 будет создан в виде половинки зеркала. failed-disk нужен для правильного создания md1.

Создаем md1 в виде половинки зеркала:


Делаем неактивными две строки в /etc/raidtab:


Проверяем состояние md0 и md1 следующим образом:

Зеркало на md0 должно быть целым, а на md1 в виде половинки.
Пересоздание initrd
Может случится так, что при установке не был сгенерирован initrd. Да и лишний раз не помешает его пересоздать вручную, так спокойнее будет.
В нашем случае структура linuxrc внутри initrd должна быть следующей:

При создании initrd есть возможность залесть во внутрь образа и что-нибудь в нем поправить. Для этого существует ключ --pause у mkinitrd.

Создаем initrd следующим образом:

Обновляем пакет startup
Берем из backports пакет startup (надо не забыть его туда положить) и обновляем существующий в системе.
Почему так? Причины просты:
Перезагружаемся
Перезагружаемся в режиме single. Для этого в промпте lilo говорим следующее:

Заходим в систему рутом и приступаем к созданию LVM.
Создание LVM
Исходные данные следующие:

Сначала проинициализируем lvm:

Затем создадим PV:

Создаём том lvm0 (вообще-то это группа томов aka VG, но так короче):


Теперь lvm0 необходимо распилить на кусочки.
Распиливаем lvm0
Нам надо перенести инфу с временных разделов на lvm0.
Я делаю так (для серверов достаточно):

Распиливаем lvm0:


Создаем на получившихся разделах ФС (у меня XFS):

Переносим инфу с временных разделов
Для переноса необходимо смонтировать наши новые разделы куда-нибудь. Пусть это будет /root/fake-root:


Теперь перенесем нужное. Переносим с помощью cpio. Примерно так:


Правим права на /tmp и /var/tmp


Отмонтируем разделы:

Перемонтируем новые разделы взамен временных


Если всё нормально, то меняем ///etc/fstab/:

Превращаем /dev/md1 в полноценное зеркало
С sdb сносим все разделы кроме sdb1*. Затем на освободившемся месте создаем sdb2 равный по объему sda2. Тип раздела sda2** устанавливаем в FD.
Всё это можно сделать с помощью fdisk.
После чего будет предложено перезагрузится для перечитывания таблицы разделов на sdb.

Перезагружаемся обратно в single.

Убираем комментарии у двух строк в /etc/raidtab:


Запускаем ресинхронизацию на /dev/md1 и ждем:

В процессе синхронизации, sdb2 будет виден как spare disk. По окончанию синхронизации он перейдет в online.

Процесс синхронизации можно посмотреть несколькими способами:

Ссылки


Страницы, ссылающиеся на данную: AlexeyBorovskoy