Записка про мониторинг S.M.A.R.T жестких дисков. В каждом современном жестком диске имеется контроллер оценки состояния диска, его называют S.M.A.R.T. Что расшифровывается как — Self-Monitoring, Analysis and ReportingTechnology — технология самоконтроля, анализа и отчётности. Записка рассказывает про установку утилиты «smartd» для контроля состояния HDD и отправку отчета на почту системного администратора. Также вы узнаете как контролируется состояние программного рейда массива через родную утилиту «mdadm monitor» с отправкой отчета на почтовый ящик.
Краткое содержание в краткой записки:
- Установка утилиты мониторинга SMART
- Ручная проверка SMART жесткого диска
- Настройка автоматического оповещение по почте
- Мониторинг программного массива
- Настройка отправки отчета о состоянии программного рейда
- Установка утилиты мониторинга SMART
Устанавливает пакет:
# yum install smartmontools -y
Ставим демон smartd в автозагрузку:
# chkconfig smartd on
- Ручная проверка SMART жесткого диска
Проверяем Smart имеющихся дисков в системе, находим диски которые у нас есть:
# fdisk -l | grep /dev/
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
/dev/sdb1 1 243202 1953514552+ 83 Linux
Disk /dev/sda: 160.0 GB, 160041885696 bytes
/dev/sda1 * 1 1913 15360000 83 Linux
/dev/sda2 1913 3188 10240000 83 Linux
/dev/sda3 3188 4208 8192000 82 Linux swap / Solaris
/dev/sda4 4208 19458 122497880 5 Extended
/dev/sda5 4208 19458 122496000 83 Linux
Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
Disk /dev/md0: 1000.1 GB, 1000070512640 bytes
Итого видим четыре физических диска:
- sda
- sdb
- sdc
- sdd
Проверяем Smart первого диска sda:
# smartctl -a /dev/sda
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-431.23.3.el6.x86_64] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.9
Device Model: ST3160212AS
Serial Number: 9LS531ZF
Firmware Version: 3.AAE
User Capacity: 160,041,885,696 bytes [160 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sun Aug 31 18:29:45 2014 ALMT
SMART support is: Available — device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 118 091 006 Pre-fail Always — 0
3 Spin_Up_Time 0x0003 093 093 000 Pre-fail Always — 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always — 431
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always — 0
7 Seek_Error_Rate 0x000f 061 058 030 Pre-fail Always — 824918194338
9 Power_On_Hours 0x0032 070 070 000 Old_age Always — 26712
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always — 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always — 493
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always — 0
189 High_Fly_Writes 0x003a 088 088 000 Old_age Always — 12
190 Airflow_Temperature_Cel 0x0022 062 051 045 Old_age Always — 38 (Min/Max 38/39)
194 Temperature_Celsius 0x0022 038 049 000 Old_age Always — 38 (0 17 0 0 0)
195 Hardware_ECC_Recovered 0x001a 065 046 000 Old_age Always — 115394754
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always — 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline — 0
199 UDMA_CRC_Error_Count 0x003e 200 188 000 Old_age Always — 12
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline — 0
202 Data_Address_Mark_Errs 0x0032 100 253 000 Old_age Always — 0
Здесь я выделил модель жесткого диска, серию, прошивку и самые основные параметры Smart которые говорят нам о здоровье диска. Если растут следующие параметры:
— число операций переназначенных секторов (5 — Reallocated_Sector)
— количество попыток раскрути дисков до рабочей скорости (10 — Spin_Retry_Count)
— температура (194 — Temperature_Celsius)
— количество секторов являющимися кандидатами на замену (197 — Current_Pending_Sector)
это не хорошо, про первый параметр можно сказать что это наши Bad block — плохие сектора, если меняется второй параметр — значить имеет быть механическая проблема, что тоже страшно. Третий — это как традиция :), а вот четвертый говорит нам, что у вас скоро будут новые бед сектора. Желательно сделать резервное копирование, а то гром грянет. Если это софтовый рейд, то надо заменить жесткий диск в массиве.
Хотя нормальный человек настраивает резервное копирование и не сильно боится таких проблем.
И еще, если у вас растет значение UDMA_CRC_Error_Count — значит надо поменять шлейф. На жестких дисках WD бывает растет Load_Cycle_Count — полезно будет и его мониторить. На Samsung’ах может расти 200 Multi_Zone_Error_Rate, вообщем смотрите детальный отчет S.M.A.R.T., есть вероятность, что на работу влияют и другие атрибуты отчета само-тестирования.
- Настройка автоматического оповещение по почте
Рассмотрим простую отправку отчетов через почтовую утилиту mail.
Откроем /etc/crontab и впишем туда строчку мониторинга smart двух дисков sda и sdb:
0 8 * * * (/usr/sbin/smartctl -a /dev/sda; /usr/sbin/smartctl -a /dev/sdb;) | mail -s «ServerName SMART report» root
Теперь на почту root будет приходить отчет о смарт двух дисков.
Второй способ православный.
Открываем файл /etc/smartd.conf
# vi /etc/smartd.conf
И добавляем сточки:
/dev/sda -I 194 -W 4,45,55 -R 5 -R 10 -R 197 -m admin@example.com
/dev/sdb -I 194 -W 4,45,55 -R 10 -R 197 -m admin@example.com
Здесь:
— мониторим два диска sda и sdb.
-I 194 -W 4,45,55 — это мониторинг температуры, если она станет выше на 4 градуса или превысит 45 градусов.
-R 5 — мониторинг параметра Reallocated_Sector, если он изменится придет отчет
-R 10 — мониторинг параметра Spin_Retry_Count, если он изменится придет отчет
-R 197 — мониторинг параметра Current_Pending_Sector, если он изменится придет отчет
— -m admin@example.com — почтовый адрес администратора
Перезапускаем демон smartd:
# service smartd restart
- Мониторинг программного массива
Чтобы проверить целостность массива в ручную, введите команду:
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdd[1] sdc[0]
976631360 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Здесь главное это:
— два диска sdd и sdc которые в массиве. Если будете видеть только один диск, это должно вас насторожить.
— значок [UU], который символизирует что не один диск не выпал из массива, и два диска влюблены в друг друга как муж и жена в первый год совместной жизни.
Вот пример отчета со сбойным жестким диском:
Personalities : [raid1]
md0 : active raid1 sdb2[1](F) sda2[0]
242149184 blocks super 1.0 [2/1] [U_]
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
Как видим, здесь пропала одна буква U в квадратных скобках и появилось буква F (Failed). Жесткий диск в программном массиве «умер».
- Настройка отправки отчета о состоянии программного рейда
Отправим для начала тестовый отчет пользователю root:
# cat /proc/mdstat | mail -s «ServerName MD reports» root
После этой команды на почту админа должен придти отчет о здоровье массива.
Чтобы такой отчет отправлялся каждый день, потребуется сделать следующее:
# vi /etc/crontab
0 8 * * * (cat /proc/mdstat) | mail -s «ServerName MD report» root
# vi /etc/sysconfig/mdcheck.sh
cat /proc/mdstat | mail -s «Name_Server MD report» admin@example.com
(/usr/sbin/smartctl -a /dev/sda; /usr/sbin/smartctl -a /dev/sdb; /usr/sbin/smartctl -a /dev/sdc; /usr/sbin/smartctl -a /dev/sdd;) | mail -s «Server_Server SMART report» admin@example.com
# chmod +x /etc/sysconfig/mdcheck.sh
# vi /etc/crontab
0 8 * * * /etc/sysconfig/mdcheck.sh
Другой способ отправки отчета о программном рейде:
Вписываем адрес куда слать отчет
# echo «MAILADDR admin@example.com»>>/etc/mdadm.conf
# /etc/init.d/mdmonitor restart
Отправляем тестовый отчет
# mdadm -Fs1t
- Заключение
Как стало ясно — в CentOS состояние S.M.A.R.T. мониторится через утилиту «smartd», она предоставляет детальный отчет со всеми атрибутами. При желании этот отчет отправляется на почту системного администратора. Чтобы не читать каждый день полный отчет, у этой программы имеется возможность задействования триггеров, то есть отчет отправляется на электронный ящик только тогда, когда какой нибудь из важных атрибутов поменялся. Если вы используете программный рейд массив, у вас есть возможность мониторинга состояния массива через утилиту «mdadm monitor». Она также умеет слать отчеты на почтовый ящик как и утилита «smartd». Комбинируя возможности этих двух утилит, мы получаем неплохой инструмент для контроля состояния наших жестких дисков.