S.M.A.R.T. для HDD и SSD - как интерпретировать значения

SMART (S.M.A.R.T. - аббревиатура от Self-Monitoring, Analysis and Reporting Technology) - технология самодиагностики устройства хранения данных (SSD, HDD и других) и механизм предсказания времени выхода устройства из строя.

Если все параметры S.M.A.R.T. в норме - это не гарантирует, что SSD или HDD не выйдет из строя в ближайшее время, но если хотя бы один из критичных параметров S.M.A.R.T. ниже или равен пороговому значению сбоя, то нужно срочно принимать меры по замене устройства, так как вероятность выхода его из строя слишком высока. Согласно статистике, S.M.A.R.T. смог предупредить о 60% предстоящих поломках устройств, но в 40% они произошли неожиданно: о механическом повреждении, значительных скачках напряжения и многих других причинах S.M.A.R.T. предупредить не сможет.

Программы тестирования и мониторинга устройств хранения информации, как например CrystalDiskInfo (Windows) или Smartmontools (Linux) смогут сообщить о возможном сбое в доступной форме, но лучше разбираться, как интерпретировать значения в параметрах S.M.A.R.T. самостоятельно, чтобы исключить ложные сообщения о сбое или принять решение о замене устройства задолго до его критичной поломки.

Расшифровка S.M.A.R.T.

Расшифровка S.M.A.R.T. для SATA(ATA) устройств. Как правильно интерпретировать значения рассмотрим на примере данных S.M.A.R.T. с реального рабочего, находящегося под постоянной нагрузкой, жесткого диска Seagate Enterprise ST4000NM0024 4TB:

S.M.A.R.T. HDD Seagate Enterprise ST4000NM0024 4TB

Id10 Id16 Attribute Name Flags Value Worst Thresh Type Updated When failed Raw Value
1 1 Raw_Read_Error_Rate
POSR--
0x000F
078 063 044 Pre-fail Always - 83869502
3 3 Spin_Up_Time
PO----
0x0003
095 094 000 Pre-fail Always - 0
4 4 Start_Stop_Count
-O--CK
0x0032
100 100 200 Old_age Always - 16
5 5 Reallocated_Sector_Ct
PO--CK
0x0033
100 100 010 Pre-fail Always - 0
7 7 Seek_Error_Rate
POSR--
0x000F
081 060 030 Pre-fail Always - 153563439
9 9 Power_On_Hours
-O--CK
0x0032
055 055 000 Old_age Always - 39125
10 A Spin_Retry_Count
PO--C-
0x0013
100 100 097 Pre-fail Always - 0
12 C Power_Cycle_Count
-O--CK
0x0032
100 100 020 Old_age Always - 16
184 B8 End-to-End_Error
-O--CK
0x0032
100 100 099 Old_age Always - 0
187 BB Reported_Uncorrect
-O--CK
0x0032
100 100 000 Old_age Always - 0
188 BC Command_Timeout
-O--CK
0x0032
100 100 000 Old_age Always - 0 0 2
189 BD High_Fly_Writes
-O-RCK
0x003A
100 100 000 Old_age Always - 0
190 BE Airflow_Temperature_Cel
-O---K
0x0022
055 049 045 Old_age Always - 45 (Min/Max 40/47)
191 BF G-Sense_Error_Rate
-O--CK
0x0032
001 001 000 Old_age Always - 410944
192 C0 Power-Off_Retract_Count
-O--CK
0x0032
100 100 000 Old_age Always - 1
193 C1 Load_Cycle_Count
-O--CK
0x0032
097 097 000 Old_age Always - 6643
194 C2 Temperature_Celsius
-O---K
0x0022
045 051 000 Old_age Always - 45 (0 24 0 0 0)
195 C3 Hardware_ECC_Recovered
-O-RC-
0x001A
046 042 000 Old_age Always - 82970866
197 C5 Current_Pending_Sector
-O--C-
0x0012
100 100 000 Old_age Always - 0
198 C6 Offline_Uncorrectable
----C-
0x0010
100 100 000 Old_age Offline - 0
199 C7 UDMA_CRC_Error_Count
-OSRCK
0x003E
200 200 000 Old_age Always - 0

