022.常見硬盤檢測方式


硬盤監測概述

硬盤異常損壞日常相對概率較高,同時不同的文件系統(xfs,reiserfs,ext3)其檢測方式不同。建議使用dmesag查看有沒有硬件I/O故障的日志,也可使用用fsck確認是否文件系統異常。

SMART檢測硬盤

SMART是一種磁盤自我分析檢測技術,硬盤運行中會將主要參數進行記錄,主要有:型號、容量、溫度、密度、扇區、尋道時間、傳輸、誤碼率等。
硬盤運行一段時間后,如上參數會有相應的變動,某些參數超過閥值會出現報警。依靠相應的報警可初步判斷硬盤是否接近(已經)損壞。

啟用SMART

SMART是和主板BIOS上相應功能配合的,在使用smart之前必須在bios設置中啟動相關特性。
硬件特性開啟smart的情況下,對於Linux,有相應的smartd服務駐守運行,該進程能監視、分析和匯聚相關硬盤情況。

smartctl簡單用法

smartctl可用於對磁盤進行相關檢測,主要用法如下:
smartctl -a :檢查該設備是否已經打開SMART技術。
smartctl -s on :如果沒有打開SMART技術,使用該命令打開SMART技術。
smartctl -t short :后台檢測硬盤,消耗時間短。
smartctl -t long :后台檢測硬盤,消耗時間長。
smartctl -C -t short :前台檢測硬盤,消耗時間短。
smartctl -C -t long :前台檢測硬盤,消耗時間長。
smartctl -X :中斷后台檢測硬盤。
smartctl -l selftest :顯示硬盤檢測日志。
smartctl -l error :顯示硬盤錯誤匯總。

提示:首先通過dmesg工具,確認一下硬盤的設備符號。

smartctl使用示例

# smartctl -i /dev/sda
……
SMART support is: Available - device has SMART capability.
SMART support is: Enabled                                   #表示啟用了smart支持 

# smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda

# smartctl -H /dev/sda
……
SMART overall-health self-assessment test result: PASSED 

命令釋義:
PASSED:這表示硬盤健康狀態良好;
FAILED:硬盤不健康,建議更換硬盤。

提示:SMART僅報告磁盤不再健康,但是報警后能持續運行多長時間無法確定。

#smartctl -A   /dev/sda                     #查看硬盤的詳細信息,測試硬盤使用時間以及寫入字節數
#smartctl -s on  /dev/sda                   #如果沒有打開SMART技術,使用該命令打開SMART技術。 
#smartctl -t short  /dev/sda                #后台檢測硬盤,消耗時間短; 
#smartctl -t long  /dev/sda                 #后台檢測硬盤,消耗時間長; 
#smartctl -C -t short /dev/sda              #前台檢測硬盤,消耗時間短; 
#smartctl -C -t long /dev/sda               #前台檢測硬盤,消耗時間長。
#smartctl -X   /dev/sda                     #中斷后台檢測硬盤。 
#smartctl -l selftest  /dev/sda             #顯示硬盤檢測日志。 
#smartctl -l error   /dev/sda               #顯示硬盤錯誤匯總。 

smart常駐配置

通常執行smartctl需要在服務器終端執行,sarmt也支持作為服務運行在服務端,進程deamon為startd,從而實現定時判斷硬盤狀態,同時指定報警、日志等。

配置方式

如下示例配置好 smartd.conf 后啟動進程即可。

# vi  /etc/smartd.conf
/dev/sda -H  -m  test@test123123.com                    #配置監控磁盤的健康狀態,當SMART中報告 PASSED無視,Failure,則郵件通知

/dev/sda -a -m  admin@example.com,root@localhost        #監控磁盤的所有屬性,當SMART中報告 PASSED無視,Failure,則郵件通知

啟動startd服務。

# /etc/init.d/smartd restart                            #加載配置文件啟動

提示:更多smart使用及配置參考:https://www.smartmontools.org/wiki/TocDoc

badblocks檢測硬盤

badblocks概述

badblocks命令可以檢查磁盤裝置中損壞的區塊。該命令需要指定所要檢查的磁盤設備,及此磁盤區塊數。
語法:
badblocks [-svw][-b ][-o ][磁盤裝置][磁盤區塊數][啟始區塊]

參數:

  • -b 指定磁盤的區塊大小,單位為字節。
  • -o 將檢查的結果寫入指定的輸出文件。
  • -s 在檢查時顯示進度。
  • -v 執行時顯示詳細的信息。
  • -w 在檢查時,執行寫入測試。
  • [磁盤設備] 指定要檢查的磁盤設備。
  • [磁盤區塊數] 指定磁盤設備的區塊總數。
  • [啟始區塊] 指定要從哪個區塊開始檢查。

badblocks使用示例

badblocks檢測磁盤壞塊:

badblocks -s -v /dev/sda1           #顯示進度和執行檢查的詳細情況
# badblocks -s -v /dev/sda

# badblocks -s -w -v /dev/sda2      #顯示進度並且以寫入的方式檢測同時顯示詳細情況

注意:不能以寫的方式檢測已經掛載的硬盤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM