SMART 속성을 통해 드라이브의 신뢰성 진단

SMART 속성을 통해 드라이브의 신뢰성 진단

내 하드 드라이브가 죽어가고 있는지 알아내려고 노력 중입니다. 스마트 값을 조사한 결과 그럴 수도 있지만 여전히 데이터를 잘 읽고 쓰며 새로운 오류가 나타나지 않습니다.

원래는 8이라는 값이 있었지만 197 Current_Pending_Sector드라이브를 0으로 만든 후에는 값이 0으로 되돌아가서 196 Reallocated_Event_Count0이 됩니다.

드라이브 자체에는 문제가 없고 일시적인 시스템 문제였다는 뜻인가요?

또한 중요한 것은 188 Command_Timeout값이 1이라는 것입니다. 이는 다음과 같이 정의됩니다.

HDD 시간 초과로 인해 중단된 작업 수입니다. 일반적으로 이 속성 값은 0과 같아야 하며 값이 0보다 훨씬 높으면 전원 공급 장치나 산화된 데이터 케이블에 심각한 문제가 있을 가능성이 높습니다.

나는 낮은 수준의 프로그래밍을 해왔고 약 50번 정도 컴퓨터를 강제 종료해야 했습니다.

나는 191 G-Sense_Error_Rate438의 값이 괜찮다고 가정하고 있습니다. 이것은 하드 드라이브가 켜져 있는 동안 노트북을 이리저리 옮기는 데 따른 것이라고 생각합니다.

정말 재미있는 점은 내 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으로 만든 후에는 값이 0으로 되돌아가고 196 Real located_Event_Count는 0입니다.

이는 어느 시점에서 드라이브가 일부 섹터를 읽는 데 문제가 있었지만 드라이브를 0으로 만든 이후로는 아무런 문제도 발생하지 않았음을 의미합니다. 전체 드라이브를 새로운 데이터로 덮어쓰면 섹터가 재할당 보류 상태에서 정상 상태로 바뀌었고, 그 시점에서 섹터가 재할당되지 않았기 때문에 아마도 드라이브는 쓰기에 만족했을 것입니다. 확인하려면 장시간 SMART 자체 테스트(일반적으로 표면 검사 포함)를 실행해야 하지만 드라이브가 작동하는 동안 컴퓨터를 이동하는 것과 관련된 결함일 가능성이 높습니다.

또한 중요한 것은 값이 1인 188 Command_Timeout입니다. 이는 다음과 같이 정의됩니다.

걱정할 가치가 없습니다. 드라이브는 거의 2600시간의 전원 켜짐 시간을 보고하며 해당 기간 동안 단일 명령 시간 초과가 발생했습니다. 명령 시간 초과는 실패한 명령을 다시 시도하거나 I/O 작업을 실패하여 OS에서 처리하므로 이것이 지속적인 문제인 경우 이에 대해 알 수 있습니다. 8개의 보류 중인 섹터와 관련이 있을 수도 있고 관련이 없을 수도 있습니다.

이것이 눈에 띄게 증가하기 시작하면 걱정되지만 시스템 작동에 문제가 있다는 다른 징후가 없는 한 자리 숫자의 시간 초과는 걱정하지 않습니다.

나는 낮은 수준의 프로그래밍을 해왔고 약 50번 정도 컴퓨터를 강제 종료해야 했습니다.

이는 논리적 데이터 일관성(파일 시스템 손상 등)에 영향을 미칠 수 있지만 걱정할 만한 수준의 물리적 드라이브에는 영향을 미치지 않습니다.

또한,톱밥님의 댓글:

단기 및 확장 자가 테스트를 실행해야 합니다. ID#187 Reported_Uncorcor 오류가 많이 발생하면 문제가 있음을 나타냅니다. 약 40POHours 전에 수정 불가능한 읽기 오류가 대량 발생한 것 같습니다.

이는 좋은 지적이지만,우리는 원시 값의 인코딩을 모릅니다.우리가 알 수 있는 것은 "값"이 현재 정규화된 100이며, 최악의 값은 1이고 임계값(드라이브에 오류가 발생했거나 오류가 임박했음을 보고하기 위한)은 0이라는 것입니다. 즉,현재드라이브는 이 값이 우려할 만한 원인이라고 생각하지 않습니다. 그리고 1.45e14 읽기 오류는 거의 불가능할 정도로 높게 들립니다. 자체 인정에 따르면 드라이브에는 약 183,000개의 섹터(4KiB/섹터에서 750GB)가 있습니다. 원시 값으로 보고된 읽기 실패 수를 얻으려면 각각의 모든 단일 섹터가 보고된 2,586 전원 켜기 시간 동안 791,000회 실패하거나 전체 읽기 실패 1회를 수행해야 합니다.전체11초마다 표면에 나타납니다. 이것은 정말 터무니없는 숫자입니다(10초 안에읽다전체 디스크 표면의 작은 부분에 불과하므로 이 드라이브와 속성 187에 대해 높은 수준의 확실성을 가지고 안전하게 결론을 내릴 수 있습니다.원시 값은뭔가 다른 것단순한 정수 개수보다.원시 값은 실제 값을 인코딩하는 상위 또는 하위 비트와 다른 값을 인코딩하는 다른 비트로 두 부분으로 분할될 수 있습니다. 해당 속성의 원시 값에 대한 16진수 값은 83D0 0005 01C8입니다. 여기서 가운데의 0 문자열은 이러한 인코딩을 나타냅니다. 확실히 가능하기는 하지만 무작위 오류 수의 중간에 이렇게 긴 0 문자열이 있을 가능성은 거의 없습니다. 예를 들어 하위 비트(501C8 16진수)를 사용하면 328,136개의 보고된 오류가 발생하지만 여전히 상당히 많은 오류가 발생합니다.많은더 믿을만합니다.

결론,SMART는 훌륭한 모니터링 도구일 수 있지만 모든 문제를 포착하고 보고하도록 설계되지는 않았습니다. 일부 드라이브는 SMART가 완전히 종료되어야 한다고 표시한 후에도 오랫동안 행복하게 작동하며 일부 드라이브는 실패 후에도 모든 것이 훌륭하다고 SMART가 말했음에도 불구하고 치명적인 오류를 발생시킵니다. SMART 데이터를 조기 경보 시스템 및 상태 보고로 활용하세요.~ 아니다드라이브의 상태에 대한 일종의 절대적인 진실입니다. 또한 인코딩이 구현에 따라 정의되므로 비판적인 시각으로 원시 값을 읽어야 합니다.꽤,보고된 "값"이 드라이브의 "임계값" 값과 어떻게 비교되는지 살펴봐야 합니다. 이 값은 제조업체가 특정 드라이브에 대해 의미 있게 정의한 것으로 간주되기 때문입니다.

이전에 보류 중인(기본적으로 "읽기 어렵다"는 의미) 섹터가 걱정된다면,SMART를 통해 전체 표면 스캔을 실행합니다."보류 중" 상태로 돌아오면 드라이브 교체 여부를 고려해 볼 가치가 있지만, 간단한 사실은 거의 모든 드라이브에서 문제가 발생한다는 것입니다.일부불량 섹터는 유효 수명 동안 제거되며 불량 섹터를 재할당하여 이를 보상할 수 있는 예비 섹터가 많이 있습니다. 재할당에는 데이터가 알려져 있어야 하므로 섹터에 문제가 발생하면 해당 섹터에 쓰는 동안에만 재할당될 수 있습니다.

관련 정보