天天看點

信服雲的ECC機制:有效減少30%伺服器當機故障

信服雲的ECC機制:有效減少30%伺服器當機故障

伺服器當機可能是很多運維工程師最可怕的噩夢。谷歌的一項研究表明:大多數當機故障是由記憶體問題而引起的,而且每年有1/3的谷歌伺服器都會出現可糾正的記憶體故障,而有1/100的谷歌伺服器會出現不可糾正的記憶體故障,後者是造成系統當機的典型情況之一。

如果有人說,用軟體的方式,可以解決硬體的記憶體問題,還能減少30%的伺服器當機故障,你覺得可靠嗎?

目前的資料中心已經走向軟體定義的時代,從最初的軟體定義網絡SDN到軟體定義資料中心SDDC。為了防止伺服器當機的意外發生,越來越多的企業開始考慮軟體定義的解決方案,并通過軟體定義的可靠性屏蔽伺服器、記憶體等硬體故障帶來的影響。

那麼軟體是如何實作對記憶體以及伺服器可用性的提升呢?

基于MCA的記憶體ECC技術

記憶體故障非常多,就看系統能不能識别出來,有些故障是記憶體單個或多個bit位元組故障,有些是記憶體顆粒故障,有些是記憶體顆粒上的單行或單列的存儲單元出現故障,還有firmware故障、記憶體控制器故障,還有一些是記憶體金手指焊接點老化、主機闆上的記憶體插槽松動或有灰塵等等。

器件品質類的故障隻能通過工藝的改進來解決,而信服雲要解決的是軟體層面可以控制的bit級故障。往往大故障來自于所謂bit級小故障的持續積累,這時要做的就是“防微杜漸”,在小故障發生的時候就抓住它、,隔離它,避免影響擴大。

Intel有一種機制叫做MCA(Machine Check Architecture),可以監測這種類型錯誤。這個機制的運作方式是:首先需定義出這些錯誤模型,把可以自動糾正的錯誤叫做CE(Correctable Error),這些往往是任意單比特錯誤、部分單顆粒多比特的錯誤。但是一些錯誤無法自動糾正恢複,會導緻系統當機,這些錯誤被定義為UCE(Uncorrectable Error)。根據統計,CE/UCE類的問題類型占記憶體所有類型問題的59%。是以,如果能夠設計一種故障檢查和糾正的機制,其價值會非常大!

這個全套的錯誤檢查和糾正的機制就是ECC(Error Checking and Correcting)。ECC在遇到故障時首先會進行問題識别,通過設計記憶體主動掃描機制,可以設定一天24小時不休(也可以調整)掃描和發現故障;識别後判斷故障位置(這裡其實用到了一些特殊的bit計算和校驗算法),認定故障位置後,就嘗試隔離該有問題的記憶體空間,避免後續業務再次使用該記憶體空間。

信服雲的記憶體ECC增強技術

業界主流的IT服務商都會利用Intel的MCA機制進行記憶體錯誤處理,但是其軟體實作的精細化程度不一,比如有些服務商隻是把CE錯誤屏蔽掉,或者隻是簡單的告警,沒有做進一步處理;還有一些服務商即使有告警但是無法準确定位到發生問題的插槽。而信服雲則提出了一個風險區機制,一旦發生記憶體錯誤,就将問題單元置于一個“緩沖區”進行觀察,當CE錯誤達到一定門檻值則立刻自動隔離有風險的記憶體區域,避免錯誤繼續擴大引起嚴重的當機。

近年來,信服雲在記憶體隔離恢複機制上不斷優化,在2022年1月推出的超融合HCI6.7.0中還對ECC機制進行了增強。

該增強機制的運作方式是:首先通過CPU的BIOS設定CE Record選項,使得硬體識别出記憶體錯誤,一旦發現CE/UCE錯誤,硬體就會把這個錯誤上報給信服雲的軟體。然後輪到軟體機制上場,OS系統先是判斷這個記憶體是否被軟體(包括應用軟體和作業系統)使用,如果沒有使用就直接隔離,不允許再配置設定給軟體使用。

如果被軟體使用了,就擷取軟體的上下文,判斷區分其是被作業系統核心(in_kernel)或者被使用者應用軟體(in_user)使用。

■ 如果是被應用軟體(in_user)使用,對于CE可糾正錯誤,信服雲的記憶體ECC增強機制就用一塊好的記憶體區域替換掉有錯誤的記憶體區域,這個過程中業務完全不受影響。如果是UCE不可糾正的錯誤,該機制就重新啟動該程序,把錯誤的記憶體區域釋放出來并隔離出去不再使用。程序重新開機後就可以使用完全正常的記憶體了。

■ 如果是被作業系統核心(in_kernel)使用,信服雲的記憶體ECC增強機制就把有錯誤的記憶體區域的資訊記錄下來,在系統再次啟動的時候,該機制會隔離這些有錯誤的記憶體,以保證其不會被再次使用。

信服雲的ECC機制:有效減少30%伺服器當機故障

(信服雲ECC自動糾錯機制原理)

推出上述機制後,信服雲在1000台主機環境中進行了驗證。結果證明,通過軟體控制的ECC機制,信服雲能夠提前發現記憶體異常,并且100%自動隔離成功,可以提前處置以規避更大的故障影響,總體上相對原有方式能夠減少30%的伺服器當機故障。

回到開頭的問題,用軟體可以解決硬體層面帶來的問題嗎?毫無疑問,當然可以!信服雲的ECC機制就通過創新性的軟體技術更加準确、智能地控制了伺服器的記憶體故障問題,有效地提高了IT系統的可靠性。

以上就是本期《信服雲黑闆報》關于軟體定義可靠性和ECC機制的分享。關注“深信服科技”微信公衆号,可以持續擷取更多技術幹貨内容!

雷峰網

繼續閱讀