【硬件相關】SMART硬盤健康狀態監測

文章目錄

    • 一、前言
      • 1、SMART技術介紹
      • 2、SMART功能作用
      • 3、SMART運行原理
    • 二、部署實踐
      • 1、SMART軟件安裝
      • 2、SMART操作命令
        • 2.1、狀態查詢
        • 2.2、健康測試
      • 3、SMART信息解讀
    • 三、異常預測

一、前言

Wikipedia: Self-Monitoring,_Analysis_and_Reporting_Technology

1、SMART技術介紹

S.M.A.R.T,即Self-Monitoring Analysis and Report Technology(自我檢測、分析及報告技術),是一種自動的硬盤狀態檢測與預警系統規范。
通過在硬盤硬件內的檢測指令對硬盤部件(如磁頭、盤片、馬達、電路等)運行情況進行監控,記錄并于硬盤廠商設定預期安全值進行比對,若監控情況將要或已超過預設安全值的范圍,則通過主機的監控硬件或軟件自動向用戶作出警告,并進行輕微的自動修復,以保障硬盤數據安全,目前大部分硬盤均配備該項技術。

在這里插入圖片描述

2、SMART功能作用

該項技術可以讓硬盤更穩定運行,主要表現在以下幾個方面:

  • 當硬盤的損壞程度還在軟件的可修復的范圍(通常由廠商決定),軟件就會自動修復,防止數據的進一步損壞,同時報告異常值,異常程度為警告
  • 當硬盤的損壞程度已經超出軟件的可修復的范圍(通常由廠商決定),軟件則會盡最大能力防止再次寫入數據的丟失(如避開已損壞扇區),同時會報告異常值,異常程度為危險
  • BIOS自檢時,主板會檢測硬盤的S.M.A.R.T.信息,如果硬盤的異常程度為危險時,會提醒用戶及時備份數據(如嗡鳴聲或上報告警信息)

3、SMART運行原理

該技術所需數據被存放在硬盤物理盤面最前面的磁道中,由硬盤廠商將相關管理程序和數據寫入該磁道中,包括加解密程序,自監控程序,自修復程序等,主機的監控軟件可以通過“SMART RETURN STATUS”的命令讀取S.M.A.R.T.信息,且這些信息不允許被用戶直接修改。

二、部署實踐

官網地址:smartmontools

1、SMART軟件安裝

下載頁面:Download

Smartmontools(S.M.A.R.T. Monitoring Tools)是一組實用程序,包括smartctl和smartd兩部分,用于控制和監控S.M.A.R.T信息,適用于大部分ATA、SCSI和NVMe硬盤
Smartmontools可以顯示由S.M.A.R.T監測到的硬盤問題,通知即將可能會發生的故障,提示用戶及時備份數據

  • Windows系統
    官網下載已編譯好的exe程序,直接執行安裝即可

  • Linux系統
    使用在線源直接安裝即可

# CentOS
yum install smartmontools -y
# Ubuntu
apt-get install smartmontools -y

2、SMART操作命令

2.1、狀態查詢
  • smartctl -a <device-path>:獲取硬盤所有SMART信息
  • smartctl -i <device-path>:獲取硬盤標識信息
  • smartctl -x <device-path>:獲取硬盤所有信息
  • smartctl -A <device-path>:獲取硬盤SMART廠家預設屬性及數值
  • smartctl -H <device-path>:獲取硬盤健康狀態
    注:PASSED表示硬盤健康狀態良好
2.2、健康測試
  • smartctl -t short <device-path>:后臺檢測硬盤,消耗時間短
  • smartctl -t long <device-path>:后臺檢測硬盤,消耗時間長
  • smartctl -C -t short <device-path>:前臺檢測硬盤,消耗時間短
  • smartctl -C -t long <device-path>:前臺檢測硬盤,消耗時間長

3、SMART信息解讀

Known ATA S.M.A.R.T. attributes
硬盤SMART檢測參數詳解[轉]

