軟件定義的“可靠性”到底可不可靠?信服云的ECC機(jī)制了解一下

  服務(wù)器宕機(jī)可能是很多運(yùn)維工程師最可怕的噩夢(mèng)。谷歌的一項(xiàng)研究表明:大多數(shù)死機(jī)故障是由內(nèi)存問(wèn)題而引起的,而且每年有1/3的谷歌服務(wù)器都會(huì)出現(xiàn)可糾正的內(nèi)存故障,而有1/100的谷歌服務(wù)器會(huì)出現(xiàn)不可糾正的內(nèi)存故障,后者是造成系統(tǒng)宕機(jī)的典型情況之一。

  如果有人說(shuō),用軟件的方式,可以解決硬件的內(nèi)存問(wèn)題,還能減少30%的服務(wù)器宕機(jī)故障,你覺(jué)得可靠嗎?

  當(dāng)前的數(shù)據(jù)中心已經(jīng)走向軟件定義的時(shí)代,從最初的軟件定義網(wǎng)絡(luò)SDN到軟件定義數(shù)據(jù)中心SDDC。為了防止服務(wù)器宕機(jī)的意外發(fā)生,越來(lái)越多的企業(yè)開(kāi)始考慮軟件定義的解決方案,并通過(guò)軟件定義的可靠性屏蔽服務(wù)器、內(nèi)存等硬件故障帶來(lái)的影響。

  那么軟件是如何實(shí)現(xiàn)對(duì)內(nèi)存以及服務(wù)器可用性的提升呢?

基于MCA的內(nèi)存ECC技術(shù)

  內(nèi)存故障非常多,就看系統(tǒng)能不能識(shí)別出來(lái),有些故障是內(nèi)存單個(gè)或多個(gè)bit字節(jié)故障,有些是內(nèi)存顆粒故障,有些是內(nèi)存顆粒上的單行或單列的存儲(chǔ)單元出現(xiàn)故障,還有firmware故障、內(nèi)存控制器故障,還有一些是內(nèi)存金手指焊接點(diǎn)老化、主板上的內(nèi)存插槽松動(dòng)或有灰塵等等。

  器件質(zhì)量類(lèi)的故障只能通過(guò)工藝的改進(jìn)來(lái)解決,而信服云要解決的是軟件層面可以控制的bit級(jí)故障。往往大故障來(lái)自于所謂bit級(jí)小故障的持續(xù)積累,這時(shí)要做的就是“防微杜漸”,在小故障發(fā)生的時(shí)候就抓住它、,隔離它,避免影響擴(kuò)大。

  Intel有一種機(jī)制叫做MCA(Machine Check Architecture),可以監(jiān)測(cè)這種類(lèi)型錯(cuò)誤。這個(gè)機(jī)制的運(yùn)行方式是:首先需定義出這些錯(cuò)誤模型,把可以自動(dòng)糾正的錯(cuò)誤叫做CE(Correctable Error),這些往往是任意單比特錯(cuò)誤、部分單顆粒多比特的錯(cuò)誤。但是一些錯(cuò)誤無(wú)法自動(dòng)糾正恢復(fù),會(huì)導(dǎo)致系統(tǒng)宕機(jī),這些錯(cuò)誤被定義為UCE(Uncorrectable Error)。根據(jù)統(tǒng)計(jì),CE/UCE類(lèi)的問(wèn)題類(lèi)型占內(nèi)存所有類(lèi)型問(wèn)題的59%。所以,如果能夠設(shè)計(jì)一種故障檢查和糾正的機(jī)制,其價(jià)值會(huì)非常大!

  這個(gè)全套的錯(cuò)誤檢查和糾正的機(jī)制就是ECC(Error Checking and Correcting)。ECC在遇到故障時(shí)首先會(huì)進(jìn)行問(wèn)題識(shí)別,通過(guò)設(shè)計(jì)內(nèi)存主動(dòng)掃描機(jī)制,可以設(shè)置一天24小時(shí)不休(也可以調(diào)整)掃描和發(fā)現(xiàn)故障;識(shí)別后判斷故障位置(這里其實(shí)用到了一些特殊的bit計(jì)算和校驗(yàn)算法),認(rèn)定故障位置后,就嘗試隔離該有問(wèn)題的內(nèi)存空間,避免后續(xù)業(yè)務(wù)再次使用該內(nèi)存空間。

