Вступление
В этой статье объясняется использование программного RAID-массива для организации взаимодействия нескольких дисков в операционной системе Linux без использования аппаратного RAID-контроллера.
Серверы с более чем двумя дисками, которые были заказаны вместе с операционной системой или были установлены с помощью робота , уже настроены с рекомендуемым уровнем RAID (1 или 6). Более того, вы можете выполнять настраиваемые установки Linux с помощью нашего сценария Installimage в системе восстановления , который также можно использовать для настройки нескольких уровней рейда. Также программный RAID можно комбинировать с LVM.
Отображение состояния программного RAID
Поэтому просто используйте эту команду:
cat /proc/mdstat
Вывод, если нет активного RAID:
Personalities : [raid1]
unused devices: <none>
Выход для настроенного RAID1:
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
234405504 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
md1 : active raid1 sda2[2] sdb2[1]
523712 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[2] sdb1[1]
33521664 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Вывод для настроенного RAID0 ( /boot
раздел md0
всегда должен быть настроен как RAID1, чтобы сервер мог загружаться с него):
Personalities : [raid1] [raid0]
md2 : active raid0 sda3[0] sdb3[1]
883956736 blocks super 1.2 512k chunks
md1 : active raid0 sda2[0] sdb2[1]
52393984 blocks super 1.2 512k chunks
md0 : active raid1 sda1[0] sdb1[1]
523264 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Если под одним из разделов отображается индикатор выполнения, в настоящее время выполняется повторная синхронизация RAID:
md0 : active raid1 sdb1[0] sdc1[1]
2095040 blocks super 1.2 [2/2] [UU]
[====>................] resync = 32.7% (418656/2095040) finish=4.2min speed=131219K/sec
Добавить программный RAID-массив
В нашем примере сценария диски /dev/sda
и /dev/sdb
уже объединены в несколько массивов RAID1, которые содержат операционную систему:
cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
234405504 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
md1 : active raid1 sda2[2] sdb2[1]
523712 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[2] sdb1[1]
33521664 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Но у нас есть еще два диска ( /dev/sdc
и /dev/sdd
), которые мы также хотели бы настроить как хранилище данных с массивом RAID1. Поэтому сначала нужно добавить RAID-массив:
mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
Теперь конфигурация RAID должна выглядеть следующим образом:
cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdc1[0] sdd1[1]
2095040 blocks super 1.2 [2/2] [UU]
[====>................] resync = 32.7% (418656/2095040) finish=4.2min speed=131219K/sec
md2 : active raid1 sda3[2] sdb3[1]
234405504 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
md1 : active raid1 sda2[2] sdb2[1]
523712 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[2] sdb1[1]
33521664 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Теперь новый раздел можно отформатировать (здесь с помощью EXT4) и смонтировать:
mkfs.ext4 /dev/md3
mount /dev/md3 /mnt
Уведомление по электронной почте при отказе диска в программном RAID
Требование : выбранный вами почтовый сервер (например, Sendmail ) должен быть уже установлен и настроен.
Debian / Ubuntu / CentOS
Отредактируйте /etc/mdadm/mdadm.conf
или /etc/mdadm.conf
(CentOS) и измените следующую строку:
MAILADDR holu@example.com
Здесь можно указать адрес назначения напрямую. Кроме того, все электронные письма, отправленные в root, могут быть отправлены на определенный адрес электронной почты с помощью /etc/aliases
.
Вы также можете дополнительно настроить адрес электронной почты для отправки:
MAILFROM mdadm@example.com
Для Debian и Ubuntu, важно , чтобы вы установили AUTOCHECK
в файле /etc/default/mdadm
на true
:
# grep AUTOCHECK= /etc/default/mdadm
AUTOCHECK=true
Для CentOS необходимо включить проверку в файле /etc/sysconfig/raid-check
:
# grep ENABLED /etc/sysconfig/raid-check
ENABLED=yes
openSUSE
Отредактируйте /etc/sysconfig/mdadm
и добавьте адрес электронной почты, на который вы будете получать уведомление, рядом с переменной MDADM_MAIL
:
MDADM_MAIL="holu@example.com"
Проверить конфигурацию
Вы можете проверить свою конфигурацию, разрешив mdadm
отправить тестовое письмо на указанный адрес электронной почты с помощью этой команды:
mdadm --monitor --test --oneshot /dev/md0
Кроме того, вы должны убедиться, что файл /etc/cron.daily/mdadm
содержит следующую строку, которая выполняет ежедневный мониторинг вашего RAID:
exec --monitor --scan --oneshot
Удаление программного RAID
Чтобы удалить программный RAID, вы можете использовать следующие команды. Если это необходимо сделать для системных разделов, мы рекомендуем загрузить сервер в Rescue System :
mdadm --remove /dev/md0
mdadm --remove /dev/md1
mdadm --remove /dev/md2
mdadm --stop /dev/md0
mdadm --stop /dev/md1
mdadm --stop /dev/md2
После этого диски можно снова нормально отформатировать (например, с помощью EXT4):
mkfs.ext4 /dev/sda
mkfs.ext4 /dev/sdb
Результат можно проверить с помощью команд …
cat /proc/mdstat
…а также…
fdisk -l
Программный RAID следует удалить сейчас.