Приведу пример простого мониторинга программного рейда mdadm в Zabbix.
Читать далее «Мониторинг mdadm в Zabbix»Архивы меток:mdadm
Как я делал заявку в Hetzner на замену диска в рейде
Уже довольно часто писал заяви в Hetzner на замену дисков в рейде и в этой статье опишу один из случаев.
И так, однажды утром, после выпадения диска из рейда, mdadm прислал мне сообщение на email.
Читать далее «Как я делал заявку в Hetzner на замену диска в рейде»
Настройка программного RAID1 на работающей системе Ubuntu
Приведу пример миграции работающей системы Ubuntu на программный RAID1.
В процессе необходимо будет выполнить две перезагрузки.
Первым делом переключимся на root пользователя если еще не под ним:
sudo -i
Посмотрим список дисков и разделов:
fdisk -l fdisk -l | grep '/dev/sd' lsblk -o NAME,UUID
Предположим что в системе используется один диск, например /dev/sda и имеет один основной раздел /dev/sda1.
Для теста установил чистый Ubuntu Server 18.04, диск так был размечен по умолчанию, swap был файлом на этом же разделе.
Чтобы создать рейд, подключим еще один диск такого же размера, он будет называться /dev/sdb.
Читать далее «Настройка программного RAID1 на работающей системе Ubuntu»
Решение ошибки «md: kicking non-fresh sda1 from array»
Был когда-то случай, выпал из рейда один диск и при загрузке сервера в логах отображалось сообщение:
md: kicking non-fresh sda1 from array
Так как диск был не в рейде, то данные на нем устарели.
Прежде всего проверим диск на ошибки, например как я писал в статье указанной ниже, и попытаемся определить почему он был исключен из рейда.
В моем случае диск был полностью рабочий, поэтому посмотрев информацию о рейде:
cat /proc/mdstat mdadm --detail /dev/md0
Вернул его обратно в рейд:
mdadm /dev/md0 -a /dev/sda1
Спустя некоторое время данные синхронизировались на диск и ошибка больше не появлялась.
Смотрите также:
Диагностика HDD используя smartmontools
mdadm — утилита управления программными RAID массивами
Решение проблемы с выпавшими дисками mdadm
Решение проблемы с выпавшими дисками mdadm
Получил сегодня от одного из серверов на Hetzner три email сообщения с информацией о рейдах md0, md1, md2:
DegradedArray event on /dev/md/0:example.com
This is an automatically generated mail message from mdadm
running on example.com
A DegradedArray event had been detected on md device /dev/md/0.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid6] [raid5] [raid4] [raid1]
md2 : active raid6 sdb3[1] sdd3[3]
208218112 blocks super 1.0 level 6, 512k chunk, algorithm 2 [4/2] [_U_U]
md1 : active raid1 sdb2[1] sdd2[3]
524224 blocks super 1.0 [4/2] [_U_U]
md0 : active raid1 sdb1[1] sdd1[3]
12582784 blocks super 1.0 [4/2] [_U_U]
unused devices:
Посмотрел информацию о RAID и дисках:
cat /proc/mdstat cat /proc/partitions mdadm --detail /dev/md0 mdadm --detail /dev/md1 mdadm --detail /dev/md2 fdisk -l | grep '/dev/sd' fdisk -l | less
Собрался отправить тикет в техподдержку и запланировать замену выпавших SSD дисков.
Записал SMART информацию о выпавших дисках в файлы, там же был их серийный номер:
smartctl -x /dev/sda > sda.log smartctl -x /dev/sdc > sdc.log
Удалить диски из рейда если что можно так:
mdadm /dev/md0 -r /dev/sda1 mdadm /dev/md1 -r /dev/sda2 mdadm /dev/md2 -r /dev/sda3 mdadm /dev/md0 -r /dev/sdc1 mdadm /dev/md1 -r /dev/sdc2 mdadm /dev/md2 -r /dev/sdc3
Если какой-то раздел диска отображается как рабочий, а диск нужно извлечь, то сначала помечаем раздел не рабочим и потом удаляем, например если /dev/sda1, /dev/sda2 выпали, а /dev/sda3 работает:
mdadm /dev/md0 -f /dev/sda3 mdadm /dev/md0 -r /dev/sda3
В моем случае, посмотрев информацию о выпавших дисках обнаружил что они целые и рабочие, даже лучше активных.
Посмотрел разделы дисков:
fdisk /dev/sda p q fdisk /dev/sdc p q
Они были размечены одинаково как и прежде:
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00015e3f
Device Boot Start End Blocks Id System
/dev/sda1 1 1567 12582912+ fd Linux raid autodetect
/dev/sda2 1567 1633 524288+ fd Linux raid autodetect
/dev/sda3 1633 14594 104109528+ fd Linux raid autodetect
Поэтому поочередно дождавшись синхронизации каждого вернул эти диски обратно в рейд:
mdadm /dev/md0 -a /dev/sda1 mdadm /dev/md1 -a /dev/sda2 mdadm /dev/md2 -a /dev/sda3 mdadm /dev/md0 -a /dev/sdc1 mdadm /dev/md1 -a /dev/sdc2 mdadm /dev/md2 -a /dev/sdc3
По окончании команда cat /proc/mdstat уже отображалась с [UUUU].
Если диски заменили новыми, то их нужно разбить аналогично установленным.
Пример разметки диска /dev/sdb аналогично /dev/sda с MBR:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Пример разметки /dev/sdb с GTP и назначения диску случайного UUID:
sgdisk -R /dev/sdb /dev/sda sgdisk -G /dev/sdb
Также на новоустановленный диск необходимо установить загрузчик:
grub-install --version grub-install /dev/sdb update-grub
Либо через меню grub (hd0 это /dev/sda, hd0,1 — /dev/sda2):
cat /boot/grub/device.map grub device (hd0) /dev/sda root (hd0,1) setup (hd0) quit
Если установка grub выполняется из загрузочного диска, то нужно посмотреть список разделов и выполнить монтирование, например если RAID не используется:
ls /dev/[hsv]d[a-z]*[0-9]* mount /dev/sda3 /mnt
Если используется программный RAID:
ls /dev/md* mount /dev/md2 /mnt
Либо LVM:
ls /dev/mapper/* mount /dev/mapper/vg0-root /mnt
И выполнить chroot:
chroot-prepare /mnt chroot /mnt
После монтирования можно восстанавливать GRUB как я писал выше.
Смотрите также другие мои статьи:
Как я делал заявку в Hetzner на замену диска в рейде
Решение ошибки «md: kicking non-fresh sda1 from array»
Решение предупреждения «mismatch_cnt is not 0 on /dev/md*»
mdadm — утилита управления программными RAID массивами
Описание типов RAID
Диагностика HDD используя smartmontools
Восстановление GRUB Linux
Создание RAID при установке Ubuntu
На тесте при установке Ubuntu Server 14.04 LTS создам программный RAID1.
Замечу что, при создании RAID будет автоматически использоваться mdadm.
Подключу к серверу два одинаковых диска (аналогично можно попробовать создать RAID на виртуальной машине например созданной в VirtualBox).
mdadm — утилита управления программными RAID массивами
Рекомендую прочитать мою статью Описание типов RAID.
Установить mdadm в Ubuntu можно командой:
Читать далее «mdadm — утилита управления программными RAID массивами»