[root@node152 ~]# smartctl -a /dev/sdp
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE1 Raw_Read_Error_Rate     0x000f   077   064   044    Pre-fail  Always       -       510016003 Spin_Up_Time            0x0003   092   091   000    Pre-fail  Always       -       04 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       4085 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       07 Seek_Error_Rate         0x000f   093   060   045    Pre-fail  Always       -       19093628589 Power_On_Hours          0x0032   051   051   000    Old_age   Always       -       4322210 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       012 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       404
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   098   000    Old_age   Always       -       13 13 13
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   061   047   040    Old_age   Always       -       39 (Min/Max 35/42)
191 G-Sense_Error_Rate      0x0032   066   066   000    Old_age   Always       -       68816
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1429
193 Load_Cycle_Count        0x0032   083   083   000    Old_age   Always       -       35840
194 Temperature_Celsius     0x0022   039   053   000    Old_age   Always       -       39 (0 19 0 0 0)
195 Hardware_ECC_Recovered  0x001a   077   001   000    Old_age   Always       -       51001600
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       10
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       39924h+21m+27.906s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       586625564824
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       251070645683
  • 1 Raw_Read_Error_Rate
    該值為廠商指定的原始值,從硬盤讀取數據時發生的硬件讀取錯誤率相關的數據,原始值對于不同廠商有不同的結構,且通常沒有十進制數的意義;對于某些驅動器,這個數字可能會在正常操作期間增加,而不一定意味著錯誤;

  • 3 Spin_Up_Time
    該值表示為主軸平均旋轉時間(從0轉速到完全運轉耗費時長,單位為毫秒)

  • 4 Start_Stop_Count
    該值表示為主軸啟動/停止的次數(啟停計數),即硬盤主軸電機啟動/停止次數累計,系統一些功能如硬盤休眠功能等會使得硬盤啟動/停止次數大大增加

  • ※ 5 Reallocated_Sector_Ct
    參數值通常應為0
    該值表示為重映射扇區的次數,原始值表示已經找到并重新映射的壞扇區的計數,因此,屬性值越高,驅動器必須重新分配的扇區就越多。這個值主要用來衡量驅動器的預期壽命; 如果一個驅動器有任何重新分配,那么它在最近幾個月內失敗的可能性就會大大增加

  • 7 Seek_Error_Rate
    該值為廠商指定的原始值,表示為磁頭尋道誤差率。如果機械定位系統出現部分故障,就會產生尋找誤差。這種故障可能是由于許多因素造成的,如伺服系統的損壞,或硬盤的熱擴展。原始值對于不同的供應商具有不同的結構,并且通常沒有十進制數的意義。對于某些驅動器,這個數字可能會在正常操作期間增加,而不一定意味著錯誤

  • 9 Power_On_Hours
    該值表示為開機狀態下的小時數,默認情況下,通常硬盤總預期壽命為5年(7x24小時不間斷運行,即運行總小時數可達43800 h)

  • 10 Spin_Retry_Count
    該值表示為旋轉嘗試啟動的重試次數,記錄了主軸電機啟動后在規定時間內未達到額定轉速而再次啟動的次數,該屬性值的增加是硬盤機械子系統出現問題的標志

  • 12 Power_Cycle_Count
    該值表示為通電周期次數,即硬盤電源開關次數累計,通常硬盤通電/斷電只會在主機開機/關機時才會發生,主機經歷一次開關機次數才會加1

  • ※ 187 Reported_Uncorrect
    參數值通常應為0,當出現不為0數值時,則需要考慮備份硬盤數據
    該值表示為無法使用硬件ECC恢復的錯誤次數

  • ※ 188 Command_Timeout
    參數值通常應為0
    該值表示為因硬盤超時而終止的操作次數

  • 189 High_Fly_Writes
    該值表示為因磁頭寫入高度出現偏差的次數,硬盤廠商實現了一個磁頭寫入高度傳感器,通過檢測磁頭何時飛出其工作范圍,來為寫操作提供額外的保護;如果磁頭的寫入高度出現偏差,則停止寫入進程,并將信息
    重新寫入或換一個位置寫入

  • 190 Airflow_Temperature_Cel
    該值表示為硬盤內部盤片表面的氣流溫度

  • 191 G-Sense_Error_Rate
    該值表示為硬盤受到外部沖擊、振動導致出錯的頻度

  • 192 Power-Off_Retract_Count
    該值表示為硬盤意外斷電的次數,通常主機正常關機時會給硬盤一個通知,當出現意外斷電時,硬盤在未收到關機通知突然失電,此時磁頭自動復位,迅速離開盤片

  • 193 Load_Cycle_Count
    該值表示為硬盤磁頭加載/卸載次數

  • 194 Temperature_Celsius
    該值表示為硬盤當前溫度,通常建議運行溫度不要超過45°(最高溫度不超過60°),避免溫度過高引起機械變形,導致尋道及讀寫錯誤率上升,降低硬盤性能

  • 195 Hardware_ECC_Recovered
    不同廠商具有特定的數據架構,該數據量大小不能直接說明問題
    該值表示為硬盤通過ECC技術校正錯誤的次數,ECC(即Error Correcting Code)技術可以容忍錯誤,將錯誤自動修正,使得讀寫操作持續進行,不因錯誤而中斷

  • ※ 197 Current_Pending_Sector
    參考:How to Fix Current Pending Sector Count Warning
    參數值通常應為0,當出現非0情況且參數值在不斷增加時,需考慮及時備份數據,避免文件系統損壞,硬盤變為RAW格式
    該值表示為硬盤當前尚未重映射的不穩定扇區數量,當不能從扇區寫入或讀取數據時,這些扇區會被標記為壞扇區,并重新映射分配寫入到硬盤備用扇區
    當壞扇區被重映射時,5 Reallocated_Sector_Ct(重映射扇區次數)參數值也會增加,當硬盤沒有空閑扇區可以重映射時,197 Current_Pending_Sector(當前尚未重映射的不穩定扇區數量)參數值也會增加

  • ※ 198 Offline_Uncorrectable
    參考: What Does Uncorrectable Sector Count Mean & How to Fix It
    參數值通常應為0,當出現非0情況且參數值在不斷增加時,表明讀寫硬盤扇區時存在許多不可糾正的錯誤,該錯誤可能損壞或造成硬盤永久性故障,導致數據丟失
    該值表示為讀寫扇區發生不可糾正錯誤的總數

  • 199 UDMA_CRC_Error_Count
    參考:How to Fix UDMA CRC Error Count? Here Are 5 Solutions!
    當參數值不為0且在不斷增加時,表明硬盤控制器->數據線->硬盤接口鏈路存在問題,數據線損壞或者接口接觸不良都可能會導致出現此問題(數值不再繼續增加表示問題已解決)
    該值表示為硬盤Ultra DMA CRC錯誤次數,表明主機和硬盤之間數據傳輸存在問題,UDMA (Ultra DMA)是超直接存儲器訪問(Ultra Direct Memory Access)的縮寫,它是一種硬盤驅動器技術,允許硬盤驅動器直接與內存通信,而不依賴于CPU;CRC代表循環內存校驗(Cyclic Memory Check),這是一個校驗和,可以檢測數據是否損壞

  • 240 Head_Flying_Hours
    該參數值表示為硬盤定位磁頭期間所花費的時間

  • 241 Total_LBAs_Written
    該參數值表示為硬盤LBA寫入總數

  • 242 Total_LBAs_Read
    該參數值表示為硬盤LBA讀取總數

