Проверка состояния жестких дисков в Linux

Применимость: Linux

Слова для поиска: проверка дисков, hdparm, badblocks, smart, smartctl, iostat, mdstat


Задача:

Проверить состояние жестких дисков на выделенном сервере, наличие сбойных блоков на HDD, анализ S.M.A.R.T

Решение:

В этой статье будут рассмотрены способы проверки и диагностики HDD в Linux. Полученная информация поможет проанализировать состояние жестких дисков, и, если это необходимо, заменить носитель до того, как он вышел из строя неожиданно и в самый не подходящий для этого момент.
Задуматься о состоянии HDD следует по некоторым признакам поведения системы в целом: резко выросла общая нагрузка на дисковую подсистему, упала скорость чтения/записи, другие проблемы косвенно указывающие что с HDD что-то не то.
Ниже я приведу основные команды, выполнять их необходимо из-под учётной записи root
Чтобы получить список подключенных HDD в систему, выполнить:

fdisk -l

Мы получим листинг всех подключенных накопителей, их размер и имена устройств в системе.
Для того, чтобы посмотреть какие устройства и куда смонтированы, выполнить:

mount

Узнать сколько на каждом из смонтированном носителе занято пространства, выполнить:

df -h

Если мы используем софтовых RAID, его состояние мы можем проверить следующей командой:

cat /proc/mdstat

Если всё в порядке, то мы увидим что-то подобное:

Personalities : [raid1] 
md0 : active raid1 sdb1[0] sdc1[1]
488383352 blocks super 1.2 [2/2] [UU]

Из вывода видно состояние raid (active), название устройства raid (md0) и какие устройства в него включены (sdb1[0] sdc1[1]), какой именно raid собран (raid1), в нём два диска и они оба работают в raid ([2/2] [UU])

Ставим hdparm

apt-get install hdparm

Смотрим скорость чтения с накопителя

hdparm -t /dev/sdX

Где /dev/sdX - имя устройства которое необходимо проверить.

Полезной программой для анализа нагрузки на диски является iostat, входящей в пакет sysstat Ставим:

apt-get install sysstat

Теперь смотрим вывод iostat по всем дискам в системе:

iostat -x

С интервалом 10 секунд:

iostat -x 10

Или по определённому накопителю:

iostat -x /dev/sdX

Полученные данные покажут нам нагрузку на устройства хранения, статистику по вводу/выводу, процент утилизации накопителя.

Переходим непосредственно к проверке накопителей. Проверка на наличие сбойных блоков осуществляется при помощи программы badblocks. Для проверки жесткого диска на бэдблоки, выполнить:

badblocks -v /dev/sdX

Где /dev/sdX - имя устройства которое необходимо проверить. Если программа обнаружит наличие сбойных блоков, она выведет их количество на консоль. Выполнение данной операции может занять продолжительное время (до нескольких часов) и желательно её выполнение на размонтированной файловой системе, либо в режиме read-only.

Для того, чтобы записать сбойные блоки, выполняем:

badblocks /dev/sdX > /tmp/badblock

Где /tmp/badblock - файл куда программа запишет номера сбойных блоков.
Теперь при помощи программы e2fsck мы можем пометить сбойные блоки и они будут в дальнейшем игнорироваться системой. ВНИМАНИЕ! Данная операция должна проводиться на размонтированной файловой системе, либо в режиме read-only! Проверенное устройство и устройство на накотором будут помечаться сбойные блоки должно быть одно и тоже!

e2fsck -l /tmp/badblock /dev/sdX

Если были обнаружены сбойные блоки на диске, есть тенденция появления новых бэдблоков, необходимо задуматься о скорейшем копировании данных и замене данного носителя. Приведённые выше команды помогут выявить сбойные блоки и пометить их как таковые, но не спасут «сыпящийся» диск.

Также в своём инструментарии полезно использовать данные полученные из S.M.A.R.T. дисков.
Ставим пакет smartmontools

apt-get install smartmontools

Получаем данные S.M.A.R.T. жесткого диска:

smartctl -a /dev/sdX

Где /dev/sdX - имя устройства которое необходимо проверить.
Вы получите вывод атрибутов S.M.A.R.T., значение каждого из которых хорошо описаны в Википедии

Для сохранности данных настоятельно рекомендуем делать backup (резервное копирование). Это поможет в кратчайшие сроки восстановить необходимые данные и настройки в форс-мажорных обстоятельствах.

—- Актуальность: 2012/02/29