歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 使用 smartmontools 查看硬盤的健康狀態

使用 smartmontools 查看硬盤的健康狀態

日期:2017/2/28 14:24:58   编辑:Linux教程

要說Linux用戶最不願意看到的事情,莫過於在毫無警告的情況下發現硬盤崩潰了。諸如RAID的備份和存儲技術可以在任何時候幫用戶恢復數據,但為預防硬件突然崩潰造成數據丟失所花費的代價卻是相當可觀的,特別是在用戶從來沒有提前考慮過在這些情況下的應對措施時。

為了避免遇到這種困境,用戶可以試用一款叫做smartmontools的軟件包程序,它通過使用自我監控(Self-Monitoring)、分析(Analysis)和報告(Reporting)三種技術(縮寫為S.M.A.R.T或SMART)來管理和監控存儲硬件。如今大部分的ATA/SATA、SCSI/SAS和固態硬盤都搭載內置的SMART系統。SMART的目的是監控硬盤的可靠性、預測磁盤故障和執行各種類型的磁盤自檢。smartmontools由smartctl和smartd兩部分工具程序組成,它們一起為Linux平台提供對磁盤退化和故障的高級警告。

這篇文章會描述Linux上smartmontools的安裝和配置方法。

安裝Smartmontools

由於smartmontools在大部分Linux發行版的基本軟件庫中都可用,所以安裝很方便。

Debian和其衍生版:

  1. # aptitude install smartmontools

基於Red Hat的發行版:

  1. # yum install smartmontools

使用Smartctl檢測硬盤的健康狀況

首先,使用下面的命令列出和系統相連的硬盤:

  1. # ls -l /dev | grep -E 'sd|hd'

輸出結果和下圖類似:

其中sdX代表分配給機器上對應硬盤上的設備名。

如果想要顯示出某個指定硬盤的信息(比如設備模式、S/N、固件版本、大小、ATA版本/修訂號、SMART功能的可用性和狀態),在運行smartctl命令時添加"--info"選項,並按如下所示指定硬盤的設備名。

在本例中,選擇/dev/sda。

  1. # smartctl --info /dev/sda

盡管最開始可能不會注意到ATA(譯者注:硬盤接口技術)的版本信息,但當需要替換硬盤時它確實是最重要的因素之一。每一代ATA版本都保持向下兼容。例如,老的ATA-1或ATA-2設備可以正常工作在ATA-6和ATA-7接口上,但反過來就不行了。在設備版本和接口版本兩者不匹配的情況下,它們會按照兩者中版本較小的規范來運行。也就是說,在這種情況下,需要替換硬盤時,ATA-7硬盤是最安全的選擇。

可以通過這個命令來檢測某個硬盤的健康狀況:

  1. # smartctl -s on -a /dev/sda

在這個命令中,"-s on"標志開啟指定設備上的SMART功能。如果/dev/sda上已開啟SMART支持,那就省略它。

硬盤的SMART信息包含很多部分。其中,"READ SMART DATA"部分顯示出硬盤的整體健康狀況。

  1. === START OF READ SMART DATA SECTION ===
  2. SMART overall-health self-assessment rest result: PASSED

這個測試的結果是PASSED或FAILED。後者表示即將出現硬件故障,所以需要開始備份這塊磁盤上的重要數據!

下一個需要關注的地方是SMART屬性表,如下所示。

基本上,SMART屬性表列出了制造商在硬盤中定義好的屬性值,以及這些屬性相關的故障阈值。這個表由驅動固件自動生成和更新。

  • ID:屬性ID,通常是一個1到255之間的十進制或十六進制的數字。
  • ATTRIBUTE_NAME:硬盤制造商定義的屬性名。
  • FLAG:屬性操作標志(可以忽略)。
  • VALUE:這是表格中最重要的信息之一,代表給定屬性的標准化值,在1到253之間。253意味著最好情況,1意味著最壞情況。取決於屬性和制造商,初始化VALUE可以被設置成100或200.
  • WORST:所記錄的最小VALUE。
  • THRESH:在報告硬盤FAILED狀態前,WORST可以允許的最小值。
  • TYPE:屬性的類型(Pre-fail或Oldage)。Pre-fail類型的屬性可被看成一個關鍵屬性,表示參與磁盤的整體SMART健康評估(PASSED/FAILED)。如果任何Pre-fail類型的屬性故障,那麼可視為磁盤將要發生故障。另一方面,Oldage類型的屬性可被看成一個非關鍵的屬性(如正常的磁盤磨損),表示不會使磁盤本身發生故障。
  • UPDATED:表示屬性的更新頻率。Offline代表磁盤上執行離線測試的時間。
  • WHEN_FAILED:如果VALUE小於等於THRESH,會被設置成“FAILING_NOW”;如果WORST小於等於THRESH會被設置成“In_the_past”;如果都不是,會被設置成“-”。在“FAILING_NOW”情況下,需要盡快備份重要文件,特別是屬性是Pre-fail類型時。“In_the_past”代表屬性已經故障了,但在運行測試的時候沒問題。“-”代表這個屬性從沒故障過。
  • RAW_VALUE:制造商定義的原始值,從VALUE派生。

這時候你可能會想,“是的,smartctl看起來是個不錯的工具,但我更想知道如何避免手動運行的麻煩。”如果能夠以指定的間隔運行,同時又能通知我測試結果,那不是更好嗎?”

好消息是,這個功能已經有了。是smartd發揮作用的時候了!

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-12/110580p2.htm

Copyright © Linux教程網 All Rights Reserved