November 13, 2020

Оценка технического состояния жестких дисков с использованием технологии S.M.A.R.T

Ethical Hacking 2.0

Общие сведения о технологии S.M.A.R.T

Современные жесткие диски довольно “умные” устройства и, кроме основных присущих им как устройствам хранения и обработки данных свойств, поддерживают технологию самотестирования, анализа состояния, и накопления статистических данных об ухудшении собственных характеристик

S.M.A.R.T. (Self-Monitoring Analysis and Reporting Technology). Основы S.M.A.R.T. были разработаны в 1995 г. совместными усилиями ведущих производителями жестких дисков (HDD). В последующие годы стандарты S.M.A.R.T дорабатывались в соответствии с изменениями технологий и оборудования ( SMART II и SMART III) и продолжают совершенствоваться в настоящее время.

Жесткий диск, начиная с момента его изготовления, постоянно отслеживает определенные параметры своего состояния и отражает их в специальных характеристиках - атрибутах (Attribute), сохраняющихся в постоянном запоминающем устройстве , как правило, в специально выделенной части дисковой поверхности, доступной только внутренней микропрограмме накопителя - служебной зоне. Данные атрибутов могут быть считаны, в соответствии со спецификацией ATA (AT Attachment) по командам поддержки SMART (SMART READ DATA и еще более десятка команд), которые передаются в накопитель специальным программным обеспечением, как например, утилитами от производителей оборудования или универсальными программами тестирования и мониторинга состояния HDD (udisks, smartctl, GSmartControl, gnome-disks и т.п.). Современные стандарты ATA включают в себя поддержку протокола SCT (SMART Command Transport), обеспечивающего считывание журналов статистики устройства. Журнал статистики устройства — это доступный только для чтения журнал SMART, передаваемый накопителем при получении команд READ LOG EXT, READ LOG DMA EXT или SMART READ LOG.

Атрибут представляет собой характеристику определенного состояния жесткого диска, которая изменяется в процессе эксплуатации, принимая числовое значение от максимального, установленного в момент изготовления данного устройства, до минимального, при достижении которого, работоспособность накопителя не гарантируется. Все атрибуты идентифицируются своим цифровым номером, большинство из которых одинаково интерпретируется жесткими дисками разных моделей. Некоторые из них могут использоваться только конкретным производителем оборудования, и поддерживаться отдельными моделями накопителей. Так, например, атрибут с идентификатором 7, характеризующий количество ошибок установки головок на требуемую дорожку поверхности диска Seek_Error_Rate не имеет смысла для твердотельных дисков (SSD) и, соответственно, не поддерживается ими, а атрибут с идентификатором 9, характеризующий суммарное время работы накопителя за весь срок эксплуатации и обозначаемый как Power_On_Hours, поддерживается как SSD, так и традиционными HDD.

Атрибуты состоят из нескольких полей, ( наиболее часто обозначаемых как Val, Worst, Tresh, RAW), каждое из которых является определенным показателем, характеризующим техническое состояние накопителя на данный момент времени. Программы считывания S.M.A.R.T. выводят содержимое атрибутов, как правило, в виде нескольких колонок :

ID# - числовой идентификатор атрибута

Attribute - название атрибута

Flags - флаги атрибутов, задаваемые производителем HDD. Характеризуют тип атрибута ( большинство программ интерпретируют флаги в виде символов k,c,r,s,o,p или аббревиатур, например, EC – Event Count, счетчик событий ).

Pre-Failure (PF, 01h) - при достижении порогового значения данного типа атрибутов диск требует замены. Иногда данный бит флагов обозначают как Life Critical (CR) или Pre-Failure warranty (PW)

Online test (OC, 02h)– атрибут обновляет значение при выполнении off-line/on-line встроенных тестов SMART;

Perfomance Related (PE или PR , 04h)– атрибут характеризует производительность ;

Error Rate (ER , 08h )– атрибут отражает счетчики ошибок оборудования;

Event Counts (EC, 10h ) – атрибут представляет собой счетчик событий;

Self Preserving (SP, 20h ) – самосохраняющися атрибут;

Некоторые из программ могут интерпретировать флаги в виде текстовых описаний, близких по смыслу к рассмотренным выше. Один атрибут может иметь несколько установленных в единицу значений флагов, например, атрибут с идентификатором 05 отражающй количество переназначенных из-за сбоев секторов из резервной области, имеет установленные флаги SP+EC+OC – самосохраняющийся, счетчик событий, обновляется при автономном и интерактивном режиме накопителя.

Value - текущее значение атрибута

Threshold - минимальное пороговое значения атрибута

Worst - самое худшее значение атрибута за все время работы накопителя

Raw - абсолютное значение атрибута

Type - некоторые из программ в данном необязательном поле отображают информацию из флажков атрибутов или признаки их критичности (Critical или Pre-Fail , отражающих ухудшение характеристик оборудования, и Old-age для атрибутов, отражающих выработку ресурса).

Для анализа состояния накопителя, пожалуй самым важным значением атрибута является Value - условное число (обычно от 0 до 100 или до 253), заданное производителем. Значение Value изначально установлено на максимум при производстве накопителя и уменьшается в случае ухудшения его параметров. Для каждого атрибута существует пороговое значение, при достижения которого, производитель не гарантирует его работоспособность - поле Threshold. Если значение Value приближается или становится меньше значения Threshold, - накопитель пора менять.

Перечень атрибутов и их значения жёстко не стандартизированы и некоторые из них могут определяться изготовителем накопителя, но основная часть интерпретируются одинаково. Например, атрибут с идентификатором 05 (Reallocated sector count), будет характеризовать число забракованных и переназначенных из резервной области секторов диска, как для устройств производства компании Seagate Technology, так и для устройств производства Western Digital. Набор поддерживаемых атрибутов зависит от модели накопителя и может значительно отличаться по составу для разных моделей.

smartctl - программное средство для управления S.M.A.R.T

Наиболее распространенным программным средством для получения данных S.M.A.R.T в среде Linux, является утилита smartctl из комплекта smartmontools, как правило, входящего в состав устанавливаемого по умолчанию программного обеспечения любого дистрибутива. При необходимости, обновить версию, а также скачать документацию на английском языке можно на сайте проекта smartmontools.org.

Для работы с утилитой smartctl требуются права суперпользователя root.

Формат командной строки smartctl:

smartctl параметры устройство

Примеры использования smartctl

smartctl –help или smartctl --usage - отобразить подсказку об использовании команды.

Параметры smartctl:

-V, --version, --copyright, --license - отобразить версию, информацию копирайта и лицензии.

-i, --info - отобразить идентификационную информацию для устройства.

-g NAME, --get=NAME - отобразить параметры настроек диска ( all, aam, apm, lookahead, security, wcache, rcache, wcreorder)

-a, --all - отобразить все данные SMART указанного диска.

-x, --xall - отобразить все технические данные для указанного диска.

--scan - выполнить поиск дисковых устройств.

-q TYPE, --quietmode=TYPE установить режим детализации вывода для smartctl ( errorsonly, silent, noserial)

-d TYPE, --device=TYPE - установить тип устройства (ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, cciss,N, auto, test) Обычно установка типа устройства требуется в тех случаях, когда утилита smartctl не может определить его автоматически.

-b TYPE, --badsum=TYPE - задать реакцию на обнаружение ошибок контрольных сумм ( warn, exit, ignore)

-r TYPE, --report=TYPE - опция предназначена для разработчиков smartmontools и позволяет получить детализированную информацию при выполнении транзакций функции управления устройствами ввода/вывода ioctl (ioctl, ataioctl, scsiioctl и уровень отладки). Подробности - man smartctl

-n MODE, --nocheck=MODE - режим запрета на выполнение тестов для режимов энергосбережения (never, sleep, standby, idle ). Обычно используется для предотвращения запуска шпиндельного двигателя по команде smartctl.

-s VALUE, --smart=VALUE - отключение или включение SMART (on/off)

-o VALUE, --offlineauto=VALUE - запрет или разрешение автоматического выполнения тестов в неинтерактивном режиме ( в режиме простоя накопителя), принимаемые значения - on/off

-S VALUE, --saveauto=VALUE автосохранение атрибутов (on/off)

-s NAME[,VALUE], --set=NAME[,VALUE] - запрет/разрешение параметров оборудования накопителя (aam,[N|off], apm,[N|off], lookahead,[on|off], security-freeze, standby,[N|off|now], wcache,[on|off], rcache,[on|off], wcreorder,[on|off])

-H, --health - отобразить состояние накопителя (SMART health status)

-c, --capabilities - отобразить информацию о поддерживаемых возможностях SMART указанного жесткого диска.

-A, --attributes - отобразить атрибуты SMART

-f FORMAT, --format=FORMAT - задать формат отображаемых атрибутов SMART (old, brief, hex[,id|val]). В основном, влияет на формат отображаемых значений идентификаторов атрибутов и формат отображения их флагов:

old - идентификаторы атрибутов выводятся в десятичной системе счисления, значения флагов отображаются в шестнадцатеричной и интерпретируются в виде текста.

hex - то же, что и в предыдущем случае, но идентификаторы атрибутов отображаются в шестнадцатеричной системе счисления.

