Почему ZFS не сообщает о деградации диска?

Почему ZFS не сообщает о деградации диска?

SMART обнаружил неустранимую ошибку чтения на одном из моих дисков, но zpool statusвсе диски отображаются как ONLINE (т.е. не DEGRADED).

  1. Знаете, почему это может быть? Я думал, что ZFS узнает о любых ошибках как можно скорее...
  2. Нужно ли мне запускать очистку, чтобы перепроверить состояние всех дисков?
  3. Можно ли как-то настроить автоматическую отправку SMART-данных в ZFS?

решение1

  1. Знаете, почему это может быть? Я думал, что ZFS узнает о любых ошибках как можно скорее...
  2. Нужно ли мне запускать очистку, чтобы перепроверить состояние всех дисков?
  3. Можно ли как-то настроить автоматическую отправку SMART-данных в ZFS?
  1. Нет, он не проверяет все блоки все время, он просто гарантирует, что каждый записанный блок может быть учтен (и восстановлен, если доступна избыточность) как только он понадобится/к нему будет получен доступ. Пустое пространство вообще не проверяется (потому что у вас там нет ценных данных, так что это было бы пустой тратой времени), а обычные данные проверяются только при чтении (поскольку запись — это только добавление). Как правильно сказал mmusante, вы получите сообщения об ошибках только в том случае, если ошибка критическая и не может быть восстановлена ​​автоматически (в противном случае вы просто увидите уведомление и количество ошибок в zpool status).
  2. Да.
  3. Может быть проще просто регулярно (через cronjob) чистить пул. Обычно рекомендуется делать это примерно раз в месяц для дисков корпоративного уровня и раз в неделю для дисков потребительского уровня. В противном случае вы можете запустить ручную очистку с помощьюскрипт от smartmontools:

    В большинстве случаев вам нужно только поместить скрипт в /etc/smartmontools/run.d/. Всякий раз, когда smartd хочет отправить отчет, он запускает smart-runner, а последний запускает ваш скрипт.

    У вас есть несколько переменных, доступных для вашего скрипта (опять же, см. man-страницу smartd). Они получены в результате тестового запуска:

    SMARTD_MAILER=/usr/share/smartmontools/smartd-runner
    SMARTD_SUBJECT=SMART error (EmailTest) detected on host: XXXXX
    SMARTD_ADDRESS=root
    SMARTD_TFIRSTEPOCH=1267409738
    SMARTD_FAILTYPE=EmailTest
    SMARTD_TFIRST=Sun Feb 28 21:45:38 2010 VET
    SMARTD_DEVICE=/dev/sda
    SMARTD_DEVICETYPE=sat
    SMARTD_DEVICESTRING=/dev/sda
    SMARTD_FULLMESSAGE=This email was generated by the smartd daemon running on:
    SMARTD_MESSAGE=TEST EMAIL from smartd for device: /dev/sda
    

    Ваш скрипт также имеет временную копию отчета, доступную как "$1". Она будет удалена после того, как вы закончите, но то же самое содержимое будет записано в /var/log/syslog.

    Затем вам просто нужно сопоставить имя устройства с вашим пулом (можно выполнить парсинг zpool status).

Связанный контент