К системе подключены три диска.

К системе подключены три диска

Что делаем первым делом, когда на системе настраиваем программный RAID, правильно — обновляем систему до самого актуального состояния текущего релиза:

ekzorchik@srv-mon:~$ sudo apt-get update && sudo apt-get upgrade -y

Устанавливаю в систему пакет mdadm посредством которого и осуществляется взаимодействие с создаваемым программным RAID’ом:

ekzorchik@srv-mon:~$ sudo apt-get install mdadm -y

Присутствующие диски в системе из которых будет создавать программный RAID:

/dev/sdb,/dev/sdc,/dev/sdd — все они по 10Gb

Использовать буду RAID 5 — как раз для него нужно три диска:

ekzorchik@srv-mon:~$ sudo mdadm --create --verbose /dev/md0 --level 5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

mdadm: layout defaults to left-symmetric

mdadm: layout defaults to left-symmetric

mdadm: chunk size defaults to 512K

mdadm: size set to 10477056K

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

Отобразить результирующую по текущей конфигурации: – файл /etc/mdadm/mdadm.conf

ekzorchik@srv-mon:~$ sudo mdadm --detail --scan

ARRAY /dev/md0 metadata=1.2 spares=1 name=srv-mon:0 UUID=3e2fc6ba:17cabd34:c44ac3db:6ca217c6

Если реальная конфигурация не совпадает с той, которая записана в /etc/mdadm/mdadm.conf, то обязательно приведите этот файл в соответствие с реальной конфигурацией до перезагрузки, иначе в следующий раз массив не запустится.

Узнать текущий статус RAIDмассива можно так:

ekzorchik@srv-mon:~$ sudo mdadm --detail --scan

ARRAY /dev/md0 metadata=1.2 spares=1 name=srv-mon:0 UUID=3e2fc6ba:17cabd34:c44ac3db:6ca217c6

ekzorchik@srv-mon:~$ cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdd[3] sdc[1] sdb[0]

20954112 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

[===============>…..] recovery = 77.0% (8071800/10477056) finish=0.6min speed=59607K/sec

unused devices: <none>

После того, как массив создан чтобы с ним можно было работать в привычном представлении: копировать файлы, создавать файлы — нужно создать на нем (массиве) файловую систему, к примеру ext4:

ekzorchik@srv-mon:~$ sudo mkfs.ext4 /dev/md0

При создание файловой системы на диске резервируется 5% свободного места. Но мы может его уменьшить используя средства утилиты tune2fs.

Теперь смонтируем раздел RAIDмассива в систему:

ekzorchik@srv-mon:~$ sudo mkdir /media/shara

ekzorchik@srv-mon:~$ sudo nano /etc/fstab

/dev/md0 /media/shara ext4 defaults 0 0

ekzorchik@srv-mon:~$ sudo mount -a

ekzorchik@srv-mon:~$ df -h | grep shara

/dev/md0 20G 44M 19G 1% /media/shara

Но это еще не все, настройка не завершена полностью, т. к. система Ubuntu 12.04.5 не знает какие RAID-массивы ей нужно создавать и какие параметры для этого используется, про что я говорю, а вот — если перезагрузить систему, то система не сможет загрузиться без Вашего внимания:

ekzorchik@srv-mon:~$ sudo reboot

Система не знает как обрабатывать RAID в системе

The disk drive for /media/shara is not ready yet or not present.

Continue to wait, or Press S to skip mounting or M for manual recovery

Нажимаем пока клавишу S: (загружаемся пропуская этап инициализиации смонтированного массива на каталог /media/shara) и из информации по RAID массиву в файл /etc/mdadm/mdadm.conf добавляем описание для системы, что мы используем программный рейд, без это информации система все так же не сможет загрузится корректно, ведь запись ей, а как читать эту запись нету:

ekzorchik@srv-mon:~$ sudo mdadm --detail --scan --verbose

ARRAY /dev/md/srv-mon:0 level=raid5 num-devices=3 metadata=1.2 name=srv-mon:0 UUID=3e2fc6ba:17cabd34:c44ac3db:6ca217c6

devices=/dev/sdb,/dev/sdc,/dev/sdd

Из этой информации приводим конфигурационный файл /etc/mdadm/mdadm.conf к виду:

ekzorchik@srv-mon:~$ sudo nano /etc/mdadm/mdadm.conf

/dev/md0 level=raid5 num-devices=3 metadata=1.2 UUID=3e2fc6ba:17cabd34:c44ac3db:6ca217c6

Не забываем сохранить внесенные изменения.

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

ekzorchik@srv-mon:~$ sudo reboot

хм странно — ситуация не изменилась хотя должна была быть, проверяю информацию по определию массива в системе:

ekzorchik@srv-mon:~$ sudo mdadm --detail --scan

mdadm: Unknown keyword /dev/md0

ARRAY /dev/md/srv-mon:0 metadata=1.2 name=srv-mon:0 UUID=3e2fc6ba:17cabd34:c44ac3db:6ca217c6

и вот что система поменяла имя массива с /dev/md0 на /dev/md/srv-mon:0 — нужно поменять обратно:

ekzorchik@srv-mon:~$ sudo mdadm -S /dev/md/srv-mon:0

mdadm: Unknown keyword /dev/md0

mdadm: stopped /dev/md/srv-mon:0

ekzorchik@srv-mon:~$ sudo mdadm -As

mdadm: Unknown keyword /dev/md0

mdadm: /dev/md/0 has been started with 3 drives.

ekzorchik@srv-mon:~$ sudo mount -a

, но что еще заметил — проделываю команды выше и все становится в нормале, а вот когда перезагрузил систему, но снова сбилось — что же делать: (на лицо не доработаки самой утилиты управления RAID-массивом), а нужно (спасибо за документацию):

ekzorchik@srv-mon:~$ sudo nano /etc/mdadm/mdadm.conf

# automatically tag new arrays as belonging to the local system

HOMEHOST srv-mon

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

ekzorchik@srv-mon:~$ sudo mdadm -S /dev/md/srv-mon:0

mdadm: stopped /dev/md/srv-mon:0

ekzorchik@srv-mon:~$ sudo mdadm -As

mdadm: /dev/md/0 has been started with 3 drives.

ekzorchik@srv-mon:~$ sudo mount -a

Перезагружаюсь еще раз — и снова ошибка, короче просто пока массив не введен в эксплуатацию удаляю его и создам заново с именем как обозначается система:

ekzorchik@srv-mon:~$ sudo mdadm -S /dev/md/srv-mon:0

mdadm: stopped /dev/md/srv-mon:0

Затем очищаю суперблоки RAIDа на дисках из которых пытался создать массив:

ekzorchik@srv-mon:~$ sudo mdadm --zero-superblock /dev/sdb

ekzorchik@srv-mon:~$ sudo mdadm --zero-superblock /dev/sdc

ekzorchik@srv-mon:~$ sudo mdadm --zero-superblock /dev/sdd

Теперь создаю рейд но уже по другому:

  • ekzorchik@srv-mon:~$ sudo mdadm --create --verbose /dev/md/srv-mon:0 --auto=yes --level 5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
  • ekzorchik@srv-mon:~$ sudo bash -c "mdadm --examine --scan >> /etc/mdadm/mdadm.conf"

вот такая вот строка добавилась в /etc/mdadm/mdadm.conf

ARRAY /dev/md/0 metadata=1.2 UUID=310c2489:de03df76:b8a3640f:4a11a75a name=srv-mon:0

  • ekzorchik@srv-mon:~$ sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-3.13.0-32-generic

Создаю файловую систему на /dev/md0:

  • ekzorchik@srv-mon:~$ sudo mkfs.ext4 /dev/md0

В файл: /etc/fstab добавляю строку монтирования RAIDмассива:

/dev/md0 /media/shara ext4 defaults,rw 0 0

После перезагружаюсь:

  • ekzorchik@srv-mon:~$ sudo reboot

и вот теперь все хорошо, система загрузилась, массив доступен, ошибок нет.

Дальше нужно активировать и проверить работу контроля состояния RAID массива с помощью оповещения по почте, в данную информацию должно включаться:

Информация о состоянии дискового массива (Вышел диск, проблемы с диском)

За оповещение по почте буду использовать уже полюбившийся агент MTA ssmtp, а текий postfix удалю (ставился совместно с mdadm):

ekzorchik@srv-mon:~$ sudo apt-get remove postfix -y

Устанавливаю MTA агент — ssmtp:

ekzorchik@srv-mon:~$ sudo apt-get install ssmtp mailutils -y

ekzorchik@srv-mon:~$ sudo nano /etc/ssmtp/ssmtp.conf

mailhub = smtp.yandex.ru:465

AuthUser=ekzorchik@ekzorchik.ru

AuthPass=<password>

rewriteDomain=ekzorchik.ru

UseTLS=YES

FromLineOvveride=yes

Root=postmaster

Теперь разрешаем кому можно будет из консоли отправлять почту:

ekzorchik@srv-mon:~$ sudo nano /etc/ssmtp/revaliases

root:ekzorchik@ekzorchik.ru:smtp.yandex.ru:465

ekzorchik:ekzorchik@ekzorchik.ru:smtp.yandex.ru:465

Теперь в конфигурационном файле MDADM адрес на который следует отправлять уведомления:

ekzorchik@srv-mon:~$ sudo nano /etc/mdadm/mdadm.conf

#MAILADDR root

MAILADDR alexander.ollo@nemdom.ru

Сохраняем внесенные изменения и перезапускаю сервис:

ekzorchik@srv-mon:~$ sudo /etc/init.d/mdadm restart

* Stopping MD monitoring service mdadm –monitor [ OK ]

* Starting MD monitoring service mdadm –monitor

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

ekzorchik@srv-mon:~$ sudo mdadm --monitor --scan --test --oneshot

если у Вас команда просто висит значит у Вас какие-то проблемы с отправкой почты из консоли, разбирайтесь с ssmtp.conf:

У меня письмо пришло

Отчет о состоянии RAID пришел на почту - все в порядке

Но не запускать же предыдущую команду вручную, пусть это делает планировщик к примеру раз в шесть часов для некритичных сервером, а для критичных каждый сам определяет данное значение.

Вот таким вот образом, имея практическое знакомство со множеcтвом инструментов можно в последствии их комбинировать для расширения текущего функционала друг друга, сейчас данной заметкой я еще раз прошелся по шагам как использовать программный RAID и уведомлять меня по почте на случай каких либо проблем. На этом все, с уважением автор блога — ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru