Инструменты пользователя

Инструменты сайта


howto:sysadmin:mdraid

Это старая версия документа!


Программный RAID

http://xgu.ru/wiki/Программный_RAID_в_Linux

Файловая система создается поверх рейд-массива.

Создать raid-1 с одним отсутствующим диском:

mdadm --create --verbose /dev/md0 --level=1 --bitmap=internal --raid-devices=2 /dev/xvdb1 missing
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Недостающий диск можно подключить позднее:

mdadm /dev/md0 --add /dev/xvdc1

Пометить диск как сбойный и удалить его из массива:

 mdadm /dev/md0 --fail /dev/sdb1
 mdadm /dev/md0 --remove /dev/sdb1

Если диск уже пропал из системы, то mdadm откажется его удалять т.к. «no such file». В таком случае выполняем удаление всех отсоединенных дисков:

mdadm /dev/md0 -r detached

Создать raid-5 с тремя дисками и одним диском в горячем резерве (hot-spare), размер чанка 64КБ, bitmap хранится в файле /md2.bitmap:

mdadm --create --verbose /dev/md2 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{f,g,h,i}1 --chunk=512  --bitmap=/md2.bitmap
mdadm --readwrite /dev/md2

Удаление суперблока:

mdadm --zero-superblock /dev/sdx

Загрузка с raid1

Известный баг Grub: если корневая система в raid, то при загрузке с одного из дисков reboot сразу после появления надписи «Welcome to Grub!».

Решение – раскомментировать строчку

GRUB_TERMINAL=console

в файле /etc/default/grub, и выполнить команду

update-grub

Выравнивание разделов диска

Для нормальной производительности и уменьшения износа диска важно выравнивать разделы по блокам/цилиндрам. Современные диски большого объема имеют увеличенный размер сектора в 4096 байт (вместо 512), что создает дополнительные сложности. Рекомендуется выравнивать всё по 1 МБ.

При создании LVM:

  pvcreate --dataalignment=1M 

Для raid-5

/etc/udev/rules.d/60-md-stripe-cache.rules
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="8192"
udevadm trigger
udevadm control --reload-rules

Скорость синхронизации

Чтобы сервер не «подвис» в момент ресинхронизации дисков, устанавливаем предел скорости.

/etc/sysctl.d/mdadm.conf
dev.raid.speed_limit_max = 10240

sysctl -p /etc/sysctl.d/mdadm.conf

Производительность

Перенос корневого раздела на программный рейд

Основная идея (без подробностей): Если новый раздел меньшего размера, то не остается других выходов, кроме как:

  • Установить mdadm.
  • Создать программный рейд-массив для будущего корневого раздела.
  • Создать на новом массиве ФС, примонтировать ФС в /mnt, скорпировать туда все каталоги и файлы из корневого раздела (кроме тех, которые являются точкой монтирования виртуальных ФС).
  • Создать каталоги /mnt/dev, /mnt/sys, /mnt/proc
  • Сделать mount --bind /dev /mnt/dev (повторить для sys и proc).
  • Сделать chroot /mnt
  • Поправить /etc/fstab
  • Запустить dpkg-reconfigure mdadm
  • Запустить dpkg-reconfigure grub-pc
  • Перезагрузиться в новую систему.

Проверил – всё получилось.

howto/sysadmin/mdraid.1572106741.txt.gz · Последние изменения: 2019/10/26 19:19 — 127.0.0.1