К основному контенту

Создание RAID на CentOS7

Создание, мониторинг и обслуживание программного 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


Комментарии

Популярные сообщения из этого блога

Многономерной транк от Датагруп к Elastix 2.5

В очередной раз украли кабель укртелекома, и восстановление "через полгода", но городские надо. Поскольку есть сервер Elastix2.5, решение очевидно sip-trunk. Укртелеком на вопрос sip-trunk "отморозился" причиной "он нестабилен, он ненадежен, и т.п., берите облачную атс" (зачем мне облачная атс?) Побывав на IT-Forum2018, встретил (единственного!!!! на весь форум) оператора/провайдера Датагруп, выяснил, что возможность подключить транк есть и подходит под мои условия(nat,отсутствие "белого ip") ТЗ;  -sip-trunk на 3 номера и 10 голосовых сессий; -атс на базе Elastix2.5. После заключения всех договоров и оплаты подключения, получен заветный конверт с логином паролем и адресом подключения (и иными параметрами подключения), 1) создаем транк: меню Trunk / Add SIP trunk Рис.1 Создаем  (Рис.1) Trunk Name : "имя транка",  Outbound CallerID : логин из конверта Рис.2 Далее (Рис.2) Trunk Name : "имя транка...

FreeBSD полезности

Приглашение командной строки bash В файле /etc/profile добавляется строка PS1="\h\\$ "; export PS1 в этом виде: \h - имя компьютера до первой точки; \\$ - если UID пользователя 0 (su/root), то будет выведен символ # , иначе $; можно использовать и другие символы: \u - имя юзера; \H - полное имя компьютера; \d -текущая дата " день недели месяц число"; \n - символ новой строкиж; \r - возврат карретки; \t - время в 24 формате (ч:м:с); \T - время в 12 формате; \w - текущий каталог с полным путем; \W - название текущего каталога; $() - внешняя команда в скобках, например (date). Ошибка при запуске MC common.c: unimplemented subshell type 1 read (subshell_pty...): ... проверить export $SHELL если /bin/sh изменить на /bin/csh командой chsh -s /bin/csh root перезайти netstat -nr проверить текущий шлюз по умолчанию

Использование windows(samba) диска в linux

Как подключить сетевой диск Windows в Linux Поддержку сетевых дисков Windows в Linux обеспечивает пакет cifs-utils. Если он у вас еще не установлен, в командной строке от имени суперпользователя введите sudo apt install cifs-utils Создайте в /mnt (или любом другом месте) папку, в которую мы будем подключать сетевой диск Windows: mkdir /mnt/winshare И наконец само подключение сетевой папки Windows в Linux выполняется с помощью команды mount.cifs mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD Такая команда выполнит присоединение к фаловой системе Linux сетевого диска Windows с именем SHARE_NAME, расположенного на сервере с IP-адресом SERVER_IP от имени WIN_USER_NAME с паролем WIN_USER_PASSWORD.  В большинстве случаев этого достаточно, если вы работаете от лица суперпользователя. Если же вы от лица суперпользователя производите только подключение сетевой папки Windows, а работать с ней планируете от лица об...