Учимся понимать язык пророка - S.M.A.R.T.

Fellah аватар


S.M.A.R.T. (англ. Self Monitoring Analysing and Reporting Technology) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.

S.M.A.R.T. надо понимать как медсестру, отмечающую всё,что поможет судить о твоём здоровье: время жизни, внешнее состояние кожи,УЗИ органов, жалобы и т.д. Только доктор способен судить о состоянии здоровья подопечного.
Программа считывания S.M.A.R.T. способна получить атрибуты диска, доктором будешь ты. Благо, многие атрибуты задокументированы.

Для получения атрибутов S.M.A.R.T. диска, воспользуемся утилитой smartmontools, входящая в многие дистрибутивы Linux либо на сайте http://sourceforge.net/apps/trac/smartmontools/wiki.

Сначала узнаем модель/прошивку своего диска. Smartmontools имеет базу данных большинства типов дисков. Если диск в базе, то утилита сожет интерпретировать значения атрибутов корректно.

debian:~# usersmartctl -i /dev/hda

=== START OF INFORMATION SECTION ===
Model Family:     SAMSUNG SpinPoint P80 SD series
Device Model:     SAMSUNG HD080HJ
Serial Number:    S08EJ1OL546795
Firmware Version: ZH100-41
User Capacity:    80 026 361 856 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  ATA/ATAPI-7 T13 1532D revision 4a
Local Time is:    Tue Jan 12 09:22:20 2010 YEKT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Следующим шагом узнаем показатели здоровья диска, получив ответ в одну строку: PASSED либо FAILED. В данном случае диск успешно прошёл тест. Если здоровье твоего диска имеет статус FAILING, бросай все дела и займись немедленным бэкапированием.

Остальная часть вывода предоставляет информацию о возможностях диска и предполагаемое время для выполнения краткосрочных и долгосрочных тестов:

debian:~# smartctl -Hc /dev/sda

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x02)	Offline data collection activity
					was completed without error.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.
Total time to complete Offline 
data collection: 		 (1848) seconds.
Offline data collection
capabilities: 			 (0x5b) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine 
recommended polling time: 	 (   1) minutes.
Extended self-test routine
recommended polling time: 	 (  30) minutes.
SCT capabilities: 	       (0x003f)	SCT Status supported.
					SCT Feature Control supported.
					SCT Data Table supported.

Теперь выведем атрибуты S.M.A.R.T., специфичные для данной марки (дело в том, что атрибуты больше не входят в стандартный АТА, но большинство производителей до сих пор поддерживают их). Атрибуты нумеруются с 1 до 253 и имеют специальные имена и ID номера.
debian:~# smartctl -A /dev/sda

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
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   100   100   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0007   100   100   025    Pre-fail  Always       -       3904
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       236
  5 Reallocated_Sector_Ct   0x0033   253   253   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   253   253   051    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0025   253   253   015    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       13465
 10 Spin_Retry_Count        0x0033   253   253   051    Pre-fail  Always       -       0
 11 Calibration_Retry_Count 0x0012   253   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       168
187 Reported_Uncorrect      0x0032   253   253   000    Old_age   Always       -       65536
190 Airflow_Temperature_Cel 0x0022   103   073   000    Old_age   Always       -       45
194 Temperature_Celsius     0x0022   103   073   000    Old_age   Always       -       45
195 Hardware_ECC_Recovered  0x001a   100   100   000    Old_age   Always       -       28443758
196 Reallocated_Event_Count 0x0032   253   253   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   253   253   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   253   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x000a   100   100   000    Old_age   Always       -       0
201 Soft_Read_Error_Rate    0x000a   100   100   000    Old_age   Always       -       0
202 TA_Increase_Count       0x0032   253   253   000    Old_age   Always       -       0

Обращайте внимание на показатель температуры диска.
Исследования показали, что снижение температуры на диске всего за 5 ° C значительно снижает коль-во отказов.
Порой достотаточно вентилятора, чтобы температура оставалась приемлемой.

Здесь предствалена зависимость между температурой и коэффициентом отказов http://comprad.narod.ru/Hardtrable/hddtemp.html.

Каждый атрибут имеет шестибайтовое значение RAW_VALUE (формат исходного значения RAW специфичны для вендора и не стандартизованы) и однобайтовое нормализованное VALUE.
Низкое значение VALUE говорит о быстрой деградации диска или о возможномскором сбое, т.е. чем выше значение Value атрибута, тем лучше.Чтобы отслеживать надёжность диска, микропрограммы диска преобразуют RAW значения в нормализованные от 1 до 253. Если оно меньше или равно Thresh, атрибуту присваивается статус FAILED, что отмечается в колонке WHEN_FAILED.

Здесь же можно увидеть наиболее низкое (наихудшее) значение, когда либо достигнутое диском - WORST. Критические атрибуты обозначены как Pre-FAIL, атрибуты наработки на отказ - Old_age.
При достижении критических значений атрибута Pre-FAIL, отказ диска прогнозируется в ближайшие 24 часа.

Названия/значения атрибутов и интерпретация raw values не определена никаким стандартом. Иногда различные производители используют одинаковый Attribute ID для различных целей.
Поэтому интерпретация специфических атрибутов smartctl может быть изменена опцией -v.

Технология S.M.A.R.T. предполагает циклические тесты, для фиксирования значений и прогназирования сбоев, т.е. требуется демон мониторинга.
Таковым является Smartd. Для включения, достаточно указать нужные диски и адрес почты в файле /etc/smartd.conf config file:

/dev/hda -S on -o on -a -I 194 -m адрес@домен
/dev/hdc -S on -o on -a -I 194 -m адрес@домен

Используемые параметры:
-S on включает автоматическое автосохранение атрибутов
-o on включает автоматическое off-line тестирование
-a инструктирует включить мониторинг всех атрибутов S.M.A.R.T. данного диска
-I 194 означает игнонирование атрибута с ID 194, так как температура часто меняется и нем смысла её мониторить
-m адрес@домен

Для запуска демона smartd в Debian необходимо раскомментировать строку start_smartd=yes в файле /etc/default/smartmontools и запустить /etc/init.d/smartmontools start.

Утилита smartctl способна опрашивать S.M.A.R.T. USB-дисков, либо дисков, подключенных через адаптеры USB-SATA(ATA) некоторых производителей, например JMicron.

Источники:

  1. http://www.linuxjournal.com/article/6983
  2. http://www.opennet.ru/base/sys/smart_hdd_mon.txt.html
  3. http://ru.wikipedia.org/wiki/Технология_SMART