Поддержание и анализ Здоровья дисков в сервере - основа стабильной работы системы. Как отследить начало проблемы?
Просмотр общей информации о дисках и разделах. Состояние файловых систем и свободное место
Наша задача следить, чтобы заполнение дисков не превышало 80–85 % (для системных разделов — ещё строже), а процент использованных inode — не превышал 90 %. Напишем скрипт ежедневной автоматической проверки дисков и отправим к себе на почту результат мониторинга
Перед запуском fsck необходимо размонтировать проверяемый раздел (кроме корневого — его проверяют в режиме восстановления или при загрузке).
sudo umount /dev/sdX1
sudo fsck -y /dev/sdX1Флаг -y автоматически соглашается на исправление ошибок. Для корневой ФС проверка выполняется либо через shutdown -rF now (в некоторых системах), либо в однопользовательском режиме, либо с помощью fsck -n (без исправлений, только просмотр). fsck проверяет логическую структуру ФС, а не физическое состояние диска.
Установка smartmontools. S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) — встроенная система диагностики накопителей.
sudo apt install smartmontools
sudo yum install smartmontools
Посмотреть SMART атрибуты
sudo smartctl -a /dev/sda
Ключевые параметры, на которые нужно обратить внимание:
Краткий самотест (проверяет несколько минут):
sudo smartctl -t short /dev/sda
Долгий самотест (может занять часы):
sudo smartctl -t long /dev/sda
iostat (из пакета sysstat)
sudo iostat -x 1 5 # расширенная статистика, 5 раз с интервалом 1 секОбратитЬ внимание на:
%util — загрузка устройства (близко к 100% — узкое место). await — среднее время выполнения запроса (если > 20 мс для HDD или > 5 мс для SSD — возможны проблемы). svctm — среднее время обслуживания (в современных дисках может быть неточным).iotop - показывает, какие процессы активно читают/пишут диск:
sudo iotop -o
dstat - универсальный инструмент для сбора статистики:
dstat -d -r -t 5
sudo dmesg | grep -i "error\|fail\|sda\|sdb" | tail -50
sudo journalctl -k -f | grep -i "ata\|scsi\|sd"
Также просмотрите /var/log/syslog, /var/log/messages на предмет сообщений о сбоях, тайм-аутах, сбросе канала.
badblocks — проверка поверхности диска на битые блоки (работает низкоуровнево, опасна для работающей ФС!):