brief - компактный вывод, идентификаторы отображаются в десятичной системе счисления, флаги отображаются в виде символов с расшифровкой в нижней части таблицы:

ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR--   114   100   006    -    78309029
. . .   . . .
254 Free_Fall_Sensor        -O--CK   100   100   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

-l TYPE, --log=TYPE - отобразить указанный журнал устройства (selftest, selective, directory[,g|s], xerror[,N][,error], xselftest[,N][,selftest],background, sasphy[,reset], sataphy[,reset], scttemp[sts,hist], scttempint,N[,p], scterc[,N,M], devstat[,N], ssd, gplog,N[,RANGE], smartlog,N[,RANGE]).

-v N,OPTION , --vendorattribute=N,OPTION - установить параметр для определенного производителем атрибута с идентификатором N.

-F TYPE, --firmwarebug=TYPE - адаптация программы для учёта ошибок в аппаратной прошивке накопителя (none, nologdir, samsung, samsung2, samsung3, xerrorlba, swapid).

-P TYPE, --presets=TYPE - предустановки параметров диска. По умолчанию, обнаружив информацию о накопителе в своей базе, утилита smartctl, использует набор параметров, доступный для данной модели. Опция use - использовать предустановки для данного накопителя, ignore - не использовать, show - отобразить предустановки для данного диска, showall - отобразить предустановки для указанной модели. Примеры:

smartctl –P ignore /dev/hdb - игнорировать предустановки для диска /dev/hdb;

smartctl –P show /dev/sdb - отобразить предустановки для указанного диска;

smartctl –P showall ‘ST9250315AS’ - - отобразить предустановки для указанной модели диска - ST9250315AS;

smartctl –P showall ‘ST3750515AS’ ‘SD15’ - отобразить предустановки для указанной модели диска ST3750515AS с прошивкой SD15;

-B [+]FILE, --drivedb=[+]FILE - прочитать и изменить базу данных моделей дисков из файла FILE. Знак “+” перед именем файла, означает добавление новых записей в базу, перед уже существующими.

По умолчанию, база данных хранится в файле

/usr/share/smartmontools/drivedb.h

== DEVICE SELF-TEST OPTIONS ==

-t TEST, --test=TEST - запустить выполнение теста TEST Run test. TEST: offline, short, long, conveyance, force, vendor,N, select,M-N, pending,N, afterselect,[on|off]

-C, --captive - выполнение тестов в режиме захвата накопителя. Используется совместно с параметром -t для тестов не в режиме offline. Использование данного параметра может вызвать занятость устройства на все время выполнения теста и привести к нарушению работы системы и потере данных. Не стоит использовать опцию -c для выполнения тестов накопителей с монтированными разделами. Для SCSI устройств данная опция означает выполнение встроенных тестов в режиме "Foreground mode" .

-X, --abort - принудительно завершить тест, выполняющийся без ключа --captive.

Примеры использования smartctrl.

smartctl --info /dev/sdb - отобразить идентификационную информацию для устройства /dev/sdb. Пример вывода команды:

=== START OF INFORMATION SECTION ===
Device Model:     ST9500620NS
Serial Number:    9XF0AW8T
Firmware Version: SN01
User Capacity:    500,107,862,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Tue Oct 28 15:05:31 2014 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

smartctl --all /dev/hdа - отобразить все данные SMART для устройства /dev/hda

Пример отображаемых данных:

=== START OF INFORMATION SECTION ===
Device Model:     ST9500620NS
Serial Number:    9XF0AW8T
Firmware Version: SN01
User Capacity:    500,107,862,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Tue Oct 28 15:05:45 2014 MSK
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

General SMART Values:
Offline data collection status:  (0x82)	Offline data collection activity
					was completed without error.
					Auto Offline Data Collection: Enabled.
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: 		 ( 634) seconds.
Offline data collection
capabilities: 			 (0x7b) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					Offline surface scan supported.
					Self-test supported.
					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: 	 ( 102) minutes.
Conveyance self-test routine
recommended polling time: 	 (   2) minutes.
SCT capabilities: 	       (0x10bd)	SCT Status supported.
					SCT Feature Control supported.
					SCT Data Table supported.

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   082   064   044    Pre-fail  Always       -       190274202
  3 Spin_Up_Time            0x0003   096   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       72
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   060   030    Pre-fail  Always       -       11302732
  9 Power_On_Hours          0x0032   073   073   000    Old_age   Always       -       24037
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       72
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   081   048   045    Old_age   Always       -       19
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       38
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       73
194 Temperature_Celsius     0x0022   019   052   000    Old_age   Always       -       19 (0 14 0 0)
195 Hardware_ECC_Recovered  0x001a   118   100   000    Old_age   Always       -       190274202
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   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

smartctl -A -v 9,minutes /dev/hda - отобразить все данные атрибутов SMART для устройства /dev/hda и атрибут с идентификатором 9 (время нахождения во включенном состоянии) интерпретировать, как внутреннее значение, задаваемое в минутах, а не в часах.

smartctl --smart=on --offlineauto=on --saveauto=on /dev/hda - включить SMART для диска /dev/hda, разрешить автоматическое выполнение оффлайн-тестов и самосохранение атрибутов. Команду можно выполнять на работающей системе. Фактически, это установка стандартных параметров эксплуатации для обычного дискового накопителя.

smartctl --test=long /dev/hda - выполнить расширенные встроенные тесты для диска /dev/hda. Команду можно использовать на работающей системе. Для просмотра результатов выполнения тестов используется команда вывода внутреннего журнала после завершения теста

smartctl -l selftest /dev/hda

smartctl --attributes --log=selftest --quietmode=errorsonly /dev/had - отобразить данные внутреннего журнала самотестирования и атрибуты ошибок.

smartctl -s on -t offline /dev/hdc - включить SMART и выполнить оффлайн-тест для диска /dev/hdc. Если при тестировании будет обнаружена ошибка, то информация по ней будет записана во внутренний журнал, просмотреть который можно с использованием параметра -l error.

smartctl -q silent -a /dev/had - проверить данные SMART без вывода полученной информации.Обычно используется в скриптах. После выполнения команды проверяется код возврата (переменная $? командной оболочки) для определения факта выхода значения какого-либо атрибута за предельную величину или наличия записи об ошибках в журналах устройства.

smartctl -q errorsonly -H -l selftest /dev/had - выводить информацию только при наличии ошибочного состояния SMART или если какой-либо из внутренних тестов завершился с ошибкой.

smartctl -t select,10-100 -t select,30-300 -t afterselect,on -t pending,45 /dev/hda - выполнить внутренний тест в заданной области блоков LBA и после его завершения сканировать оставшуюся часть диска. Если при сканировании будет выполнено выключение питания, то продолжить его через 45 минут после включения.

smartctl --all --device=3ware,0 /dev/sda - получить данные SMART для первого ATA-диска, подключенного к RAID контроллеру 3ware.

smartctl -a -d 3ware,0 /dev/twe0 - получить данные SMART для первого ATA-диска, подключенного к RAID контроллеру 3ware RAID 6000/7000/8000.

smartctl -a -d 3ware,0 /dev/twa0 - получить данные SMART для первого ATA-диска, подключенного к RAID контроллеру 3ware RAID 9000.

smartctl -t short -d 3ware,3 /dev/sdb - запустить выполнение коротких внутренних тестов для 4-го диска, второго дискового SCSI устройства /dev/sdb

smartctl -a -d hpt,1/3 /dev/sda - получить данные SMART диска, подключенного к 3-му каналу первого контроллера HighPoint RocketRAID.

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

Идентификаторы атрибутов указаны в десятичной системе счисления, а в скобках они же – в шестнадцатеричной.

001 ( 1h ) Raw Read Error Rate - абсолютное значение ошибок считывания. Существует некоторые отличия в формировании значения данного атрибута разными производителями. Из практики могу сказать, что накопители Seagate могут иметь гигантское значение RAW этого атрибута, реально будучи в хорошем состоянии, а накопители Western Digital могут иметь его нулевым, имея критические показатели по другим характеристикам. Некоторые модели вообще не поддерживают данный атрибут.

002 ( 02h ) Throughput Performance - усредненная производительность жесткого диска. Редко встречающийся атрибут.

003 ( 3h ) Spin Up Time - Среднее время раскрутки шпинделя диска от 0 RPM до рабочей скорости. Для SSD дисков не поддерживается.

004 ( 4h ) Start/Stop Count - Количество циклов запуск/останов шпинделя.

005 ( 5h ) Reallocated Sector Count - Количество переназначенных ( перераспределенных) секторов . Современные накопители имеют резервную область поверхности для использования ее объема в случае ухудшения характеристик блоков из основной зоны. Если микропрограмма накопителя обнаруживает ошибки с записи/чтения какого-либо блока рабочей поверхности, то запускается механизм, обеспечивающий переадресацию обращений к дефектному блоку (сектору ), на блок из резервной части. Он автоматически перемещает его данные в резервную область, а данный блок помечается, как "переназначенный". Часто этот процесс называют "remapping", или "automatic defect reassignment". Процедура переназначения сбойных секторов на резервные, выполняется автоматически внутренней микропрограммой накопителя, и для пользователя (операционной системы) она невидима. Сам факт переназначения и количество переназначенных секторов доступны только из журналов SMART. Поле абсолютного значения атрибута Raw Value содержит общее количество переназначенных секторов. Нормализованное значение Value отражает процент допустимого количества дефектных блоков. При исчерпании резервной области, переназначение становится невозможным и диск подлежит замене. Даже некритическое, но большое значение этого поля, может привести к снижению скорости обмена данными, поскольку накопитель выполняет дополнительные операции установки головок на дорожки резервной области, которая обычно находится в конце рабочей поверхности диска.

007 ( 7h ) Seek Error Rate - Частота появления ошибок позиционирования блока магнитных головок (БМГ) . Дисковые накопители контролирует правильность установки головок на требуемую дорожку поверхности. В случае, когда установка выполнилась неверно, фиксируется ошибка и операция повторяется. На практике, большое количество ошибок позиционирования может быть вызвано не только проблемами оборудования, но и влиянием внешних факторов – не соответствующим температурным режимом или вибрацией.

008 ( 8h ) Seek Time Performance - средняя скорость позиционирования магнитных головок. Если значение атрибута уменьшается (замедление позиционирования), то велика вероятность проблем с механической частью привода головок.

009 (09h) Power-On Hours (POH) Количество рабочих часов - количество часов, когда диск находился во включенном состоянии за весь срок с момента производства, в виде целочисленного значения в часах. Иногда встречаются модели накопителей, в которых внутреннее значение данного атрибута сохраняется в виде количества рабочих минут или секунд, а не часов. Достижение порогового значения данного атрибута означает выработку ресурса, заданного производителем ( MTBF - Mean Time Between Failures

010 ( 0Ah ) Spin Retry Count - Количество повторных попыток старта шпинделя. После включения питания, накопитель раскручивает диски и контролирует достижение рабочей скорости вращения, заданной производителем для данной модели. Если за отведенное контрольное время рабочая скорость не достигнута, увеличивается значение данного атрибута и выполняется повторная раскрутка двигателя.

011 ( 0B ) Recalibration Retries - атрибут отражает количество повторных рекалибровок, в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность проблем с механической частью накопителя. Кроме того, увеличение абсолютного значения данного атрибута может быть вызвано тем, что процедура рекалибровки используется внутренней микропрограммой накопителя для коррекции других типов ошибок.

012 ( 0Ch ) Device Power Cycle Count - абсолютное значение Raw Value указывает на количество циклов включения/выключения питания накопителя за весь период эксплуатации. Нормализованное значение Value обычно не изменяется и равно 100.

013 ( 0Dh ) - Soft Read Error Rate - Количество программных сбоев - совокупное количество программных сбоев. Нормализованное значение: начиная со 100, отображает процент оставшегося допустимого нарастающего количества программных сбоев.

100 ( 64h ) Erase/Program Cycles - количество циклов стирания –записи перепрограммируемой памяти (flash) для SSD-дисков. Количество таких циклов ограниченно и зависит от микросхем постоянной перезаписываемой памяти, используемых в данной модели SSD.

103 ( 67h ) Translation Table Rebuild - количество событий, связанных с разрушением внутренних таблиц транслятора и его перестроением.

170 ( AAh )Reserved Block Count - количество доступных резервных блоков для переназначения сбойных секторов (см. атрибут E8h).

171 ( ABh ) Program Fail Count - ошибки записи в перепрограммируемую память SSD

172 ( ACh ) Erase Fail Count – ошибки стирания flash-памяти SSD. Процесс записи в перезаписываемую постоянную память состоит из двух частей - стирания и записи. Процедура стирания всегда выполняется перед записью данных.

173 ( ADh ) Wear Leveller Worst Case Erase Count - максимально допустимое количество операций стирания для единичного блока SSD-диска.

174 ( AEh) Unexpected Power Loss - непредвиденное отключение питания для SSD . Также этот показатель называется «Количество аварийных выключений» в терминологии жестких дисков с магнитными носителями. Абсолютное значение Raw Value: совокупное количество нештатных выключений за весь срок использования устройства.

175 ( AFh ) Program Fail Count– данный атрибут используется в SSD-накопителях производства Intel и отображает информацию о сбоях защиты от отключения питания SSD-дисков. Результаты последнего теста в виде количества микросекунд до разряда конденсатора, фиксируется на максимальном значении. Также записывается количество минут после последнего теста и общее количество тестов за весь срок использования устройства. Необработанное значение Raw Value:Байты 0—1: Результаты последнего теста в виде количества микросекунд до разряда конденсатора, 
фиксируется на максимальном значении. Результат теста должен быть в диапазоне
25 - 5 000 000, более низкое значение указывает на определенный код ошибки. 
Байты 2—3: количество минут после последнего текста, фиксируется на максимальном значении. 
Байты 4—5: количество тестов за весь срок использования устройства, не увеличивается при циклах включения и отключения, 
фиксируется на максимальном значении. 
Значение Value  устанавливается равным 1 при сбое теста, или 11 при тестировании конденсатора в недопустимых температурных условиях; в противном случае устанавливается равным 100. 

183 ( B7h ) SATA Downshifts - Количество снижений скорости SATA Необработанное значение: количество случаев, когда из-за ошибок для интерфейса SATA была выбрана пониженная скорость передачи данных ( с 6 Гб/с до 3Гб/с или 1,5Гб/с или с 3Гб/с. До 1.5Гб/с. Очень часто данный атрибут характеризует недостаточное качество электропитания, окисление контактов интерфейсного кабеля, или его неисправность.

184 ( B8h ) End-to-End error - количество обнаруженных сквозных ошибок кэш-памяти (disk cache). Абсолютное значение: количество обнаруженных и исправленных оборудованием сквозных ошибок.

187 ( BBh ) Reported Uncorrectable Errors - количество невосстановимых ошибок. Необработанное значение Raw Value: количество ошибок, которые не удалось исправить с помощью внутренних подпрограмм накопителя.

188 ( BCh ) Command Timeout - количество команд, прерванных по таймауту.

189 ( BDh ) High Fly Writes - количество событий, связанных с ошибками, зафиксированными монитором контроля высоты полета Fly Height Monitor, когда головки записи находятся в положении, не гарантирующем нормальное выполнение операции. Если высота полета головки над магнитной поверхностью, даже на короткое время превысит оптимальную, то записанные ею данные, в дальнейшем, могут не прочитаться. Современные накопители используют специально разработанную технологию контроля высоты полета головок, позволяющую не выполнять запись данных при неоптимальной высоте. В счётчик данного атрибута добавляется единица, а запись выполняется после установки нормальной высоты полета. Повышенное значение данного атрибута может быть вызвано внешними ударами или вибрациями, ненормальной температурой, ухудшением характеристик магнитной поверхности или головки.

190 ( BEh ) Airflow Temperature температура воздушного потока (корпус). Значение Raw Value: статистические данные по температуре корпуса . 
Байты 0—1: текущая температура корпуса в градусах по Цельсию; 
байт 2: недавняя минимальная температура корпуса в градусах по Цельсию; 
байт 3: недавняя максимальная температура корпуса в градусах по Цельсию; 
байты 4—5: счетчик превышений температуры. Количество случаев, когда зафиксированная температура 
превышала максимальную допустимую рабочую температуру накопителя. 

191 ( BFh ) G-sense error rate - количество ошибок, возникающих в результате ударных нагрузок. Атрибут хранит показания встроенного акселерометра, который фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера. Обычно довольно точно характеризует условия эксплуатации ноутбуков - большое значение атрибута говорит о резких толчках и падениях при работе устройства.

192 ( C0h ) Emergency Retract Cycle Count Количество аварийных выключений (количество нештатных выключений) - совокупное количество событий аварийного (нештатного) отключения питания за весь срок использования устройства. Для SSD дисков под «нештатным выключением» понимается отключение питания устройства без предварительной выдачи команды STANDBY IMMEDIATE.

194 ( C2h ) HDA Temperature - температура самого накопителя (HDA - Hard Disk Assembly). В данном атрибуте хранятся показания встроенного температурного датчика, которым обычно служит одна из магнитных головок (как правило - нижняя ). У SSD дисков термодатчик размещается внутри корпуса на печатной плате. Данные, записанные в полях атрибута отображают текущую, минимальную и максимальную температуру. Поле Worst показывает наихудшую, достигнутую за время работы накопителя, температуру (можно установить факт перегрева и его степень), Raw Value - текущую температуру. Некоторые модели накопителей могут поддерживать атрибут 205 (CDh) Thermal asperity rate (TAR), фиксирующий количество опасных перепадов температуры.

195 ( C3h ) Hardware ECC Recovered - количество ошибок считывания, исправленных оборудованием накопителя с применением кода коррекции ошибок. Подобные ошибки не требуют повторного считывания сектора, и не приводят к потере скорости обмена данными, но большое их количество говорит об ухудшении параметров тракта считывания.

196 ( C4h ) Reallocation Event Count - Число событий переназначения сбойных секторов. В поле raw value данного атрибута хранится общее число попыток переноса данных из нестабильных секторов в резервную область. Учитываются как успешные, так и неуспешные попытки.

197 ( C5 ) Current Pending Sector Count - Текущее количество нестабильных секторов. Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает кандидатами на переназначение в резервную область . Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка кандидатов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped).

198 ( C6 ) Uncorrectable Sector Count - Счетчик некорректируемых ошибок, т.е , счетчик ошибок, которые не были исправлены внутренними средствами коррекции оборудования накопителя. Это означает, что такие ошибки проявляются как классические сбойные блоки файловой системы (Bad Block). Причиной подобных сбоев диска, может быть неисправность отдельных элементов или отсутствие свободных секторов в резервной области диска, когда возникла необходимость переназначения.

199 ( C7h ) UltraDMA CRC Error Rate - Количество ошибок при передаче данных в режиме прямого доступа к памяти, обнаруженных средствами циклического избыточного кода (англ. Cyclic redundancy check, CRC). Аппаратные средства контроля передачи данных из накопителя в оперативную память обнаружили ошибку контрольной суммы и исправили ее “на лету”, если ошибка исправимая. В данном случае алгоритм обычной работы диска не изменяется. В случае же неисправимой ошибки, процедура ее обработки выполняется системой. Обычно, данный атрибут содержит счетчик любых видов ошибок CRC. Нередко этот тип ошибки связан не столько с оборудованием накопителя, сколько с неисправным интерфейсным кабелем, окислившимися контактами, некачественным электропитанием, разгоном частоты шины PCI, перегревом микросхем чипсета материнской платы и т.п.

200 ( C8h ) Write Error Rate (Multi Zone Error Rate) - ошибки записи данных.

232 ( E8h ) Total Count of Write Sectors Для SSD-дисков - количество записанных секторов. Значение Raw Value увеличивается на 1 на каждые 65 536 секторов (32 МБ), записываемых системой. Для SSD Intel - Intel SSD Available Reserved Space - процент доступной резервной области, используемой для переназначения дефектных блоков.

233 ( E9h ) Power-On Hours - Время работы накопителя. Для SSD-дисков этот атрибут интерпретируется как Remaining Life - указатель износа носителя. Количество циклов работы носителя NAND. Линейно снижается от 100 до 1 по мере увеличения среднего количества циклов стирания от 0 до максимального. Нормализованное значение перестанет уменьшаться после достижения 1, но, по всей вероятности, устройство выдержит значительный дополнительный износ.

241 ( F1h) Total LBAs Written - Общее количество записанных секторов LBA. Значение Raw Value : совокупное количество секторов, записанных системой. Значение увеличивается на 1 на каждые 65 536 секторов (32 МБ), записываемых системой.

242 ( F2h ) Total LBAs Read - Общее количество прочитанных секторов LBA. Значение Raw Value увеличивается на 1 на каждые 65 536 секторов (32 МБ), прочитываемых системой.

254 ( FEh ) Free Fall Event Count - количество событий ускорения свободного падения диска за время эксплуатации ( сколько раз диск падал ).

Оценка технического состояния жесткого диска по данным S.M.A.R.T

Набор атрибутов поддерживаемых конкретной моделью жесткого диска, даже если он минимален, позволяет с высокой достоверностью определить техническое состояние и перспективы эксплуатации устройства. Можно определить время нахождения во включенном состоянии по значению атрибута 9, а в совокупности со значением атрибута 12 - количество включений/выключений электропитания, и следовательно, – круглосуточный, или периодический режим эксплуатации. Интенсивность использования, температурный режим, негативные внешние воздействия – все эти факты легко отслеживаются по абсолютным значениям соответствующих атрибутов. Подобным же образом, можно оценить и уровень износа оборудования, качество поверхности и тракта записи/чтения.

Минимально информативный контроль состояния дисков может выполняться даже на уровне BIOS. В случае достижения критического значения любого атрибута, характеризующего работоспособность, при включенном мониторинге состояния S.M.A.R.T в настройках BIOS, загрузка операционной системы приостанавливается и на экран выводится сообщение:

Primary Master Hard Disk: S.M.A.R.T status BAD!, Backup and Replace.

Press F1 to Resume

Таким образом, без установки или запуска дополнительного программного обеспечения, имеется возможность вовремя определить факт критического состояния накопителя средствами Базовой Системы Ввода-Вывода (BIOS) при включении компьютера.

Техническое состояние жесткого диска, не достигшее критического порога, характеризуется абсолютным значением атрибутов, отражающих счётчики сбоев, обнаруженных и исправленных оборудованием накопителя.

001 ( 1 ) Raw Read Error Rate - абсолютное значение ошибок считывания. Существует некоторые отличия в формировании значения данного атрибута разными производителями. На практике, накопители Seagate могут иметь гигантское значение RAW этого атрибута, реально будучи в хорошем состоянии, а накопители Western Digital могут иметь его нулевым, имея критические показатели по другим характеристикам. Некоторые модели вообще могут не поддерживать данный атрибут.

005 ( 5 ) Reallocated Sector Count - Количество переназначенных секторов. Ненулевое значение данного счетчика говорит о том, что были обнаружены дефектные блоки, данные которых перенесены в резервную область.

196 ( C4 ) Reallocation Event Count - Число событий переназначения сбойных секторов. В поле raw value данного атрибута хранится общее число попыток переноса данных из нестабильных секторов в резервную область. Учитываются как успешные, так и неуспешные попытки.

197 ( C5 ) Current Pending Sector Count - Текущее количество нестабильных секторов. Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает кандидатами на переназначение в резервную область (remap). Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка кандидатов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped). Если значение атрибутов 5,196,197 увеличивается за короткий промежуток времени ( дни, или даже часы), то это является настораживающим признаком – либо ухудшаются технические параметры самого накопителя, либо сказывается влияние внешних воздействий.