信服云的內(nèi)存ECC增強(qiáng)技術(shù)

  業(yè)界主流的IT服務(wù)商都會(huì)利用Intel的MCA機(jī)制進(jìn)行內(nèi)存錯(cuò)誤處理,但是其軟件實(shí)現(xiàn)的精細(xì)化程度不一,比如有些服務(wù)商只是把CE錯(cuò)誤屏蔽掉,或者只是簡(jiǎn)單的告警,沒(méi)有做進(jìn)一步處理;還有一些服務(wù)商即使有告警但是無(wú)法準(zhǔn)確定位到發(fā)生問(wèn)題的插槽。而信服云則提出了一個(gè)風(fēng)險(xiǎn)區(qū)機(jī)制,一旦發(fā)生內(nèi)存錯(cuò)誤,就將問(wèn)題單元置于一個(gè)“緩沖區(qū)”進(jìn)行觀(guān)察,當(dāng)CE錯(cuò)誤達(dá)到一定閾值則立刻自動(dòng)隔離有風(fēng)險(xiǎn)的內(nèi)存區(qū)域,避免錯(cuò)誤繼續(xù)擴(kuò)大引起嚴(yán)重的宕機(jī)。

  近年來(lái),信服云在內(nèi)存隔離恢復(fù)機(jī)制上不斷優(yōu)化,在2022年1月推出的超融合HCI6.7.0中還對(duì)ECC機(jī)制進(jìn)行了增強(qiáng)。

  該增強(qiáng)機(jī)制的運(yùn)行方式是:首先通過(guò)CPU的BIOS設(shè)置CE Record選項(xiàng),使得硬件識(shí)別出內(nèi)存錯(cuò)誤,一旦發(fā)現(xiàn)CE/UCE錯(cuò)誤,硬件就會(huì)把這個(gè)錯(cuò)誤上報(bào)給信服云的軟件。然后輪到軟件機(jī)制上場(chǎng),OS系統(tǒng)先是判斷這個(gè)內(nèi)存是否被軟件(包括應(yīng)用軟件和操作系統(tǒng))使用,如果沒(méi)有使用就直接隔離,不允許再分配給軟件使用。

  如果被軟件使用了,就獲取軟件的上下文,判斷區(qū)分其是被操作系統(tǒng)內(nèi)核(in_kernel)或者被用戶(hù)應(yīng)用軟件(in_user)使用。

  ■ 如果是被應(yīng)用軟件(in_user)使用,對(duì)于CE可糾正錯(cuò)誤,信服云的內(nèi)存ECC增強(qiáng)機(jī)制就用一塊好的內(nèi)存區(qū)域替換掉有錯(cuò)誤的內(nèi)存區(qū)域,這個(gè)過(guò)程中業(yè)務(wù)完全不受影響。如果是UCE不可糾正的錯(cuò)誤,該機(jī)制就重新啟動(dòng)該進(jìn)程,把錯(cuò)誤的內(nèi)存區(qū)域釋放出來(lái)并隔離出去不再使用。進(jìn)程重啟后就可以使用完全正常的內(nèi)存了。

  ■ 如果是被操作系統(tǒng)內(nèi)核(in_kernel)使用,信服云的內(nèi)存ECC增強(qiáng)機(jī)制就把有錯(cuò)誤的內(nèi)存區(qū)域的信息記錄下來(lái),在系統(tǒng)再次啟動(dòng)的時(shí)候,該機(jī)制會(huì)隔離這些有錯(cuò)誤的內(nèi)存,以保證其不會(huì)被再次使用。

(信服云ECC自動(dòng)糾錯(cuò)機(jī)制原理)

  推出上述機(jī)制后,信服云在1000臺(tái)主機(jī)環(huán)境中進(jìn)行了驗(yàn)證。結(jié)果證明,通過(guò)軟件控制的ECC機(jī)制,信服云能夠提前發(fā)現(xiàn)內(nèi)存異常,并且100%自動(dòng)隔離成功,可以提前處置以規(guī)避更大的故障影響,總體上相對(duì)原有方式能夠減少30%的服務(wù)器宕機(jī)故障。

  回到開(kāi)頭的問(wèn)題,用軟件可以解決硬件層面帶來(lái)的問(wèn)題嗎?毫無(wú)疑問(wèn),當(dāng)然可以!信服云的ECC機(jī)制就通過(guò)創(chuàng)新性的軟件技術(shù)更加準(zhǔn)確、智能地控制了服務(wù)器的內(nèi)存故障問(wèn)題,有效地提高了IT系統(tǒng)的可靠性。

  以上就是本期《信服云黑板報(bào)》關(guān)于軟件定義可靠性和ECC機(jī)制的分享。關(guān)注“深信服科技”微信公眾號(hào),可以持續(xù)獲取更多技術(shù)干貨內(nèi)容!

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )