通過預測硬盤錯誤來提升云上的服務可用性

最近云平臺上面一件比較嚴重的事故就是騰訊云出現(xiàn)了用戶數(shù)據(jù)丟失斤彼,根據(jù)官方的回復绊起,主要是因為硬盤的靜默錯誤 + 運維的不規(guī)范操作造成的色难。網(wǎng)上已經(jīng)有很多文章來分析這次事故了席赂,我們自己內(nèi)部也在討論如何快速的發(fā)現(xiàn)硬盤的故障,畢竟對于 TiKV 來說矛渴,存放的是用戶的數(shù)據(jù)椎扬,也會面臨著盤壞的風險,如果能提前知道盤有問題具温,那么就能更早的做出處理蚕涤,提升服務的穩(wěn)定性。

剛好看到了一篇 Paper Improving Service Availability of Cloud Systems by Predicting Disk Error 铣猩,講述的是 Microsoft (MS)的團隊如何在 Azure 上面通過 CDEF 方法揖铜,預測硬盤的錯誤,并有效的提升 Azure 的可用性的达皿。

對于云服務來說天吓,如果能預測硬盤錯誤, 那么在分配 VM 以及 VM 實時遷移的時候峦椰,就會有非常大的好處龄寞,畢竟我們不想讓一個 VM 跑在壞的盤上面。而騰訊云上次的事故就是在運維在遷移的時候?qū)⒂脩舻?VM 放到了一個壞盤上面汤功。

但是在生產(chǎn)環(huán)境中物邑,預測硬件的錯誤其實是非常困難的,主要有幾個問題:

  1. VM 在硬盤完全壞掉之前,其實已經(jīng)早就掛掉了拂封。
  2. 現(xiàn)階段的一些預測方法茬射,譬如 cross-validation,并不準確冒签。
  3. 給硬盤打上 health labels 然后訓練也很困難在抛,譬如對于 azure 來說,每天只有 3 塊盤壞掉萧恕,而正常的盤是 10000 塊刚梭,這個比例是極度不平衡的。

為了解決這些問題票唆,Microsoft 的團隊使用了 CDEF (Cloud Disk Error Forecasting) 方法朴读。

對于問題 1,我們知道走趋,硬盤通常都有一個監(jiān)控固件用來匯報硬盤當前的狀態(tài)衅金,我們叫做 SMART (Self-Monitoring, Analysis and Reporting Technology),一些常用的 SMART 數(shù)據(jù)如下:

SMART ID Description
S2 Start/Stop Count
S12 Power Cycle Count
S193 Load Cycle Count

但是簿煌,僅僅有 SMART 的數(shù)據(jù)是不夠的氮唯,因為當通常 SMART 知道硬盤有問題的時候,VM 其實已經(jīng)出現(xiàn)了問題姨伟,所以惩琉,我們不光要收集 SMART 的數(shù)據(jù),還需要收集系統(tǒng)級別的信號夺荒,譬如:

Signal Description
PagingError Windows 在創(chuàng)建一個 paging 文件的時候遇到了錯誤
FileSystemError 當嘗試讀瞒渠,寫或者打開文件的時候出錯
VMFrozen VM 不響應連接請求

因為這些系統(tǒng)級別的信號,通常都是會在硬盤出錯之前報出來技扼,所以當我們收集了這些以及 SMART 之后伍玖,就可以用我們的預測模型來預測相關的硬盤錯誤了,包括延遲剿吻,超時私沮,sector 錯誤等。

雖然現(xiàn)在有了收集的數(shù)據(jù)和橙,但現(xiàn)在的很多模型其實預測的并不精確,Microsoft 團隊就沒選擇一些傳統(tǒng)的訓練方法造垛,而采用了在線預測的方式來解決問題 2魔招。因為這里涉及到很多機器學習相關的東西了,本人不怎么了解五辽,直接略過了办斑。

而對于問題 3,MS 的團隊采用了一種 ranking 的方式,與其簡單的告訴一塊盤是壞的還是不是乡翅,他們按照硬盤的故障趨勢來為硬盤分了等級鳞疲。為了訓練 ranking 模型,MS 的團隊根據(jù)歷史的硬盤故障數(shù)據(jù)蠕蚜,按照出現(xiàn)錯誤的相應時間來分級(譬如從開始采集數(shù)據(jù)到第一次發(fā)現(xiàn) error 的間隔天數(shù))尚洽,具體訓練又涉及到機器學習了,直接忽略了靶累。

為了提升服務的可用性腺毫,當分配 VM 的時候,當然希望分配到未來一段時間損壞概率低的盤上面挣柬。為了達到這個目的潮酒,MS 的團隊根據(jù)盤壞掉的概率定義了故障盤和健康盤。對于大部分的盤來說都是健康的邪蛔,只有少量的是故障的急黎,MS 的團隊根據(jù)上面的 ranking 模型選擇最高的 r 個結果,計算公式如下:

cost = Cost1 * FPr + Cost2 * FNr

FR 和 FN 是 r 個預期結果里面假正(false positives)和假負(false negatives)的個數(shù)侧到, Cost1 是錯誤的將一個健康的盤標記成故障的開銷勃教,主要是在實時遷移中,將 VM 從一個『故障』的盤遷移到了正常的盤上面床牧。Cost2 則是漏掉了實際的故障的盤荣回。這兩個 cost 都是根據(jù)經(jīng)驗來的,在 MS戈咳,Cost1 和 Cost2 通常是 3:1 的關系心软。

現(xiàn)在有了數(shù)據(jù),有了模型著蛙,剩下的事情就是驗證這套機制是否生效了删铃。對于 MS 來說,Azure 就是一個非常好的驗證的地方踏堡,具體結果可以看 Paper猎唁,看起來是不錯的。

那么顷蟆,對于 TiKV 來說有啥借鑒意義呢诫隅?雖然這個方法看起來挺不錯的,但 TiKV 其實并沒有那么多的磁盤帐偎,盲目的引入這么一套判定方法有點不切實際逐纬。另外,TiKV 有三個副本削樊,能很大程度上面緩解相關的磁盤問題豁生。當然如果能有一個輕量級的定期數(shù)據(jù)檢查的機制會更好兔毒。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市甸箱,隨后出現(xiàn)的幾起案子育叁,更是在濱河造成了極大的恐慌,老刑警劉巖芍殖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豪嗽,死亡現(xiàn)場離奇詭異,居然都是意外死亡围小,警方通過查閱死者的電腦和手機偷拔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門圆恤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事秘车“雎保” “怎么了末早?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵啊片,是天一觀的道長。 經(jīng)常有香客問我刘绣,道長樱溉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任纬凤,我火速辦了婚禮福贞,結果婚禮上,老公的妹妹穿的比我還像新娘停士。我一直安慰自己挖帘,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布恋技。 她就那樣靜靜地躺著拇舀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜻底。 梳的紋絲不亂的頭發(fā)上骄崩,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音薄辅,去河邊找鬼要拂。 笑死,一個胖子當著我的面吹牛站楚,可吹牛的內(nèi)容都是我干的宇弛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼源请,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谁尸,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤舅踪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后良蛮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抽碌,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年决瞳,在試婚紗的時候發(fā)現(xiàn)自己被綠了货徙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡皮胡,死狀恐怖痴颊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屡贺,我是刑警寧澤蠢棱,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站甩栈,受9級特大地震影響泻仙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜量没,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一玉转、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧殴蹄,春花似錦究抓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妓蛮,卻和暖如春怠李,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛤克。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工捺癞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人构挤。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓髓介,卻偏偏與公主長得像,于是被迫代替她去往敵國和親筋现。 傳聞我的和親對象是個殘疾皇子唐础,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容