Значения в колонках

  • Id, Num или Number - номер, идентификатор параметра S.M.A.R.T. Id10 - номер в десятичной системе, Id16 - в шестнадтцатиричной.
  • Attribute Name - название атрибута, может отличаться в различных программах работающих со S.M.A.R.T., поэтому лучше ориентироваться по id (номеру) параметра.
  • Flag - дополнительные параметры:
    • P - prefailure warning. Если флаг "P" установлен, то при Value равном Threshold или выходе за пределы Threshold - это сигнал к тому, что в ближайшее время устройство перестанет работать. Если флаг P не установлен, то проблемные значения не критичны для работы устройства.
    • O - updated online. Если флаг "O" установлен, то значения для параметров "Value", "Worst" обновляются автоматически в процессе обычной работы устройства. В противном случае, обновление значения будет происходить только после запуска Offline-теста S.M.A.R.T.
    • S - speed/performance.
    • R - error rate.
    • C - event count.
    • K - auto-keep.
    • Число в шестнадцатеричном формате под флагами - это те же флаги, только закодированные в шестнадцатеричный формат. Чтобы перевести число во флаги, необходимо конвертировать число из шестнадцатеричного формата в двоичный и развернуть двоичное число. Единица - флаг установлен, ноль - не установлен. Чтобы получить флаги в буквенном и цифровом виде, можно, например, запустить утилиту smartctl 2 раза с разными параметрами: # smartctl -A /dev/sda и # smartctl -A -f brief /dev/sda
  • Value - самые новые (актуальные) нормализованные значения в пределах от 1 до 254.
  • Worst - наихудшее нормализованное значение за все время работы устройства в пределах от 1 до 254.
  • Thresh (Threshold) - пороговые нормализованные значения в пределах от 0 до 255.
  • Type - значение "Pre-fail" - это то же самое, что и наличие флага "P" в колонке Flag, "Old_age" - отсутствие флага "P". "Pre-fail" не означает, что с устройством есть каки-либо проблемы и служит лишь для того, чтобы указать, что если проблемы со значением "Value" все же присутствуют, то необходимо принять незамедлительные меры по резервированию информации и подготовке замены для устройства. Если есть какие-либо проблемы со значениями - это отразится выводом статуса, отличного от "-" в колонке "When failed".
  • Updated - значение "Always" - это то же самое, что и наличие флага "O" в колонке Flag, Offline - отсутствие флага "O". Детальнее - выше, в описании флага "О".
  • When failed - в случае обнаружения проблем со значением в колонке "Value", в этой колонке будет выведен статус: "FAILING_NOW". Если значение в колонке "Worst" вышло за допустимые пределы, то в "When failed" будет напечатано "In_the_past". Если со значениями все ок, тут будет стоять символ тире: "-".
  • Raw Value - необработанные ненормализованные значения. Каждый производитель может записывать в этот параметр данные в том виде, в котором посчитает нужным. Например, если большинство производителей для атрибута №9 "Power_On_Hours" записывают значение в часах, то некоторые модели HDD от Toshiba - в минутах.

Нормализованные значения для колонок "Value", "Worst" и "Threshold" каждый производитель высчитывает так, как посчитает нужным. Например, если "Value" для атрибута №190 "Airflow_Temperature_Cel" указано как "055", то это не значит, что температура внутри устройства равна 55oС или 55oF. Это всего лишь означает, что "055" значительно больше порогового значения "045" и что до возможных проблем с превышением пороговой температуры еще далеко.

Если устройство исправно, по определению S.M.A.R.T., значит все значения атрибутов "Value" и "Worst" должны быть больше, чем значения "Threshold". Как только значение "Value" или "Worst" атрибута будет равно или менее значения в "Threshold", значит произошел сбой на который следует немедленно обратить внимание. Любые проблемы со значениями атрибута будут отражены в колонке "When failed": вместо прочерка "-" там будет указание на значение ("Value" или "Worst"), которое вызвало ошибку: "FAILING_NOW" или "In_the_past".

Но есть некоторые атрибуты, как например 5 Reallocated Sector Ct, где любое значение, отличное от нуля - повод для беспокойства, даже если в колонке "When failed" еще стоит прочерк. К списку таких важных, с точки зрения работоспособности диска, атрибутов, нужно еще добавить такие: 184 End-to-End Error, 187 Reported Uncorrect, 197 Current Pending Sector, 198 Offline Uncorrectable, 200 UDMA CRC Error Count.

Опубликовано: 2020/08/05
HTML-код ссылки на эту страницу:
<a href="https://petrenco.com/hardware_computer.php?txt=729" target="_blank">S.M.A.R.T. для HDD и SSD - как интерпретировать значения</a>
67
Добавить комментарий
Ваш e-mail: (не виден посетителям сайта)
Ваше имя:
Комментарий:
Символы с картинки:
Только выделенные поля формы добавления комментариев обязательны к заполнению.