mysurik.ru

Как я S.M.A.R.T. на Alpine Linux настроил и перестал бояться за диски

Как я S.M.A.R.T. на Alpine Linux настроил и перестал бояться за диски

Я перепробовал кучу способов мониторить диски. Nagios, Zabbix, даже какой-то скрипт на Python самописный. Но всё оказалось либо слишком тяжеловесным, либо требовало отдельного сервера. А Alpine Linux со smartmontools — это буквально пять минут, и ты спишь спокойно.

Всё началось с того, что у меня на сервере сдох диск. Просто взял и умер. Без предупреждения, без синих экранов, без ошибок в логах. Просто пропал из системы. Клиент звонит, орёт, а я сижу и смотрю на пустую директорию. Бэкап был недельной давности. С тех пор я параноик.

S.M.A.R.T. — это штука, встроенная в каждый современный винчестер. Меряет температуру, считает ошибки. Производители закладывают эти датчики, но мало кто их использует. А зря. Это как купить машину с кучей датчиков и выкрутить все лампочки.

Alpine Linux я полюбил за то, что он жрёт 50 мегабайт оперативки. У меня валялся старый Atom-неттоп — Ubuntu на нём еле дышала. Alpine встал как родной, работает полгода без перезагрузки. Идеальный сторож для дисков.

Скачал ISO, записал на флешку:

dd if=alpine-standard-3.21.iso of=/dev/sdb bs=4M status=progress && sync

Только проверь, что /dev/sdb — это флешка, а не системный диск. Я однажды залил образ поверх работающей системы. Хорошо, тестовая была. Теперь всегда lsblk делаю перед записью.

Загрузился, ввёл setup-alpine, выбрал минимальную установку. Всё. Ставлю smartmontools:

apk add smartmontools sysfsutils

Проверяю, видит ли система диски:

smartctl --scan

Если пусто — либо диск древний, либо модуль ядра не подгрузился. У меня было — пришлось modprobe ahci добавить в автозагрузку. Час убил на эту мелочь.

Запускаю короткий тест:

smartctl -t short /dev/sda

Через пару минут смотрю результат:

smartctl -l selftest /dev/sda

Если Completed without error — выдохнул. Если нет — проблемы.

Длинный тест гоняю раз в месяц. На 4-терабайтном WD Red он шёл почти пять часов. Я думал, Alpine завис, проверял нагрузку, перезагружал — а это просто тест такой. Длинный тест ловит битые сектора, которые короткий пропускает. Если данные важны — терпи.

Автоматизировал через cron:

0 3 * * * root smartctl -t short /dev/sda && smartctl -l selftest /dev/sda >> /var/log/smart.log

Каждую ночь в три часа система проверяет диск. Утром открываю лог — и вижу. Если FAILED — бегом бекап.

Главный показатель — Reallocated Sectors Count. Если растёт — диск умирает. У меня был WD Red: за месяц с 0 до 200, через неделю лёг. Данные слил, нервы потрепал. Pending Sectors — то же самое, только диск ещё держится. Температура выше 50 градусов — ставь вентилятор. Я поставил — и Reallocated Sectors замер.

Пробовал smartd для писем, но он спамил. Остановился на cron + лог. Проще.

Alpine крутится месяцами, жрёт копейки. Я проверяю логи каждое утро. Звучит как паранойя? Когда у тебя уже сдох диск без предупреждения — хочется подстелить соломку. Не жди, поставь. Десять минут работы.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *