После недавней перезагрузки у меня есть пара серверов, которые теперь не могут отслеживать состояние своих дисков. Nagios сообщает:
HP RAID Array
UNKNOWN Error: No controllers detected. -/-/- (LD : [])
Я получаю ту же ошибку, выполняя проверку вручную на хосте. Когда я это делаю, журнал ядра показывает следующее, когда я запускаю эту проверку вручную:
Apr 8 17:00:00 www.example.org kernel: [12345.000000] grsec:
From 10.11.12.13: denied use of iopl() by /opt/hp/hpacucli
/hpacucli.bin[hpacucli.bin:666] uid/euid:0/0 gid/egid:0/0, parent
/bin/bash[bash:777] uid/euid:0/0 gid/egid:0/]
hpacucli - это инструмент, используемый для взаимодействия с аппаратным RAID-контроллером и сбора таких вещей, как статус диска. Неудивительно, что он использует iopl (). В документы grsec предполагает, что это регулируется kernel.grsecurity.disable_priv_io
но sysctl говорит, что ключ неизвестен, и я тоже не могу его установить.
Есть ли способ изменить это, чтобы разрешить доступ hpacucli к iopl () без перестройки ядра без использования grsec?
Вы не должны использовать hpacucli
Эти дни.
Правильный современный инструмент - это hpssacli
.
Кроме того, существуют более эффективные способы проверки состояния аппаратного RAID-контроллера. Какая ОС / дистрибутив / версия у вас установлена? У вас установлены другие агенты управления?
По иронии судьбы, причина, по которой это работает на других наших хостах HPraid, заключается в том, что они используют более новые версии hpacucli, которые, по-видимому, не используют iopl (). Обновление hpacucli на этих старых хостах решило проблему.
Остается загадка, как выборочно разрешить iopl (). Возможно, в другой день.