在機械硬盤技術極爲成熟的當下,硬盤損壞對普通消費者來講彷佛愈來愈遙遠,我本身用的一臺 X200 筆記本從 2009 年買來用到如今,那塊日立硬盤一點問題都沒出過,好像都沒有理由換筆記本了嚶嚶嚶……安全
不過殘酷的現實是,對於商業應用來講,消費級硬盤的可靠性仍然是一個須要關注的問題,特別是如BlackBlaze 那樣使用消費級硬盤來搭建存儲系統的系統。服務器
對 UPYUN 來講,雖然咱們核心系統並未使用消費級存儲設備,但外圍系統快速增加,數量龐大的硬盤開始對運維部門精簡的人員數量形成了巨大的壓力,由於普通的「損壞-更換」的方式形成的事務堆積和時間碎片化使得人員精力分散,不堪重負。運維
因而本文的主題誕生了,在一系列調查和統計數據的支撐下,固然還要感謝萬能的 Google ,咱們最終有效的解決了這方面問題。性能
S.M.A.R.T. 信息是 UPYUN 監控硬盤的極爲重要的指標,咱們能經過它對硬盤底層的健康情況進行診斷甚至預測,從而在硬盤故障前就將其從業務系統中摘除,避免影響線上服務。測試
同時也能經過它對存儲裝置的異常緣由進行診斷,可判斷因素包括溫度、震動、機件故障、瞬間衝擊等,是運維工做中不可替代的存儲系統底層檢測方式。spa
我提取了部分線上機器共 3047 塊硬盤的 S.M.A.R.T. 的數據用於研究分析,並以這些原始數據爲基礎總結了一些能有效斷定硬盤健康程度的項目。設計
根據過濾無效數據後的 61511 條數據,咱們將一些項目做爲了系統剔除硬盤的異常判斷依據,以及預測硬盤是否須要更換的依據。code
咱們根據關鍵的硬盤監控數據將硬盤的健康情況分爲下面幾級。orm
該級別的硬盤很是健康,無任何風險存在,一般爲全新上線的硬盤,對於標記爲 Good 的硬盤,不會有任何問題存在,也無需留意和監控。blog
特徵界定:全部風險判斷項均爲 0 或關鍵原始數據增加狀況低於「報告」標準。
健康情況爲 Caution 「報告」的硬盤,在監控指標上存在必定程度的劣化,可是尚在硬盤主控的安全範圍,主控芯片可有效的處理異常並在性能上沒有任何明顯衰退跡象,它還能承擔很長時間的正常服務,可是有必要考慮它的健康情況隨時可能提高到警惕級別。
特徵界定:任一風險項知足「報告」標準。
健康情況爲 Threatening 「警惕」的硬盤,已經存在必定的性能衰退風險,由於已經開始有一些主控芯片沒法控制的狀況發生,它的性能可能也已經有些微降低,它的健康情況正在逐步脫離主控系統的控制,應當發出告警通知到運維人員並考慮儘快從業務系統中摘除該硬盤進行替換,避免它進入衰退級別時還在進行線上服務。
特徵界定:任一風險項知足「警惕」標準
處理動做:人力容許的狀況下安排更換硬盤,從警惕告警發出到進入衰退期一般有足夠的時間進行硬盤替換。若是意外進入衰退期,系統也會自動將其從業務系統中隔離。
健康情況爲 Decline 「衰退」的硬盤,不該該在線上服役,原則上處於警惕級別的硬盤就應該被更換,由於「衰退」的硬盤用於線上服務時已經有很大的可能對業務系統的總體運行形成威脅,一般表現爲業務系統性能降低,數據讀寫出錯和超時等,但剛剛進入「衰退」級別的硬盤一般不會產生系統級別的錯誤,只能從性能降低角度判斷它存在性能衰退的狀況。
特徵界定:任一風險項知足「衰退」標準
處理動做:系統會自動將其從業務系統中剔除,但如因各類緣由暫時沒法更換,則應儘快在物理上將其斷開和設備的鏈接,避免硬盤狀態接近「災難」級而致使系統出現異常(例如進程卡死)。
健康情況爲 Disaster 「災難」的硬盤一般不會在任何線上系統中出現。在硬盤分級機制啓用後,理論上會出現「災難」級硬盤的狀況只有劇烈衝擊或忽然掉電或電流衝擊致使的硬盤瞬間損壞以及 S.M.A.R.T. 芯片故障致使的沒法讀取。該級別的硬盤徹底沒法工做。
特徵界定:
處理動做:更換它!
Raw_Read_Error_Rate
原始讀取錯誤率ID:1,告警項:
「報告」:巡檢 / Patrol.
因爲各廠商對該值定義不一樣,該值增長狀況和硬盤工做情況也不存在強關聯性,因此不做爲警惕和衰退等級界定要素。
Seek_Error_Rate
尋道錯誤率ID:7,告警項:
「報告」:巡檢 / Patrol.
因爲各廠商對該值定義不一樣,該值增長狀況和硬盤工做情況也不存在強關聯性,因此不做爲警惕和衰退等級界定要素。
Reallocated_Sector_Ct
重分配扇區計數ID:5,告警項:
「警惕」:性能衰退 / Performance decline. 「衰退」:數據風險 / High Data Risk.
Unexpect_Power_Loss_Ct / Power-off Retract Count / Emergency Retract Cycle Count
異常斷電計數ID:174 / 192,告警項:
「報告」:偵測到核心供電異常 / Core Power Interruption Detected.
Wear_Leveling_Count
顆粒平均擦寫次數ID:177,告警項:
「警惕」:壽命將盡 / Disk Is Dying. 「衰退」:回天乏術 / Disk Is Dead.
閾值:
警惕級 WORST 數據(非 RAW )低於15;
衰退級 WORST 數據(非 RAW )爲 小於等於 1 .
說明:SSD 特有項,用於評估 SSD 壽命,因廠商評估標準不一樣,故不以 RAW VALUE 爲標準。
影響:硬盤進入警惕級時應考慮更換它,由於該項降爲 0 和硬盤工做狀況不存在強關聯性,但即使各項指標均無異常,也不推薦在線上使用時超期服役。
通常認爲該值爲零時,已達到硬盤設計使用壽命。
Runtime_Bad_Block
運行時壞塊計數ID:183,告警項:
「報告」:安定度降低 / Stability declining.
根據統計數據來看,線上全部 SSD 該值增加的數量很是少。具體對可靠性和性能的影響還需後續觀察,因此先置爲報告級監控項。
End-to-End_Error
端到端校驗錯誤ID:184,告警項:
「報告」:傳輸介質異常 / Transmission Medium Fucked Up.
因沒有發現案例,因此該項目前是置爲報告級的。
Reported_Uncorrect
沒法恢復的錯誤ID:187,告警等級:
衰退:偵測到數據風險 / High Data Risk.
COMMAND_TIMEOUT
指令超時ID:188,告警等級:
「警惕」:性能衰退 / Performance decline. 「衰退」:嚴重性能衰退風險 / High Performance Risk. 「災難」:別鬧 / Performance is gone.
閾值:
警惕級:非 0
衰退級:高於 10
災難級:高於 1000000
說明:該項值非零並持續增加代表硬盤響應能力降低,性能受嚴重影響。
影響:須要即刻更換,但因該值剛開始上升時不會發生嚴重錯誤,從而可能難以觸發告警,它的獨立上漲將致使硬盤性能受到難以感知的影響,可是會逐步劣化成嚴重的性能降低風險。
根據經驗,通常認爲該值和 SMART187 以及 SMART183 存在關聯性,上述兩者的出現有必定可能(看讀寫頻率)致使該值持續升高。
High_Fly_Writes
磁頭在異常高度工做ID:189,告警等級:
「報告」:磁頭異常 / Disk Fly High.
G-sense Error Rate
加速度傳感器告警ID:191,告警等級:
「報告」:碰撞警報 / Physical Impact Warning.
Temperature_Celsius
或 Airflow_Temperature_Celsiu
溫度 / 氣流溫度ID:194 或 190,告警等級:
「報告」:燒烤硬盤 / BBQ. 「警惕」:率先踏入地獄 / Drop feet first in the hell.
閾值:
報告級:52
警惕級:62
說明:硬盤工做溫度狀況。
Current_Pending_Sector
當前待映射扇區計數ID:197,告警等級:
「報告」:安定度降低 / Stability declining. 「警惕」:性能衰退 / Performance decline. 「衰退」:數據風險 / High Data Risk.
閾值:
報告級:非 0
警惕級:3
衰退級:10
說明:這一參數的數據表示了「不穩定」的扇區數,即「等待被映射」的扇區數量。
所以,該項少許錯誤不會有嚴重後果,但該項值快速或大量發生變化,則應考慮是否硬盤發生了穩定性方面的問題。
Offline Uncorrectable / Uncorrectable Sector Count
屏蔽扇區計數ID:198,告警等級:
「報告」:安定度降低 / Stability declining.
閾值:
報告級:3
說明:這一項數據表明磁盤主控確認失效已經屏蔽的扇區計數。
影響:理論上該值過大會致使數據風險。統計顯示絕大多數磁盤該數據爲零。但該值非零並不和磁盤性能降低或故障存在強關聯,問題磁盤的這個值通常都比較高,因此將其置爲報告級別待後續研究。
S.M.A.R.T. 數據在正常狀況下都是能快速響應並準確的。
在 UPYUN 的實際線上環境,遇到過部分硬盤存在 S.M.A.R.T. 信息沒法讀取的狀況。我對發生這些狀況的硬盤作了一下簡單的調查後,發現發生此類狀況的硬盤通常伴隨着性能的嚴重降低,一般原始讀取錯誤增加率約爲十幾秒百萬,或某個單項監控增加率異常高,基本上摘除之後 S.M.A.R.T. 響應速度都能必定程度上恢復。
我認爲這多是因爲硬盤主控芯片已無力處理海量的數據糾正要求,從而沒有空閒的資源響應系統對 S.M.A.R.T. 的請求致使的,而事實上這些硬盤已經存在很是嚴重的問題了。只要咱們針對其硬盤工做狀態做出合理的健康判斷並在它表現出明顯故障以前摘除,那麼就基本上不會發生 S.M.A.R.T. 監控失效狀況了。
注: 文章爲 UPYUN 攻城獅 WooDragon 原創內容,轉載需通過做者受權,同時保留署名和原文連接。