Создание, мониторинг и обслуживание программного RAID массива в CentOS 7

Введение

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

Кроме этого ESXi 6.5 «из коробки» не умеет работать со встроенными в материнскую плату RAID контроллерами, построенными на SATA контроллере. В нашем случае SSD подключены именно к такому контроллеру, поэтому RAID1 для базы данных будем собирать в CentOS 7.

Выбор дисков для RAID массивов

Для отображения подключенных дисков выполним команду:

fdisk -l | grep "Disk /dev/sd"

На sda установлена система. Из sdb и sdс создадим «зеркальный» RAID массив уровня 1 (RAID1) для баз данных, а из sdd и sde RAID1 для логов баз данных.

Создание RAID1 массива

Установим mdadm:

yum install mdadm -y

Выполним следующие команды для создания массивов для БД и логов:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde

На вопрос Continue creating array? отвечаем y.

где:

  • /dev/md0 и /dev/md1 — создаваемые массивы;
  • level=1 — зададим тип массива (0, 1, 5, 6);
  • raid-devices=2 — количество дисков в массиве;
  • /dev/sdb, /dev/sdc, /dev/sdd и /dev/sde — диски, из которых собираются массивы.

 

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

cat /proc/mdstat

Настройка RAID массивов

Разметим пространство.  В качестве файловой системы выберем ext4:

mkfs.ext4 /dev/md0
mkfs.ext4 /dev/md1

Создадим конфигурационный файл для утилиты mdadm:

mdadm --detail --scan --verbose > /etc/mdadm.conf

 

Создадим точки монтирования — каталоги /raid200  и /raid120:

mkdir /raid200
mkdir /raid120

Монтируем созданные RAID массивы в каталог /raid:

mount /dev/md0 /raid200
mount /dev/md1 /raid120

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

mcedit /etc/fstab

в открывшемся файле добавим строчки:

/dev/md0 /raid200 ext4 defaults 1 2

/dev/md1 /raid120 ext4 defaults 1 2

Примеры использования mdadm

Пометка диска как сбойного

Диск в массиве можно условно сделать сбойным, ключ —fail (-f):

mdadm /dev/md0 --fail /dev/sda1
mdadm /dev/md0 -f     /dev/sda1

Удаление сбойного диска

Сбойный диск можно удалить с помощью ключа —remove (-r):

mdadm /dev/md0 --remove /dev/sda1
mdadm /dev/md0 -r       /dev/sda1

Добавление нового диска

Добавить новый диск в массив можно с помощью ключей —add (-a) и —re-add:

mdadm /dev/md0 --add /dev/sda1
mdadm /dev/md0 -a    /dev/sda1

Сборка существующего массива

Собрать существующий массив можно с помощью mdadm —assemble. Как дополнительный аргумент указывается, нужно ли выполнять сканирование устройств, и если нет, то какие устройства нужно собирать.

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1
mdadm --assemble --scan

Расширение массива

Расширить массив можно с помощью ключа —grow (-G). Сначала добавляется диск, а потом массив расширяется:

mdadm /dev/md0 --add /dev/sdb1

Проверяем, что диск (раздел) добавился:

mdadm --detail /dev/md0
cat /proc/mdstat

Если раздел действительно добавился, мы можем расширить массив:

mdadm -G /dev/md0 --raid-devices=4

Опция —raid-devices указывает новое количество дисков используемое в массиве. Например, было 3 диска, а теперь расширяем до 4-х — указываем 4.

Рекомендуется задать файл бэкапа на случай прерывания перестроения массива, например добавить:

--backup-file=/var/backup

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

/proc/sys/dev/raid/speed_limit_min
/proc/sys/dev/raid/speed_limit_max

Убедитесь, что массив расширился:

cat /proc/mdstat

Нужно обновить конфигурационный файл с учётом сделанных изменений:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf
mcedit /etc/mdadm/mdadm.conf

Переименование массива

Для начала отмонтируйте и остановите массив:

umount /dev/md0
mdadm --stop /dev/md0

Затем необходимо пересобрать как md5 каждый из разделов sd[abcdefghijk]1

mdadm --assemble /dev/md5 /dev/sd[abcdefghijk]1 --update=name

или так

mdadm --assemble /dev/md5 /dev/sd[abcdefghijk]1 --update=super-minor

Удаление массива

Для начала отмонтируйте и остановите массив:

umount /dev/md0
mdadm -S /dev/md0

Затем необходимо затереть superblock каждого из составляющих массива:

mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb2

Если действие выше не помогло, то затираем так:

dd if=/dev/zero of=/dev/sda1 bs=512 count=1
dd if=/dev/zero of=/dev/sdb2 bs=512 count=1

Заключение

В итоге мы получили два программных RAID массива уровня 1, которые будем использовать для баз данных 1С:Предприятие 8.3

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *