Назад | Перейти на главную страницу

Мониторинг ZFS Raid Pool в Ubuntu на предмет целостности и производительности

Я установил ZFS на Ubuntu (через предохранитель) для домашнего хранилища, и он отлично работает уже почти год, несмотря на его статус «бета». Я вхожу в систему и время от времени проверяю массив, используя:

zpool status

Что приводит к:

NAME        STATE     READ WRITE CKSUM
media       ONLINE       0     0     0
  raidz1    ONLINE       0     0     0
    sda     ONLINE       0     0     0
    sdb     ONLINE       0     0     0
    sdc     ONLINE       0     0     0
errors: No known data errors 

Это все нормально, но я хотел бы автоматизировать способ проверки время от времени, чтобы убедиться, что мой пул не содержит ошибок.

В моем распоряжении есть cacti и zabbix. Полагаю, я мог бы также написать программу, которая обрабатывает этот вывод, и если она не находит фразу «Нет известных ошибок данных», отправьте мне электронное письмо.

Однако есть ли какой-либо уже сделанный пакет, который делает это, или спецификации того, как я могу получить некоторые показатели производительности из этого массива?

zpool status -x - предпочтительный способ проверить состояние пулов с помощью сценария. Его вывод будет «все пулы исправны», если нет проблем, которые немного упрощают его использование в качестве теста. В противном случае, когда вы получите более одного пула, ваш скрипт проверки и greps станут более сложными. Таким образом, вы можете настроить задание cron для запуска сценария и убедиться, что он имеет статус «все пулы исправны», и в противном случае отправить электронное письмо с предупреждением о выходе.

Вы даже можете настроить плагин nagios, который сделает это за вас. Я предполагаю, что zabbix следует расширять таким же образом.

Также убедитесь, что вы регулярно запускаете zpool scrub ... Я бы также установил это в задании cron. Это позволит обнаружить и исправить любые проблемы, которые он обнаруживает в пуле в областях файловой системы, к которым нечасто обращаются, и может выявить и исправить проблемы до того, как они приведут к повреждению данных.

Чтобы получить показатели производительности, вы можете использовать zpool iostat [секунды между обновлениями] Я не знаю, как связать это с кактусами, но уверен, что это возможно.

предполагая, что инструменты zabbix и gnu ... добавьте в файл конфигурации демона агента zabbix следующее:

UserParameter = zpool.status, статус zpool | grep -q "Нет известных ошибок данных" && echo 1 || эхо 0

теперь в zabbix добавьте элемент с ключом "zpool.status", создайте триггер против него (используя функцию типа ".last (0) = 0"), и все готово - триггер будет срабатывать всякий раз, когда эта строка отсутствует в вывод состояния zpool.

это также предполагает, что 'zpool' будет на пути пользователя zabbix, и что этому пользователю будет разрешено запускать zpool. если нет, укажите полный путь и используйте sudo. другой уловкой может быть оболочка по умолчанию, которая не поддерживает используемый синтаксис, и в этом случае вы можете либо переписать пользовательский параметр, либо заставить его использовать bash.

если возможно, также сделайте iostat -xCzn и grep для любых ошибок HW или транспорта на дисках или контроллере.