Создание RAID1 на установленной CentOS 6.7 + создание RAID1 на новых дисках

Автор: | 4 февраля, 2016

Итак имеем: новый установленный сервер с удаленным доступом по ssh. В на сервере установлена CentOS 6.7, так же имеем 4 HDD по 3Tb.
Необходимо настроить два дисковых массива RAID1 без переустановки системы. Поехали.

Часть 1, делаем RAID1 на установленной системе.
Проверяем что есть на данный момент:

Т.к. диски с поддержкой разметки GPT, то fdisk ничего интересного не покажет, кроме одной большой парции на весь диск и ошибки поддержки GPT.
Проверяем, что нет рейдов, если есть — удаляем (возможно остались от предыдущих установок):

Для начала нужно разметить диск sdb (сейчас пустой) так же, как sda (с системой).

Альтернативный вариант: В нашем случае в связи с тем, что диск использует GPT, sfdisk бесполезен (но у меня получилось).
Просто скопируем первые 63 блока с информацией о разметке диска так (если у вас диски без GPT, то этого делать не нужно):

Проверяем

Хорошо, у нас есть одинаковые парции, засунем в raid парции sdb и сделаем файловую систему.
Обращаем снимание на —metadata=0.90 — использовать версию 0.90 для раздела /boot !!! Для большого раздела используем версию 1.2

/dev/sdb3 не трогаем, нет смысла делать swap в рейде. Теперь создадим файловую систему:

raid парции с sdb готовы, теперь посмотрим что получилось и запишем в /etc/mdadm.conf

Это готово. Теперь надо сделать изменения в grub и fstab на текущей системе. Для этого идем в /boot и редактируем grub/grub.conf. Для начала проверим параметры ядра:

Не должно выдать ничего. Если выдает строки с параметрами ядра rd_no_md, если есть такие – удаляем rd_no_md, без этого grud raid парции распознавать при загрузке не будет.
Далее смотрим какое ядро загружено сейчас (uname -r), находим блок для этого ядра в grub.conf, и делаем в нем замену

Вы должны помнить что md1 у нас – это парция c корнем (/) системы. Также заменяем в том же блоке

ИЛИ можно воспользоватся готовым скриптом

Здесь закончили. Идем в /etc и редактируем fstab – заменяем устройства /dev/sda* (UUID) на соответствующие им /dev/md*, вот так должен выглядеть файл после редактирования:

Старые устройства у меня закомментированы (там UUID= вместо /dev/sda*, из-за GPT, сути это не меняет).
Примонтируем наши /dev/md* девайсы

После изменений в конфигурации grud нужно обновить initrd, и переделать initramfs с подключением нашего mdadm.conf

Почти все готово к ребуту. Кроме самого важного – данные то не скопировали. Копируем (занимает какое то время)

Итак, что имеем. Мы сделали raid-парции, скопировали все данные на них, сконфигурировали os на определение и монтирование raid-1 парций при инициализации и grub на загрузку с этих парций. Установим grub на диски.

Теперь можно и ребут сделать.

Если все прошло хорошо – сервер загрузится без проблем. Иногда время загрузки может чуть увеличиться по сравнению с обычным.
Если сервак не перезагрузился — переустанавливаем систему.

после ребута

Первым делом поглядим что и как у нас загрузилось:

Все в норме – raid парции определились (хотя это можно и не проверять, ничего бы не загрузилось без этого) и система загрузилась с них.
Теперь диск sda у нас уже не основной, засунем его в raid-1 массив и синхронизируем со вторым:

Проверяем ход синхронизации:

Процедура не быстрая, дождемся завершения синхронизации.
Закончилась синхронизация:

Теперь надо переписать mdadm.conf:

Сделаем парции обоих дисков raid’ового типа. Для дисков с GPT запускаем gdisk и выставляем тип FD00 для каждой парции каждого диска (кроме парций под SWAP, конечно, в нашем случае это №3).
Если у вас диски без GPT, то ставим raid autodetect через fdisk, параметр (тип fd).

делаем тоже самое и на gdisk /dev/sdb
Переконфигурируем grub еще раз

В начале файла ищем указание до splashimage и меняем в нем hd0 на hd1 если не так (оно уже должно быть таким).
Еще раз установим grub на оба диска:

Контрольный ребут для проверки и система готова к работе.

Часть 2, создаем RAID1 на 2 оставшихся винтах

На сервере осталось еще 2 пустых диска (/dev/sdc /dev/sdd) по 3Tb, сделаем из них зеркало
Создаем партиции на обоих диска использую parted, в примере только для диска /dev/sdc

Создаем новый массив (/dev/md4)

соглашаемся с предупреждением.
Создаем файловую систему:

Ждем пока синхронизируется массив.

Обновим mdadm.conf

Делаем директорию, куда будем монтировать рейд и монтируем:

Добавляем автомонтирование в fstab, добавляем строку «/dev/md4 /raid1 ext4 defaults 0 0»:

Делаем контрольную перезагрузку
После перезагрузки проверяем результат: