Введение
Программный 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