三、異常預測

基于隨機森林算法進行硬盤故障預測
Making Sense of SSD SMART Stats

backblaze是一家領先的云存儲服務提供商,為企業、開發人員、IT專業人員和個人構建應用程序、托管內容、管理媒體、備份和存檔數據提供了基礎
自2013年以來,backblaze每季度會發布其數據中心硬盤的統計數據和相關分析(具體可參考Hard Drive Data and Stats)

backblaze根據其數據中心硬盤監控數據,分析HDD故障和SMART屬性之間的關聯性(具體可參考What SMART Stats Tell Us About Hard Drives),
發現SMART 5、187、188、197、198與HDD故障的相關率最高,SMART屬性相關說明如下

SMART編號SMART名稱相關說明
SMART 5Reallocated Sectors Count重映射扇區次數(當出現壞扇區時,會觸發重新映射分配寫入備用扇區)
SMART 187Reported Uncorrectable Errors無法使用硬件ECC恢復的錯誤次數
SMART 188Command Timeout因硬盤超時而終止的操作次數
SMART 197Current Pending Sector Count當前尚未重映射的不穩定扇區數量
SMART 198Uncorrectable Sector Count讀寫扇區發生不可糾正錯誤的總數

正常情況下,這5個SMART屬性值應為0,當出現全部非0情況,對應硬盤出現故障的概率會很大

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719628.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5G網絡架構與組網部署01--5G網絡架構的演進趨勢

