Диагностика надежности накопителя с помощью атрибутов SMART

Диагностика надежности накопителя с помощью атрибутов SMART

Я пытаюсь выяснить, умирает ли мой жесткий диск. Я исследовал значения смарт-памяти, и похоже, что это так, но он по-прежнему отлично читает и записывает данные, и никаких новых ошибок не появляется.

Раньше было 197 Current_Pending_Sectorзначение 8, но после обнуления накопителя значение вернулось к 0 и теперь 196 Reallocated_Event_Countравно 0.

Означает ли это, что с самим диском проблем нет, а возникла временная системная неполадка?

Также вызывает беспокойство то, 188 Command_Timeoutчто имеет значение 1, оно определяется как:

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

Я занимался низкоуровневым программированием, и мне приходилось принудительно выключать компьютер около 50 раз.

Я предполагаю, что 191 G-Sense_Error_Rateзначение 438 вполне приемлемо. Думаю, это из-за перемещения ноутбука при включенном жестком диске.

Что действительно забавно, так это то, что мой раздел Windows перестал загружаться и не мог быть смонтирован на другой машине Windows или Linux, но он прекрасно смонтировался на OSX, что позволило мне восстановить мои файлы. Я переустановил и скопировал на него данные с тех пор, и, похоже, он работает отлично. OSX находится на другом диске.

H2O:~ jeremiah$ smartctl -a /dev/disk1
smartctl 6.3 2014-07-26 r3976 [x86_64-apple-darwin14.1.0] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     HGST HTS541075A9E680
Serial Number:    JD13021X0A00GK
LU WWN Device Id: 5 000cca 764c48bc4
Firmware Version: JA2OA590
User Capacity:    750,156,374,016 bytes [750 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Wed Mar 11 21:59:30 2015 PDT
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:  (0x00) Offline data collection activity
                    was never started.
                    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:        (   45) seconds.
Offline data collection
capabilities:            (0x51) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Suspend Offline collection upon new
                    command.
                    No 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:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 164) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

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     0x002f   100   086   062    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0025   100   100   040    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0023   169   100   033    Pre-fail  Always       -       1
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       981
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002f   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0025   100   100   040    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       2586
 10 Spin_Retry_Count        0x0033   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       851
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   097    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   001   000    Old_age   Always       -       144929376764360
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       1
190 Airflow_Temperature_Cel 0x0022   069   050   045    Old_age   Always       -       31 (Min/Max 24/31)
191 G-Sense_Error_Rate      0x0032   099   099   000    Old_age   Always       -       438
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       2031647
193 Load_Cycle_Count        0x0032   089   089   000    Old_age   Always       -       115337
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0036   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x002a   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 456 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 456 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:34.282  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:30.471  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:26.660  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT

Error 455 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:30.471  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:26.660  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED

Error 454 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:26.660  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED
  60 08 a0 30 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED

Error 453 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED
  60 08 a0 30 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 98 28 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED

Error 452 occurred at disk power-on lifetime: 2548 hours (106 days + 4 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 08 38 8d 62 00  Error: UNC at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED
  60 08 a0 30 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 98 28 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 90 20 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 88 18 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED

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.

решение1

Раньше значение 197 Current_Pending_Sector было равно 8, но после обнуления накопителя значение вернулось к 0, а значение 196 Reallocated_Event_Count стало равным 0.

Это означает, что в какой-то момент диск имел проблемы с чтением некоторых секторов, но с тех пор, как вы обнулили диск, у него не было никаких проблем с ними. Когда вы перезаписали весь диск свежими данными, сектора перешли из состояния ожидания перераспределения в нормальное, и, предположительно, диск был доволен записью, поскольку сектора не были перераспределены в тот момент. Вам следует запустить длительную самопроверку SMART (которая обычно включает сканирование поверхности) для проверки, но это вполне мог быть сбой, возможно, связанный с перемещением компьютера во время работы диска.

Также вызывает беспокойство параметр 188 Command_Timeout, который имеет значение 1. Оно определяется как:

Не стоит беспокоиться. Диск сообщает о почти 2600 часах работы во включенном состоянии, и за это время произошел один тайм-аут команды. Тайм-ауты команд обрабатываются ОС путем повторной попытки выполнить неудавшуюся команду или сбоя операции ввода-вывода, поэтому если бы это была постоянная проблема, вы бы об этом знали. Может быть связано с 8 ожидающими секторами, а может и не иметь отношения.

Я бы забеспокоился, если бы этот показатель начал заметно расти, но однозначное число тайм-аутов без других признаков проблем в работе системы меня бы не беспокоило.

Я занимался низкоуровневым программированием, и мне приходилось принудительно выключать компьютер около 50 раз.

Это не должно повлиять на физический диск на каком-либо уровне, о котором стоило бы беспокоиться, хотя это может повлиять на логическую целостность данных (повреждение файловой системы и т. д.).

Также, изопилкикомментарий:

Вам следует запустить краткие и расширенные самотесты. Большое количество ошибок ID#187 Reported_Uncorrect указывает на проблему. Похоже, что около 40 часов назад был рой некорректных ошибок чтения.

Это хороший довод, номы не знаем кодировку исходного значения.Мы можем сказать, что «значение» в настоящее время равно нормализованному значению 100, с наихудшим видимым значением 1 и пороговым значением (для сообщения о том, что диск вышел из строя или что отказ неизбежен) 0. То есть,в данное времяпривод не считает, что это значение является причиной для беспокойства. И 1.45e14 ошибок чтения звучит почти нереально высоко; по его собственному признанию, привод имеет около (750 ГБ при 4 КиБ/сектор) 183 000 секторов. Чтобы получить количество отказов чтения, сообщенных как необработанное значение, каждый отдельный сектор должен был бы выйти из строя 791 000 раз за сообщенные 2586 часов работы, или один прямой отказ чтениявесьповерхность каждые 11 секунд. Это просто смехотворное число (за десять секунд вы могли бычитатьлишь небольшая часть всей поверхности диска), поэтому мы можем с уверенностью заключить, что для этого диска и атрибута 187, с высокой степенью уверенности,исходное значение равночто-то другоечем простое целочисленное число.Может быть, необработанное значение разделено на две части, причем либо высокие, либо низкие биты кодируют фактическое значение, а другие биты кодируют что-то еще. Шестнадцатеричное значение необработанного значения этого атрибута равно 83D0 0005 01C8, где строка нулей в середине указывает на такую ​​кодировку; хотя это, безусловно, возможно, кажется маловероятным, что случайный счетчик ошибок будет иметь такую ​​длинную строку нулей в середине. Если мы, например, возьмем нижние биты (501C8 hex), это составит 328 136 зарегистрированных ошибок, что, хотя все еще довольно много, звучитмногоболее правдоподобно.

Нижняя граница,SMART может быть отличным инструментом мониторинга, но он не предназначен для обнаружения и сообщения обо всех проблемах. Некоторые диски продолжают работать даже после того, как SMART показывает, что они должны быть полностью мертвы, а некоторые диски выходят из строя катастрофически, хотя SMART говорит, что все отлично даже после отказа. Принимайте данные SMART такими, какие они есть, как ранняя система оповещения и отчет о состоянии,нетсвоего рода абсолютная истина о состоянии диска. Кроме того, вы должны читать необработанные значения критическим взглядом, поскольку их кодирование определяется реализацией.Скорее,Вам следует сравнить указанное «значение» с «пороговым» значением накопителя, поскольку предполагается, что производитель осмысленно определяет его для конкретного накопителя.

Если вас беспокоят те более ранние сектора, которые находятся в состоянии ожидания (что по сути означает «которые оказались трудночитаемыми»),выполните полное сканирование поверхности с помощью SMART.Если они возвращаются как «ожидающие», то, возможно, стоит подумать о замене привода, но простой факт заключается в том, что почти любой привод может развитьсянекоторыйплохих секторов в течение срока службы и имеет ряд запасных секторов для компенсации этого путем перераспределения плохих секторов. Однако перераспределение требует, чтобы данные были известны, поэтому если сектор становится плохим, его можно перераспределить только во время записи в этот сектор.

Связанный контент