007 ( 07h ) Seek Error Rate - Частота появления ошибок позиционирования блока магнитных головок (БМГ). Большое значение говорит о проблемах механизма позиционирования, хотя может быть вызвано и внешними факторами, такими как перегрев или повышенная вибрация.

008 ( 08h ) Seek Time Performance - средняя скорость позиционирования магнитных головок. Если значение атрибута уменьшается (замедление позиционирования), то велика вероятность проблем с механической частью привода головок.

199 ( C7 ) UltraDMA CRC Error Count - Счетчик ошибок, возникших при передаче данных в режиме UltraDMA. Рост абсолютного значения указывает на проблемы при передаче данных контроллером диска в оперативную память. Чаще всего, вызвано плохим кабелем и нестабильным электропитанием.

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

Выполнение встроенных тестов S.M.A.R.T

Набор встроенных тестов S.M.A.R.T определяется производителем и может значительно отличаться для разных моделей жёстких дисков. В основном, встроенные тесты SMART представлены короткими тестами ( short self-test ) и длинными ( extended sels-test ). Короткие тесты выполняют сканирование небольшой части дисковой поверхности, определенной производителем, и выполняются, в среднем, около 1 минуты. Длинные тесты выполняют сканирование всей рабочей поверхности диска и могут выполняться, в зависимости от быстродействия и объема диска, даже несколько часов. Также, для современных дисков, можно выполнять селективные тесты ( selective self-test), параметры которых задаются пользователем и тесты после транспортировки устройства ( conveyance self-test). Выполнение тестов можно прервать, если не задан режим захвата накопителя ( captive ) и накопитель поддерживает команду отмены теста. Что касается режима захвата накопителя при выполнении тестов captive, то пользоваться им нужно осторожно, если диск используется системой.