目錄 1. 5G網絡架構的演進趨勢 1.1 5G移動通信系統整體架構 1.2 4G移動通信系統整體架構 1.3 4G與5G移動通信系統整體架構對比 1.4 核心網架構演進 1.5 無線接入網演進 1. 整體架構組成&#xff1a;接入網&#xff0c;核心網 2. 5G網絡接入網和核心網對應的網元&#xff…

es集群的詳細搭建過程

目錄 一、VM配置二、集群搭建三、集群配置 一、VM配置 VM的安裝 VMware Workstation 15 Pro的安裝與破解 VM新建虛擬機 VM新建虛擬機 二、集群搭建 打開新建好的服務器&#xff0c;node1&#xff0c;使用xshell遠程連接 下載es&#xff1a;https://www.elastic.co/cn/down…

內網穿透的應用-如何修改Nginx服務location代理轉發規則結合cpolar實現無公網ip環境訪問內網站點

文章目錄 1. 下載windows版Nginx2. 配置Nginx3. 測試局域網訪問4. cpolar內網穿透5. 測試公網訪問6. 配置固定二級子域名7. 測試訪問公網固定二級子域名 1. 下載windows版Nginx 進入官方網站(http://nginx.org/en/download.html)下載windows版的nginx 下載好后解壓進入nginx目…

問題解決:各版本的vc_redist下載地址 缺少msvcr100.dll、msvcr120.dll、msvcr140.dll

Visual C Redistributable for Visual Studio各版本的官方鏈接。解決缺少msvcr100.dll、msvcr120.dll、msvcr140.dll的問題。 下面全部為官方鏈接&#xff1a; Microsoft Visual C Redistributable 2019 x86: https://aka.ms/vs/16/release/VC_redist.x86.exe x64: https://ak…

【S32DS報錯】-5-提示Secure Debug might be enabled on this device錯誤

【S32K3_MCAL從入門到精通】合集&#xff1a; S32K3_MCAL從入門到精通https://blog.csdn.net/qfmzhu/category_12519033.html 問題背景&#xff1a; 在S32DS IDE中使用PEmicro&#xff08;Multilink ACP&#xff0c;Multilink Universal&#xff0c;Multilink FX&#xff09…

自適應控制算法講解-案例(附C代碼)

目錄 一、自適應控制算法的基本原理 二、自適應控制算法分類 三、案例 3.1自適應PID控制 1&#xff09; 模型識別 2&#xff09;動態調整PID參數邏輯 3&#xff09;PID控制器 自適應控制算法是一種高級控制算法&#xff0c;用于處理那些參數不確定或者動態變化的系統。這類…

SwiftUI 在 App 中彈出全局消息橫幅(下)

功能需求 在 SwiftUI 開發的 App 界面中,有時我們需要在全局層面向用戶展示一些消息: 如上圖所示:我們彈出的全局消息橫幅位于所有視圖之上,這意味這它不會被任何東西所遮擋;而且用戶可以點擊該橫幅關閉它。這是怎么做到的呢? 在本篇博文中,您將學到以下內容 功能需求…

iOS-設置指定邊圓角(左上、左下等)

以UILabel舉例&#xff0c;效果圖如下&#xff1a; 方法一僅支持iOS11以上 方法一&#xff1a; [_sleepStateLabel.layer setMasksToBounds:YES]; [_sleepStateLabel.layer setCornerRadius:12]; [_sleepStateLabel.layer setMaskedCorners:kCALayerMinXMinYCorner | kCALaye…

個人項目介紹3:火車站篇

項目需求&#xff1a; 一比一精確顯示火車站主建筑和站臺模型。實時響應車輛信息&#xff08;上水&#xff0c;吸污&#xff0c;換乘&#xff09;并同步顯示&#xff0c;實時響應車輛進出站信息&#xff0c;并以動畫形式模擬。實時響應報警信息&#xff0c;并能在三位中顯示&a…

#WEB前端(CCS選擇器)

1.實驗&#xff1a;CCS選擇器 2.IDE&#xff1a;VSCODE 3.記錄&#xff1a; 子代選擇器、后代選擇器、相鄰兄弟選擇器、類選擇器、偽元素選擇器&#xff08;鼠標懸停&#xff09;、ID選擇器、調用選擇器&#xff08;全選&#xff09; 4.代碼&#xff1a; <!DOCTYPE html…

java generics(泛型)

在定義類、接口和方法時&#xff0c;泛型使類型(類和接口)成為參數。與方法聲明中使用的形參非常相似&#xff0c;類型參數為您提供了一種方法&#xff0c;可以用不同的輸入重用相同的代碼。不同之處在于形式參數的輸入是值&#xff0c;而類型參數的輸入是類型。 使用泛型有許…

Elasticsearch7.17.7操作geo_point類型數據

目前使用的elasticsearch版本是7.17.7 有一個index&#xff0c;其中mapping的內容如下&#xff1a; {"city" : {"aliases" : { },"mappings" : {"properties" : {"city" : {"type" : "keyword"},"…

嵌入式學習 Day 29

函數: 1.函數的定義 2.函數的調用 3.函數的聲明 1.函數傳參: 1.賦值傳遞&#xff08;復制傳遞&#xff09; 函數體內部想要使用函數體外部變量值的時候使用復制傳遞 2.全局變量傳遞 3.地址傳遞 函數體內部想要修改函數體外部變量值的時候使用地址傳遞 函數…

代碼隨想錄算法訓練營第48天| Leetcode 121. 買賣股票的最佳時機、Leetcode 122.買賣股票的最佳時機II

文章目錄 Leetcode 121. 買賣股票的最佳時機Leetcode 122.買賣股票的最佳時機II Leetcode 121. 買賣股票的最佳時機 題目鏈接&#xff1a; Leetcode 121. 買賣股票的最佳時機 題目描述&#xff1a; 給定一個數組 prices &#xff0c;它的第 i 個元素 prices[i] 表示一支給定股…

W5300驅動說明

W5300是一款帶有硬件協議棧的網絡芯片&#xff0c;內部擁有128K的緩存&#xff0c;最大支持8路socket通信&#xff0c;與MCU之間通過16位數據總線通信&#xff0c;通信速度遠超W5500之類以SPI作為通信接口的網絡芯片&#xff0c;特別適合對高速網絡傳輸有需求的應用。 本次使用…

使用 helm repo add istio添加了一個helm chart repo,如何查看istio的版本呢

1. 添加chart repo helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update2. 查看版本 helm search repo istio 3. 查看版本詳細信息 helm show chart istio/cni 4. 查看某個chart的歷史版本 helm search repo <chart-name> --…

【Linux】信號的保存

&#x1f34e;個人博客&#xff1a;個人主頁 &#x1f3c6;個人專欄&#xff1a;Linux ?? 功不唐捐&#xff0c;玉汝于成 目錄 前言 正文 信號在Linux中的保存主要涉及方面 信號的類型&#xff1a; 信號處理程序&#xff1a; 信號的傳遞和處理&#xff1a; 信號的阻…

面試官:你用過Collections工具類嗎?

Collections工具類 1. 常用的 Collections 方法2. 代碼示例 Java中的 Collections 工具類提供了一系列靜態方法&#xff0c;用于對集合進行各種操作&#xff0c;如排序、查找、替換等。下面我們來看一些 Collections 工具類中常用的API和使用示例。 1. 常用的 Collections 方…

回溯算法套路③排列型回溯+N皇后【基礎算法精講 16】

46 . 全排列 鏈接 : . - 力扣&#xff08;LeetCode&#xff09; 思路 : 那么怎么確定選了那個數呢? 這里設置一個used表示i選沒選過 ; class Solution { public:vector<vector<int>> ans;vector<int> path;void backtrack(vector<int>nums,vect…

2024年【天津市安全員B證】考試內容及天津市安全員B證實操考試視頻

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 天津市安全員B證考試內容根據新天津市安全員B證考試大綱要求&#xff0c;安全生產模擬考試一點通將天津市安全員B證模擬考試試題進行匯編&#xff0c;組成一套天津市安全員B證全真模擬考試試題&#xff0c;學員可通過…