萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 硬碟健康檢測:SMART 技術原理與 smartctl 實戰指南

掌握 SMART 技術,預防硬碟災難性故障

硬碟是伺服器最脆弱的機械部件。S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)提供硬碟自我監測能力,透過 smartctl 工具可即時掌握健康狀態,在災難發生前完成遷移與更換。

一、SMART 核心概念

  • 屬性監測:記錄溫度、重新配置扇區、尋找錯誤、通電時數等 200+ 參數
  • 閾值判斷:每個屬性設有臨界值,超標即預警
  • 自我測試:支援短時間/長時間/選擇性自我測試
  • 日誌記錄:錯誤日誌、自我測試日誌、選擇性測試日誌

二、前置準備:BIOS 與核心支援

  1. BIOS/UEFI 啟用 SMART 支援(現代主板預設開啟)
  2. 核心模組載入:modprobe libata(SATA)、modprobe scsi_mod(SCSI/SAS)
  3. 安裝工具:yum install -y smartmontools 或 apt install smartmontools

三、確認裝置 SMART 能力

smartctl -i /dev/sda

關鍵輸出:

SMART support is: Available - device has SMART capability.
SMART support is: Enabled

若顯示 Disabled,啟用之:

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

四、快速健康檢查

smartctl -H /dev/sda

輸出關鍵行:

SMART overall-health self-assessment test result: PASSED
  • PASSED:健康
  • FAILED:立即備份並更換硬碟!

五、詳細屬性分析(-A 參數)

smartctl -A /dev/sda

重點關注屬性(ID 對應):

ID屬性名稱關鍵含義警戒閾值
5Reallocated_Sector_Ct重新配置扇區計數(壞軌替換)> 0 即關注,> 10 嚴重
197Current_Pending_Sector待測扇區計數(可能壞軌)> 0 需關注
198Offline_Uncorrectable離線不可修正扇區> 0 極度危險
199UDMA_CRC_Error_CountCRC 錯誤(傳輸線/介面問題)持續增長檢查纜線
190/194Airflow_Temperature / Temperature_Celsius溫度> 50℃ 需改善散熱
9Power_On_Hours通電時數> 40000h 進入老化期
12Power_Cycle_Count開關機次數參考廠商壽命
1Raw_Read_Error_Rate讀取錯誤率(廠商編碼)需參考 RAW 值
7Seek_Error_Rate尋找錯誤率機械故障前兆

六、執行自我測試

# 短時間測試(約 2 分鐘)
smartctl -t short /dev/sda

# 長時間測試(數小時,建議離峰時段)
smartctl -t long /dev/sda

# 指定區塊測試
smartctl -t select,100-200 /dev/sda

# 查看測試進度/結果
smartctl -l selftest /dev/sda

七、完整資訊輸出(-a 參數)

smartctl -a /dev/sda

包含:裝置資訊、健康狀態、所有屬性、錯誤日誌、自我測試日誌。建議定期導出存檔趨勢分析。

八、自動化監控與告警

啟動 smartd 守護程式(/etc/smartd.conf):

# 範例:每 30 分鐘檢查,健康狀態變化發郵件
DEVICESCAN -H -m admin@example.com -M exec /usr/share/smartmontools/smartd-runner
systemctl enable smartd
systemctl start smartd

九、虛擬化環境特殊說明

  • VMware/KVM/Hyper-V 客體機:虛擬磁碟通常不支援 SMART,smartctl 會報錯或回傳虛擬資料
  • 需在宿主機監控實體硬碟 SMART
  • 直通模式(PCI Passthrough)可在客體看到真實 SMART

十、NVMe 固態硬碟監控

# NVMe 使用 nvme-cli 而非 smartctl
nvme smart-log /dev/nvme0
# 關鍵指標:percentage_used(壽命百分比)、critical_warning、temperature

📋 維運檢查清單

  1. 每日:自動檢查健康狀態(smartd)
  2. 每週:人工審核 smartctl -A 關鍵屬性趨勢
  3. 每月:執行長時間自我測試
  4. 更換判斷:Reallocated_Sector_Ct > 0 且持續增長、或 Pending Sector 不歸零、或溫度異常
copyright © 萬盛學電腦網 all rights reserved