Управление программными RAID1-массивами в RHELМониторинг состояния
Информация о всех RAID-массивах:
# more /proc/mdstat
или
# cat /proc/mdstatИнформация о конкретном дисковом разделе:
# mdadm -E /dev/sd<a-b><1-10>
например:
# mdadm -E /dev/sdb2
Восстановление функционированияВосстановление функционирования (rebuild) разделов диска по одному после однократного "несмертельного" сбоя:
# mdadm -a /dev/md<0-6> /dev/sd<a-b><1-10>
например:
# mdadm -a /dev/md0 /dev/sdb1
Нужно быть аккуратным с номерами разделов
В случае ошибки, удалить компонент из RAID командой:
# mdadm -r /dev/md0 /dev/sdb1
получается не всегда - устройство может быть занято.
Замена диска1. Выключить компьютер и заменить диск
2. Включить компьютер и определить имеющиеся на обоих дисках разделы:
# fdisk /dev/sd<a-b> -l3. С помощью fdisk создать на новом диске разделы, идентичные оригиналу
Необходимо пометить нужный раздел нового диска (sda1 или sdb1) как загрузочный до включения в зеркало.
Swap-разделы не подлежат зеркалированию в программном RAID4. Выполнить Мониторинг состояния и Восстановление функционирования
Настройка оповещенияМониторинг выполняется с помощью crond ежечасно.
В папку /etc/cron.haurly помещен файл mdRAIDmon, содержащий команду:
# mdadm --monitor --scan -1 --mail=postmaster@domain.name.ruДля проверки рассылки сообщения добавляется ключ --test:
# mdadm --monitor --scan -1 --mail=postmaster@domain.name.ru --testПомещая файл задания в папку, необходимо установить права доступа на выполнение
Если нужно чаще, самое простое, добавьте в /etc/crontab строку, используя нотацию с "/", например:
*/5 * * * * root run-parts /etc/cron.my5minКонечно, можно попробовать и другие варианты планирования заданий с atd или batch.
Создайте папку /etc/cron.my5min и поместите туда файл mdRAIDmon
C имитацией отказа диска мне было проще - сервер SR1425BK1 - с корзиной HotSwapURL:
Обсуждается: http://www.opennet.me/tips/info/881.shtml
пипец скока гимороя, непроще купить апаратный ?
они уже достаточно доступны
> скока гимороя, непроще купить апаратный ?
Действительно!? Проще.
Ведь "аппаратный", за который "уплОчено" не надо ни мониторить, ни восстанавливать, правда?
нет мониторить надо, а "востанавливать" он умеет сам забрав из хот спаре винт, да если нету такова то всеравно всунул/высунул, все никаких проблем, про производительност ьвобще молчу.
и для того же мониторинга есть куча вменяемого софта, который может нормально оповестить о сбое, или вы с ноутом и инетом спите/гуялете/отдыхаете ?
А софтовый sparse вам религия поставить запрещает?Любой аппаратный рейд до 500$ стоимостью явно проигрывает програмному в Linux.
И производительность нормальная.
как поднять софтовый raid1 на загружаемый раздел?
sda1 к примеру, есть такой же sdb1.
я к тому что возможно ли это провести на "горячую" ?
извините, а если mdadm был настроен на raid-5 с 4 дисками, при выключении одного он читать-то как-нибудь с 3ёх даст? у меня не даёт, но восстанавливает без проблем
>извините, а если mdadm был настроен на raid-5 с 4 дисками, при
>выключении одного он читать-то как-нибудь с 3ёх даст? у меня не
>даёт, но восстанавливает без проблемУ меня даёт.
PS
> Swap-разделы не подлежат зеркалированию в программном RAIDЭто не так. Если требуется снизить возможность сбоя -- ещё как подлежат (равно как и в аппаратном). Другое дело, что если машинка под рукой и некритична -- проще разбросать свопы с одинаковым приоритетом по дискам, разделы с данными на которым собраны в зеркало (см. swapon(8), swapon(2) /pri).
Протестил я это дело на Ubuntu Server 6.0.xx
пашет. При инсталляции, поднял 1 и 5 раид.
вынул 1 хард - сам хот спару поднял и заребилдил
а вот обратно - все ручками надо делать.
Читать с 3-х - тоже дал!
Спасибо автору - статья помогла.
Итоги - скорость копирования из каталога в каталог 4Гб файла - 40 МБ/сек
винты - ИБМ, 10 000 шпиндель, 160 - шина. 36,7 гиг. Контроллер Tekram DC390 U3D.
>Читать с 3-х - тоже дал!А что в этом противоестественного? Винда с ее динамическими дисками справляется.
Юзали на веб-хостинге 3ware raid довольно недешевый - начал парить мозг (без матов как именно говорить не могу, поэтому подробности опускаю). и вот где гемор :-) везти его из Москвы можно месяц и то если повезет, а linux незахотел подниматься без рейда!!! если у вас веб-сервер который должен всегда пахать - юзайте софтварный рейд. Это стопудовая незавсисимость от железа. Не разу кстати не видел, чтобы рейд жрал хотя-бы один процент процессорного времени.
>Это стопудовая незавсисимость от железа.Угу.
>Не разу кстати не видел, чтобы рейд жрал хотя-бы один процент процессорного времени.
Ну мне вот доводилось :)
От видения неприятного процента CPU за md*_raid*, страшных iowait и LA помогают:
- тесты _заранее_ под нагрузкой (bonnie/bonnie++ в помощь): может, лишнее место не стоит тормозов БД (или ещё чего активно пишущего) и лучше сделать 1/10, а не 5?
- для 5/6: stripe alignment (http://www.pythian.com/blogs/411/aligning-asm-disks-on-linux)
- понимание, что такое seek, и разнос нагрузки по физическим шпинделям (и их пачкам)
- монтировать с noatime, если оно некритично
- xfs (ОБЯЗАТЕЛЬНО с UPS!)
- разумное поднятие readahead и stripe cache, подбор io scheduler -- например, для двух SATA RAID5 по четыре диска каждый:for i in a b c d e f g h; do
echo deadline > /sys/block/sd$i/queue/scheduler
echo 1024 > /sys/block/sd$i/queue/read_ahead_kb
doneecho 2048 > /sys/block/md0/md/stripe_cache_size
echo 2048 > /sys/block/md4/md/stripe_cache_sizehdparm -a 1024 /dev/sd[a-h]
hdparm -a 4096 /dev/md[04]
Я далеко не гуру линукса.Можно все тоже самое, только "на пальцах"? (Для простых смертных)
>Я далеко не гуру линукса.Аналогично :-)
>Можно все тоже самое, только "на пальцах"? (Для простых смертных)
bonnie/bonnie++ -- это бенчмарки, обычно живут в одноименных пакетах в дистрибутиве.
noatime -- параметр монтирования ФС, при котором чтение данных не приводит к записи в метаданные (см. man mount, man fstab).
xfs -- файловая система, которая хорошо держит большую нагрузку.
последним пунктом можно не заморачиваться, но если есть где -- то лучше поискать по упоминаемым словам вроде md stripe cache и поэкспериментировать.
>поискать по упоминаемым словам вроде md stripe cache и поэкспериментировать.Поскольку спросили -- вот скрипт со ссылками:
#!/bin/sh
# http://www.mail-archive.com/linux-raid@vger.kernel.org/...
# (thanks vsu@)
# https://mail.clusterfs.com/wikis/attachments/LustreManual.ht...
# `-> The "cfq" and "as" schedulers should never be used for server platform
for i in a b c d e f g h; do
echo deadline > /sys/block/sd$i/queue/scheduler
echo 1024 > /sys/block/sd$i/queue/read_ahead_kb
done# http://scotgate.org/?p=107
echo 2048 > /sys/block/md0/md/stripe_cache_size
echo 2048 > /sys/block/md4/md/stripe_cache_size#echo 3000 > /sys/block/md4/md/sync_speed_min
#echo 5000 > /sys/block/md4/md/sync_speed_maxhdparm -a 1024 /dev/sd[a-h]
hdparm -a 4096 /dev/md[04]