SMART (Self-Monitoring, Analysis and Reporting Technology) — встроенная система диагностики дисков. Не все параметры одинаково полезны. По данным Google Research и Backblaze, пять атрибутов SMART коррелируют с отказом диска:
# Установка инструментов
apt install smartmontools
# Включаем мониторинг на всех дисках
for disk in /dev/sd[a-z]; do
smartctl -s on "$disk"
done
# Проверка конкретного диска
smartctl -A /dev/sda
Критические атрибуты SMART:
| ID | Атрибут | Порог тревоги | Что означает |
| 5 | Reallocated Sectors Count | > 0 | Бэд-блоки, переназначенные в резерв |
| 187 | Reported Uncorrectable Errors | > 0 | Ошибки чтения, не исправленные ECC |
| 188 | Command Timeout | > 0 | Диск не ответил вовремя |
| 197 | Current Pending Sector Count | > 0 | Секторы, ожидающие переназначения |
| 198 | Offline Uncorrectable | > 0 | Неисправимые ошибки при offline-тесте |
# Скрипт мониторинга /opt/monitoring/smart-check.sh
#!/bin/bash
set -euo pipefail
ALERT_ATTRS=(5 187 188 197 198)
for disk in /dev/sd[a-z]; do
[ -b "$disk" ] || continue
SERIAL=$(smartctl -i "$disk" | grep -i serial | awk '{print $NF}')
MODEL=$(smartctl -i "$disk" | grep -i "Device Model" | sed 's/.*: *//')
for attr_id in "${ALERT_ATTRS[@]}"; do
RAW=$(smartctl -A "$disk" | awk -v id="$attr_id" '$1 == id {print $10}')
if [ -n "$RAW" ] && [ "$RAW" -gt 0 ] 2>/dev/null; then
MSG="ДИСК $disk ($MODEL, S/N: $SERIAL): SMART ID $attr_id = $RAW"
echo "$MSG"
curl -s -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \
-d chat_id="${TG_CHAT}" \
-d text="⚠ SMART: $MSG"
fi
done
done
# Запуск каждые 6 часов
# 0 */6 * * * root /opt/monitoring/smart-check.sh >> /var/log/smart-check.log 2>&1
По данным Backblaze, если хотя бы один из пяти атрибутов отличен от нуля, вероятность отказа диска в ближайшие 60 дней составляет 37%. Если два и более — 76%.
Оставить комментарий