Linux command – smartctl (S.M.A.R.T. attributes)

Loading

關於 smartctl 使用,請參考 https://benjr.tw/95984

測試環境為 CentOS 7 x86_64

這邊討論如何透過 smartctl 去檢視硬碟的 S.M.A.R.T. attributes,可以透過下面兩個參數來檢視.

  • -a, –all

    -a 對於 ATA 硬碟參數等同 , ‘-H -i -c -A -l error -l selftest -l selective’
    -a 對於 SCSI 硬碟參數等同 , ‘-H -i -A -l error -l selftest’

  • -A, –attributes

    顯示硬碟製造商所提供的特定 SMART 屬性 (Attributes),屬性的編號從 1 到 253,關於這些屬性的名稱和 ID 請參考 https://en.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology#ATA_S.M.A.R.T._attributes

因為 S.M.A.R.T. attributes 是由硬碟製造商所提供的,所以比較早的硬碟可能就沒有任何資料.

[root@localhost ~]# smartctl -A /dev/sdb
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-3.10.0-514.el7.x86_64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature:     36 C
Drive Trip Temperature:        85 C

Manufactured in week 35 of year 2008
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  412
Elements in grown defect list: 0

Vendor (Seagate) cache information
  Blocks sent to initiator = 1070701389807616
[root@localhost ~]# smartctl -A /dev/sdb
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-514.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== 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     0x002f   100   100   050    Pre-fail  Always       -       13
  5 Reallocated_Sector_Ct   0x0032   100   100   001    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   001    Old_age   Always       -       1586
 12 Power_Cycle_Count       0x0032   100   100   001    Old_age   Always       -       554
170 Unknown_Attribute       0x0033   100   100   010    Pre-fail  Always       -       44
171 Unknown_Attribute       0x0032   100   100   001    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   100   100   001    Old_age   Always       -       0
173 Unknown_Attribute       0x0033   100   100   000    Pre-fail  Always       -       39
174 Unknown_Attribute       0x0032   100   100   001    Old_age   Always       -       466
184 End-to-End_Error        0x0033   100   100   050    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   001    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   001    Old_age   Always       -       1
194 Temperature_Celsius     0x0022   078   065   000    Old_age   Always       -       22 (Min/Max 14/35)
195 Hardware_ECC_Recovered  0x003a   100   100   001    Old_age   Always       -       1908
197 Current_Pending_Sector  0x0032   100   100   001    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   001    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   001    Old_age   Always       -       0
202 Unknown_SSD_Attribute   0x0018   100   100   001    Old_age   Offline      -       0
206 Unknown_SSD_Attribute   0x000e   100   100   001    Old_age   Always       -       0
247 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       928166108
248 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       21320209

主要看 Raw (RAW VALUE) , VALUE (Normalized) 與 THRESH (Threshold value) .

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 12 Power_Cycle_Count       0x0032   100   100   001    Old_age   Always       -       554
  • 以 Attribute 12 (Power Cycle Count) 為例, 其中的 RAW_VALUE (554) 就代表這台系統重開機的次數為 554 次.
  • 每個廠商使用自己的算法將此 Raw (RAW VALUE) 值轉換為 VALUE (Normalized) 範圍從 1 至 254.
  • 當 VALUE (Normalized, 大部份起始值設定成為 100 ,1 表示為 worst case) 當 小於或等於 THRESH (Threshold value , 範圍從 0 到 255 ) 則表示 硬碟故障即將發生.

其他項目說明.

  1. ID# & ATTRIBUTE_NAME
    屬性 編號與名稱從 1 到 253,關於這些屬性的名稱和 ID 請參考 https://en.wikipedia.org/wiki/S.M.A.R.T.#ATA_S.M.A.R.T._attributes 裡面有幾項屬性是被列為嚴重( Critical )問題,需要特別檢視的.

    • 05 (0x05) – Reallocated Sectors Count
    • 10 (0x0A) – Spin Retry Count
    • 184 (0xB8) – End-to-End error / IOEDC
    • 187 (0xBB) – Reported Uncorrectable Errors
    • 188 (0xBC) – Command Timeout
    • 196 (0xC4) – Reallocation Event Count
    • 197 (0xC5) – Current Pending Sector Count
    • 198 (0xC6) – (Offline) Uncorrectable Sector Count
    • 201 (0xC9) – Soft Read Error Rate or TA Counter Detected
  2. FLAG
    ?
  3. VALUE
    範圍從 0 到 255,起始值大部分設定成為 100.

    • 0, 254, 以及 255 為保留使用.
    • 253 表示為 “Not Used Yet”
    • 1 表示為 worst case.
  4. WORST
    有記錄以來的最低值.
  5. THRESH
    VALUE 大部分起始值設定成為 100,1 表示為 worst case,通常達到 THRESH (Threshold) 就代表故障 (Failure) 了!
  6. TYPE
    • Pre-failure – 當 WORST(有記錄以來的最低值) 低於 THRESH (Threshold) ,系統會顯示該顆硬碟有可能故障.
    • Old age – 顯示該硬碟已經超出使用期限或是耗損次數,不過還是要看 VALUE (Normalized) 是否小於或等於 THRESH (Threshold value) 才代表硬碟故障即將發生.
  7. UPDATED
    資料更新時間

    • Always – 表示隨時都會更新資料.
    • Offline – 只有在離線測試執行時才會更新資料,關於 smartctl 測試請參考 https://benjr.tw/96015 .
  8. WHEN_FAILED
    通常是沒有數值的,如果不是空白,則表示總共運行的小時數(同 attribute 9 Power_On_Hours).
  9. RAW_VALUE
    屬性的原始數值.

那 NVME 的儲存裝置,是不是也可以透過 smartctl 來檢視資料呢!雖然在 smartctl 官網有提到 https://www.smartmontools.org/wiki/NVMe_Support 但透過 smartctl 看 nvme 所得到的資訊卻很不多,官網也建議使用 nvme 指令 (由 nvme-cli 套件提供) ,請參考 https://benjr.tw/98887 .

[root@localhost ~]# smartctl -A /dev/nvme0
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-3.10.0-514.el7.x86_64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
Read NVMe SMART/Health Information failed: NVMe Status 0x04
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料