- Intel RS2WC040 во FreeBSD 8.2
- Сборка RAID-массива на контроллере LSI MegaSAS во FreeBSD
- Решение проблемы с остановкой загрузки из-за RAID-контроллера Intel RS2WC040
При помощи команды visudo разрешим пользователям из группы zabbix выполнять от имени пользователя root команды для проверки состояния RAID-массивов и батареи RAID-контроллера:
%zabbix ALL=(ALL) NOPASSWD:/usr/sbin/mfiutil show volumes, \ /usr/sbin/mfiutil show adapter, \ /usr/sbin/mfiutil show batteryВпишем в файл конфигурации Zabbix-агента /usr/local/etc/zabbix24/zabbix_agentd.conf соответствующие строки:
UserParameter=raid.mfiutil,sudo /usr/sbin/mfiutil show volumes | fgrep RAID | fgrep -vc OPTIMAL UserParameter=raid.mfiutil.battery.present,sudo /usr/sbin/mfiutil show adapter | fgrep 'Battery Backup' | grep -vc present UserParameter=raid.mfiutil.battery.status,sudo /usr/sbin/mfiutil show battery | fgrep Status | fgrep -vc normalПервая команда возвращает количество неисправных RAID-массивов, вторая - количество контроллеров без установленной батареи, третья - количество батарей, не находящихся в статусе normal. То есть, если любое из значений отличается от нуля, то имеются проблемы.
После внесения изменений в конфигурацию Zabbix-агента, не забудьте его перезапустить:
# /etc/init.d/zabbix-agent restartЯ подготовил два шаблона для контроля состояния RAID-контроллера:
- Template_App_RAID_mfiutil.xml - шаблон с элементами данных типа "Zabbix-агент",
- Template_App_RAID_mfiutil_Active.xml - шаблон с элементами данных типа "Zabbix-агент (активный)".
Каждому из упомянутых элементов данных соответствует один триггер:
Почему я оговорился о том, что использовал описанную схему только "некоторое время"? Потому что через некоторое время команда mfiutil переставала работать, выводя в ответ такие вот ошибки:
# mfiutil show volumes mfiutil: Failed to get volume list: No such file or directory # mfiutil show battery mfiutil: Failed to get capacity info: No such file or directoryЭто при том, что драйвер загружен в ядро и файлы устройства на месте:
# kldstat -v | grep mfi 153 mfi/mfisyspd 152 mfi/mfid 151 pci/mfi # ls /dev/mfi* /dev/mfi0 /dev/mfid0 /dev/mfid0s1 /dev/mfid0s1a /dev/mfid0s1bПри каждом запуске команды mfiutil в журнале /var/log/messages появляются ошибки такого вида:
kernel: mfi0: IOCTL 0xc0404366 not handledВозможно дело в том, что я использую не официальный драйвер, а с официальными драйверами, которые были добавлены в систему в последующих релизах, такой проблемы нет.
Есть сервер, где используется RAID-контроллер немного другой модели - Intel RS2BL040. Эта модель RAID-контроллера поддерживается официальным драйвером и на этом сервере многократные вызовы команды mfiutil не приводят к подобным ошибкам. Но в чём точно дело - в драйвере или в модели контроллера, я с уверенностью сказать не могу. Полагаю, что дело всё же в драйвере. В таком случае, скорее всего, описанная выше схема контроля не будет приводить к проблемам на системах, использующих официальный драйвер mfi.
После того, как я столкнулся с этой проблемой, вместо команды mfiutil я стал использовать команду megacli, собранную из порта sysutils/megacli. Утилита megacli работает безотказно. Правда, описывать контроль RAID-массива с её помощью я не стану - результат получился слишком неуклюжим.
Комментариев нет:
Отправить комментарий