mdadm
проверить состояние raid массивов
cat /proc/mdstat
Иногда, сразу после загрузки системы один из массивов raid1 имеет статус "inactive" в /proc/mdstat. И соответственно все что должно было быть примонтировано с них — не работает.
для начала попробуем его запустить:
mdadm --run /dev/md4
если не помогло придется
пересобрать raid:
mdadm --stop /dev/md4 mdadm --assemble /dev/md4
или с указанием какие диски надо включить в raid:
mdadm --assemble /dev/md1 /dev/sda1 /dev/sda2
Иногда при просмотре состояния массивов можно увидеть такую картину:
# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sda1[0] sdg1[1] 976761472 blocks [2/2] [UU] bitmap: 0/8 pages [0KB], 65536KB chunk
Давайте разберемся что означает статус active (auto-read-only) ?
Массив в auto-read-only — на самом деле это не свидетельствует ни о какой проблеме, просто если вы не пользуетесь массивом долгое время, то он переходит в такой режим. Как только вы примонтируете раздел или начнете записывать данные, он перейдет в режим active.
перевести массив в режим readwrite принудительно:
mdadm -w /dev/md1
А вот если помимо строки active (auto-read-only) Вы увидели resync=PENDING, то это означает, что операция синхронизации массива отложена и тут явно нужно её возобновить, это делается командой
echo idle > /sys/block/md1/md/sync_action
Замена сбойного диска в программном RAID массиве.
Задача: заменить сбойный диск /dev/sdb.
Прежде всего, смотрим диагностику:
cat /proc/mdstat
или
mdadm --detail /dev/md0
Если вместо [UU] видим [U_], то дело плохо, целостность одного из дисков нарушена - нужно менять диск.
-1- Останавливаем все процессы, которые могут работать с файлами в /var/spool/avreg.
Вывести список таких процессов поможет утилита fuser из пакета psmisc
fuser -mv /var/spool/avreg
Отмонтируем подключенное устройство RAID.
umount /var/spool/avreg
-2- Помечаем раздел как сбойный:
mdadm --manage /dev/md0 --fail /dev/sdb1
-3- Отключаем раздел (удаляем из RAID1):
mdadm --manage /dev/md0 --remove /dev/sdb1
вариант когда диска уже нет в системе ( mdadm: cannot find /dev/sda1: No such file or directory )
mdadm /dev/md0 -r detached mdadm /dev/md1 -r detached
-4- Выключаем машину, меняем диск.
-5- Создаем через cfdisk или fdisk идентичные разделы, или c помощью sfdisk автоматически копируем структуру разделов первого диска /dev/sda:
sfdisk -d /dev/sda | sfdisk /dev/sdb
обязательно после этого проверить UUID
blkid /dev/sd*
если есть совпадения (а они полюбому есть))) то надо перегенерировать UUID для всех разделов нового диска
tune2fs /dev/sdb1 -U `uuid` ..........
Дополнительно: sfdisk не работает!
# sfdisk -s /dev/sda WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util sfdisk doesn’t support GPT. Use GNU Parted.
В данном случае утилита sysctl не сможет работать с дисками с GPT, для переноса разделов нам понадобится другая утилита.
Устанавливаем пакет gdisk
apt-get install gdisk
Копируем таблицу разделов с рабочего диска на замененный:
ВНИМАТЕЛЬНО СИНТАКСИС! sgdisk -R <Новый_диск> <Рабочий_диск>
sgdisk -R /dev/sda /dev/sdb
Успешный результат даст нам: The operation has completed successfully.
Теперь нам изменить у копи GUID, поскольку он тоже скопирован.
sgdisk -G /dev/sda
Смотрим результат:
gdisk -l /dev/sda
Этим способом можно пользоваться, поскольку в нашем примере «зеркальный» RAID1. При других уровнях (raid level), нужно разбить диск на раздел(ы) и пометить его(их) типом ФС «Linux raid autodetect».
-6- Добавляем раздел в RAID1 массив:
mdadm --manage /dev/md0 --add /dev/sdb1
-7- Ждем синхронизации массива:
mdadm --wait /dev/md0
Если процесс восстановления идет слишком медленно или слишком сильно ест ресурсы системы, можно искусственно понизить скорость восстановлениия или увеличить ее.
Проверяем:
cat /proc/sys/dev/raid/speed_limit_min
Изменяем:
echo 50000 > /proc/sys/dev/raid/speed_limit_min
Можно тут:
vim /etc/sysctl.conf
Выставляем нужные нам пределы
dev.raid.speed_limit_min = 50000 dev.raid.speed_limit_max = 200000
Для вступления изменений в силу.
sysctl -p
Удаление программного (software) массива RAID.
Предположим, что:
-
с помощью mdadm был создан массив RAID5 /dev/md0 из 3-х разделов 3-х SATA-дисков;
-
/dev/md0 смонтирован на точку /var/spool/avreg.
Останавливаем все процессы, которые могут работать с файлами в /var/spool/avreg.
Вывести список таких процессов поможет утилита fuser из пакета psmisc
fuser -mv /var/spool/avreg
Отмонтируем подключенное устройство RAID.
umount /var/spool/avreg
Останавливаем массив.
mdadm -S /dev/md0
Очищаем суперблоки RAID на разделах из которого собран массив.
mdadm --zero-superblock /dev/sda1 mdadm --zero-superblock /dev/sdb1 mdadm --zero-superblock /dev/sdc1
А также удаляем метаданные и подпись:
wipefs --all --force /dev/sda1 wipefs --all --force /dev/sdb1 wipefs --all --force /dev/sdc1
На этом все.
источники:
http://avreg.net/howto_software-raid-remove.html
https://www.dmosk.ru/miniinstruktions.php?mini=mdadm
- Войдите, чтобы оставлять комментарии