|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Файловая система
—> Мониторинг RAID
FreeBSD: Мониторинг RAID из командной строки (CLI)
Автор: mvalery.
0. Введение
Выложили деньги, поставили RAID. Теперь избыточность надежно защищает ваши данные. И успокоились. Зря. Рано или поздно выйдет из строя какой-то жесткий диск, но на поведении системы это никак не отразится. Просто избыточность исчезнет и как результат, отказ очередного HDD внезапно обвалит систему. Систему, которая возможно находится очень и очень далеко от вас. По этому, необходимо постоянно наблюдать за состоянием RAID, чтобы вовремя заметить вышедшие из строя накопители.
Задача статьи - помочь вам установить необходимую утилиту и убедиться, что утилита работоспособна и что ваш RAID так же работоспособен. Далее вы сможете по дополнительной документации найти какие-то необходимые вам команды.
Драйверы для всех упомянутых ниже типов RAID уже включены в систему. Ставим только соответствующие утилиты мониторинга.
Поразительно, что для такой важной компоненты сервера отсутствует стандартизованный интерфейс командной строки. Для каждого типа RAID приходится искать собственную программу мониторинга и если повезет найти, то ломать голову как они ставятся и как управляется. Данная статья отличная иллюстрация того, с каким "зверинцем" приходится иметь дело.
1. Как определить тип используемого RAID
Для нашего случая оказалось достаточно просмотреть директорию /dev.
Это связано с тем, что в системе FreeBSD одинаковые имена получают устройства, идентичные с точки зрения управляемости.
Чаще всего единое имя получает группа устройств построенная на базе общего набора чипов.
Для простоты изложения, в большинстве случаев я полагаю, что в системе установлен один RAID - контроллер. Наличие нескольких контроллеров потребует вспомогательных ключей. Будет необходимо разбирательство - каких именно.
И так, далее мы поговорим о следующих типах RAID:
/dev/mirror/gm0 - программный RAID gmirror
/dev/twa0 или /dev/twe0 - RAID контроллер компании AMCC 3ware (напр. 9650SE)
/dev/hptrr - RAID контроллер компании HighPoint (напр. RocketRAID 2310)
/dev/mfi0 - либо Dell Perc 5/i (чип LSI MegaRAID SAS 8408E) либо Dell PERC 6/i (чип LSI SAS1078)
Существует несколько других способов, позволяющие определить характеристики вашего железа.
В частности вы можете:
(1) просмотреть файл /var/run/dmesg.boot:
# less /var/run/dmesg.boot
| (2) воспользоваться утилитой dmidecode :
(3) или утилитой pciconf:
Попробуйте. Узнаете много интересного.
2. Программный RAID gmirror (/dev/mirror/gm0)
Программный RAID не нуждается в установке специальной утилиты. Чтобы убедиться, что RAID исправен даем команду:
Этот тип RAID отлично документирован. В многочисленной литературе вы найдете дополнительные команды управления.
Программный RAID использует компоненты сервера как аппаратную часть, а компоненты операционной системы как программную часть. В связи с большим количеством компонент, вовлеченных в функционирование программного RAID, его наработка на отказ заметно ниже, чем у RAID выполненного в виде в виде специализированного контроллера. У меня были случаи, когда на нагруженных серверах программный RAID рассыпался через 2-3 месяца круглосуточной работы. Деньги, которые я сэкономил на покупке железного RAID, были потрачены на первой же поездке к провайдеру, где установлены сервера и на работах по восстановлению файловой системы.
3. AMCC 3ware (/dev/twa0 или /dev/twe0)
Ставим утилиту мониторинга из портов:
# cd /usr/ports/sysutils/tw_cli/ && make install clean
| Доступны следующие команды:
(1) Статус RAID и отдельных дисков массива узнаем так:
(2) Общие сведения о контроллере RAID
(3) Лог аварийных сообщений
(4) Лог диагностических сообщений.
(5) Развернутая информация о типах контроллеров, поддерживаемых утилитой и сведения о некоторых дополнительных командах.
4. HighPoint (/dev/hptrr)
В портах подходящая утилита отсутствует. Но можно скачать с сайта производителя и установить готовый пакет.
(1) Создаем временную директорию
# mkdir RocketRAID && cd RocketRAID
| (2) Скачиваем архив
# wget \
http://www.highpoint-tech.com/BIOS_Driver/HRM/FreeBSD/CLI-FreeBSD-3.2-081224.tar.gz
| (3) Распаковываем
# tar xf CLI-FreeBSD-3.2-081224.tar.gz && cd CLI-FreeBSD-3.2-081224
| В текущую директорию распаковываются 4 файла:
hptsvr-3.13-4.tbz ; hptraidconf-3.2-1.tbz ; HPT_CLI_Guide.pdf ; README.txt
(4) Устанавливаем серверную часть (демона)
# pkg_add hptsvr-3.13-4.tbz
| (5) Устанавливаем клиентскую часть.
# pkg_add hptraidconf-3.2-1.tbz
| (6) Переносим на рабочую станцию файл HPT_CLI_Guide.pdf. Документ содержит подробный перечень команд, в котором на первых порах тяжеловато разобраться.
После установки, демон запускается автоматически. Далее его можно останавливать и снова запускать как всякий обычный демон командами:
# /usr/local/etc/rc.d/hptdaemon.sh stop
# /usr/local/etc/rc.d/hptdaemon.sh start
| Увы, нет даже намека как сделать, чтобы этот демон запускался автоматически при старте системы.
Командная строка для всех команд будет начинаться одинаково:
# hptraidconf -u RAID -p hpt <команда>
| здесь ключи "-u RAID -p hpt" это username и password соответственно. Вы не можете их менять.
(7) А теперь подробнее поговорим о командах:
(7.1) Получить список RAID - контроллеров :
# hptraidconf -u RAID -p hpt query controllers
| Первая колонка - номера контроллера. Нумерация начинается с единицы.
(7.2) Получить статус всех RAID, построенных на этих контроллерах:
# hptraidconf -u RAID -p hpt query arrays
| Номер RAID совпадает с номером контроллера, однако некоторые RAID - составные. Например RAID10, состоящий из четырех дисков на первом контроллере, имеет номер 1, а входящие в него зеркала, каждый из двух дисков имеют номера 1-1 и 1-2 соответственно.
(7.3) Получить информацию о RAID по его номеру:
# hptraidconf -u RAID -p hpt query arrays 1
| (Получаем статус 1-го RAID)
Если же вас интересует дополнительная информация, о входящих в него RAID, тогда делаем так:
# hptraidconf -u RAID -p hpt query arrays 1-2
| (Получаем статус 2-го RAID, вложенного в 1-й RAID)
(7.4) Получить статус всех дисков:
# hptraidconf -u RAID -p hpt query devices
| Диски нумеруются через дробь в формате номер_контроллера/номер_диска. Например 1/3 - это 3-й диск на 1-м контроллере.
Соответственно, указав этот ID, вы можете получить еще более детальную информацию об этом диске:
# hptraidconf -u RAID -p hpt query devices 1/3
| (7.5) Контроллер ведет свой лог событий, который вам доступен по команде:
# hptraidconf -u RAID -p hpt events
| (7.6) Если вы заменили испорченный диск на новый, его необходимо инициировать:
# hptraidconf -u RAID -p hpt init 1/3
| (7.7) Добавить инициированный диск в RAID
# hptraidconf -u RAID -p hpt rebuild 1 1/3
| (добавить в 1-й RAID 3-й диск)
Далее читайте HPT_CLI_Guide.pdf. Документ довольно подробный и корректный.
5. Dell Perc 5/i (LSI MegaRAID SAS 8408E) и Dell PERC 6/i (LSI SAS1078) (/dev/mfi0)
Для этого типа RAID, в портах имеется утилита (ура!), но только под Linux (ну как же).
Примечание:
(1)Читатель weec утверждает, что по его сведениям ожидается коммит порта sysutils/megacli, который не будет требовать linux-окружения. На сегодняшний день такого порта еще нет.
(2) Читатель av советует воспользоваться фирменной утилитой от LSI:
Mega CLI FreeBSD (MegaRAID Release 3.6) ver 4.0.11. Качается с сайта lsi.com.)
Ничего не могу сказать по поводу замечаний наших коллег. Поэтому, продолжаю рассказывать о том что я опробовал и что точно работает.
Для начала, разбираемся - установлена ли у нас поддержка Linux.
Если модуль linux.ko загружен, поддержка уже присутствует. Проверяем.
(1) Даем команду:
Правильный ответ - что-то вроде:
5 1 0xc6c88000 16000 linux.ko
|
(2) Если модуль linux.ko не подгружен, попытаемся его подгрузить:
а затем опять идем в п.1 и проверяем
(Вдумчивый читатель может возразить, что достаточно запросить информацию о наличии установленного пакета, который называется linux_base-fc:
# pkg_version -v -s"linux_base-fc"
| и будет почти прав. Если бы не одно НО: Эта команда ничего не покажет, если поддержка Linux была включена в процессе инсталляции системы.)
Выполнение п.3 и 4 длится довольно долго. Убедитесь, что у вас достаточно времени, чтобы дождаться завершения.
(3) Если поддержка Linux уже установлена, переходите к п.4. Иначе ставим поддержку Linux:
# cd /usr/ports/emulators/linux_base-fc4/ && make install clean
| (4) Затем собственно утилиту мониторинга:
# cd /usr/ports/sysutils/linux-megacli2/ && make install clean
|
(5) Готовимся к первому запуску.
(5.1) Загружаем модуль совместимости с Linux:
(5.2) Выставляем системную переменную:
# sysctl compat.linux.osrelease=2.6.12
| (по умолчанию 2.4.2 )
(5.3) Монтируем соответствующие элементы файловой системы:
# mount -t linprocfs linproc /compat/linux/proc
# mount -t linsysfs linsys /compat/linux/sys
| (5.4) Запускаем утилиту, чтобы убедиться, что все сделели правильно:
# megacli -AdpAllInfo -aALL
| В этот момент вы должны увидеть подробную осмысленную информацию об имеющихся в наличии контроллерах данного типа.
Тогда продолжаем.
(6) Вносим изменения в конфигурационные файлы.
(6.1) Файл /etc/rc.conf. Добавить
(6.2) Файл /etc/sysctl.conf. Добавить
# For MegaCLi
compat.linux.osrelease=2.6.12
| (6.3) Файл /etc/fstab. Добавить
# For MegaCLi
linproc /compat/linux/proc linprocfs rw 0 0
linsys /compat/linux/sys linsysfs rw 0 0
|
(7) А теперь перечень самых необходимых команд.
(7.1) Информация обо всех RAID контроллерах данного типа, присутствующих в системе:
# megacli -AdpAllInfo -aALL
| (7.2) Статус всех логических дисков, присутствующих в системе. Все они должны быть в состоянии "optimal":
# megacli -LDInfo -LALL -aALL | grep "State"
| (7.3) Статус всех физических жестких дисков для всех адаптеров. Все они должны быть в состоянии "Online":
# megacli -PDList -aALL | grep "Firmware state"
| (7.4) Получить внутренний лог всех адаптеров:
# megacli -AdpEventLog -GetEvents -f events.log -aALL && cat events.log
|
(8) список важнейших команд (только на английском) вы можете найти здесь.
http://tools.rapidsoft.de/perc/perc-cheat-sheet.html
6. Общий скрипт для контроля за состоянием всех типов RAID.
Создайте скрипт типа того, что приведен ниже. Я свой назвал raid-status.sh и раскопировал по всем серверам. Теперь на любом из моих серверов, команда
сообщает мне о состоянии моих RAID.
#!/bin/sh
# -- for gmirror
if [ -r /dev/mirror/gm0 ] ; then
echo gmirror
gmirror status
# -- for HighPoint RocketRAID 2310
elif [ -r /dev/hptrr ] ; then
echo "HighPoint RocketRAID 2310"
hptraidconf -u RAID -p hpt query arrays
# -- for AMCC 3ware 9650SE-4LP
elif [ -r /dev/twa0 ] ; then
echo "AMCC 3ware 9650SE"
tw_cli /c0 show
# -- For Dell PowerAge 1950 (Perc 5/i, Perc 6/i)
elif [ -r /dev/mfi0 ] ; then
echo "Dell PowerAge 1950 (Perc 5/i, Perc 6/i)"
echo RAID status:
megacli -LDInfo -LALL -aALL | grep "State"
echo DISKS status:
megacli -PDList -aALL | grep "Firmware state"
rm MegaSAS.log
else
echo "unnown RAID or doesn't present anyone"
fi
|
Примечание:
В процессе обсуждения на форуме всплыли описания утилит для еще двух типов RAID. Вы можете прочитать о них, если перейдете по ссылке, приведенной в нижней части статьи, после слов "Ссылка на обсуждение".
(1) /dev/amr - утилита для RAID типа Dell Perc и LSI MegaRAID. Предыдущие модели. Полный список можно получить в справке: # man 4 amr
(2) /dev/??? - утилита для RAID комании Areca(Tekram)
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=8&t=17197.
размещено: 2009-04-12,
последнее обновление: 2009-04-19,
автор: mvalery
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
|
Комментарии пользователей [18 шт.]