Примеры:

smartctl --test=short /dev/sdb - запустить короткий тест. В ответ на команду, будет выведена информация:

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun (previous test aborted).
Please wait 1 minutes for test to complete.
Test will complete after Fri Dec  5 16:08:09 2014
Use smartctl -X to abort test.

Что означает, что диску отправлена команда на выполнение короткого теста, диск ее воспринял успешно, тест будет продолжаться 1 минуту, и для принудительного его прекращения можно воспользоваться командой smartctl –X.

Результат выполнения теста можно проверить, просмотрев журнал тестов командой smartctl –l selftest. В ответ будет получена информация журнала selftest:

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       831         -

Колонки журнала: Num - номер записи.

Test_Description - описание теста.

Status - статус завершения (выполнен без ошибок)

Remaining - процент оставшегося времени до завершения теста, если он еще не завершен (00%)

LifeTime(hours) - время работы накопителя с начала эксплуатации.

LBA_of_first_error - номер логического блока LBA где обнаружена первая ошибка при выполнении теста. В данном примере, ошибок нет.

Для запуска длинного теста используется команда:

smartctl --test=long /dev/sdb

В ответ на команду выводится информация о начале теста:

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 70 minutes for test to complete.
Test will complete after Fri Dec  5 17:15:44 2014

Как видно, длинный тест для данной модели накопителя будет выполняться 70 минут.

Результат выполнения можно проверить командой smartctl –l selftest /dev/sda

Список команд ATA для работы с S.M.A.R.T

SMART_READ_VALUES		0xd0
SMART_READ_THRESHOLDS		0xd1
SMART_AUTOSAVE			0xd2
SMART_SAVE			0xd3
SMART_IMMEDIATE_OFFLINE		0xd4
SMART_READ_LOG_SECTOR 		0xd5
SMART_WRITE_LOG_SECTOR 		0xd6
SMART_ENABLE			0xd8
SMART_DISABLE			0xd9
SMART_STATUS			0xda
SMART_AUTO_OFFLINE		0xdb


Ссылка на статью утеряна.