華為KunLun開(kāi)放架構(gòu)小型機(jī):讓In-Memory應(yīng)用持續(xù)的秘密
“引言”
數(shù)據(jù)庫(kù)越來(lái)越多地被使用到現(xiàn)代企業(yè)的生產(chǎn)、運(yùn)營(yíng)和管理中,是企業(yè)重要的IT基礎(chǔ)設(shè)施。其中承載企業(yè)關(guān)鍵業(yè)務(wù)的核心數(shù)據(jù)庫(kù)通常要求實(shí)現(xiàn)7X24小時(shí)不間斷運(yùn)行,以***降低宕機(jī)帶來(lái)的損失。
KunLun開(kāi)放架構(gòu)小型機(jī)滿足關(guān)鍵業(yè)務(wù)對(duì)性能和可靠性的高要求。在性能方面,KunLun不僅在多項(xiàng)SPEC基準(zhǔn)測(cè)試中***,并且在面向聯(lián)機(jī)分析處理過(guò)程(OLAP)和聯(lián)機(jī)事務(wù)處理過(guò)程(OLTP)的SAP B4H和SD2基準(zhǔn)測(cè)試中更是拿下雙料冠軍。在可靠性方面,KunLun開(kāi)放架構(gòu)小型機(jī)采用創(chuàng)新的RAS 2.0技術(shù),突破性實(shí)現(xiàn)CPU和內(nèi)存等核心部件在線不停機(jī)更換,在高可靠性方面具備超越傳統(tǒng)UNIX小型機(jī)的能力。(RAS是可靠性Reliability、可用性Availability 和可服務(wù)性Serviceability的縮寫(xiě),代表在這3個(gè)領(lǐng)域的技術(shù)集合。)
傳統(tǒng)數(shù)據(jù)庫(kù)中大量參與運(yùn)行的數(shù)據(jù)是保存在磁盤(pán)等存儲(chǔ)設(shè)備上的。在現(xiàn)代計(jì)算機(jī)的基本架構(gòu)中,存儲(chǔ)設(shè)備相對(duì)內(nèi)存更遠(yuǎn)離計(jì)算機(jī)的核心運(yùn)算單元中央處理器CPU:CPU訪問(wèn)存儲(chǔ)設(shè)備的速率和帶寬都遠(yuǎn)低于CPU訪問(wèn)內(nèi)存時(shí)的速率和帶寬。隨著服務(wù)器處理器支持管理的內(nèi)存容量越來(lái)越大,不少數(shù)據(jù)庫(kù)廠商已經(jīng)將數(shù)據(jù)庫(kù)的大量運(yùn)行數(shù)據(jù)持續(xù)保存在內(nèi)存中進(jìn)行運(yùn)算和管理,這一類采用了“In-Memory Computing”的數(shù)據(jù)庫(kù)大大提升了數(shù)據(jù)庫(kù)的整體性能。
隨著服務(wù)器可安裝的內(nèi)存條數(shù)目和內(nèi)存容量的不斷增加,企業(yè)對(duì)服務(wù)器內(nèi)存子系統(tǒng)的可靠性的關(guān)注度也在不斷提升。華為KunLun開(kāi)放架構(gòu)小型機(jī)不僅具備DDDC、內(nèi)存?zhèn)浞?、?nèi)存鏡像等高可靠性技術(shù),更是具備了X86業(yè)界唯一的內(nèi)存在線熱替換技術(shù),該技術(shù)結(jié)合KunLun 的故障主動(dòng)分析預(yù)警引擎(PFAE)技術(shù),可使用戶在內(nèi)存出現(xiàn)早期輕微異常時(shí)就提前采取措施。內(nèi)存條也和大部分電子設(shè)備一樣,其故障率隨時(shí)間的曲線呈浴盆形,即業(yè)界常說(shuō)的浴盆曲線(bathtub curve),失效率較高的階段為早期失效期和損耗失效期。早期的高失效階段,KunLun通過(guò)生產(chǎn)測(cè)試進(jìn)行過(guò)濾,保證到達(dá)用戶手上的是處于低失效率階段的內(nèi)存條。對(duì)于后期的損耗失效,KunLun的內(nèi)存熱替換技術(shù)使得內(nèi)存條在即將進(jìn)入損耗失效期時(shí)就可以在保證業(yè)務(wù)持續(xù)運(yùn)行的前提下進(jìn)行熱替換,使業(yè)務(wù)系統(tǒng)使用的內(nèi)存一直處于低失效階段,避免了內(nèi)存連續(xù)使用進(jìn)入高失效率階段后出現(xiàn)嚴(yán)重故障甚至導(dǎo)致系統(tǒng)宕機(jī)。
圖:失效率浴盆曲線
“開(kāi)放帶來(lái)加速創(chuàng)新”
華為KunLun開(kāi)放架構(gòu)小型機(jī)與世界知名的企業(yè)級(jí)Linux操作系統(tǒng)廠商SUSE聯(lián)合發(fā)布的In-Memory應(yīng)用持續(xù)運(yùn)行解決方案是雙方建立在開(kāi)放架構(gòu)、開(kāi)放生態(tài)基礎(chǔ)上的創(chuàng)新成果。
圖:內(nèi)存熱替換功能分層架構(gòu)
自KunLun發(fā)布以來(lái),華為和合作伙伴積極構(gòu)建開(kāi)放生態(tài),加速創(chuàng)新。內(nèi)存熱替換技術(shù)是系統(tǒng)性的復(fù)雜技術(shù),需要處理器、BIOS固件、服務(wù)器平臺(tái),還有操作系統(tǒng)內(nèi)核的支持。SUSE和華為在長(zhǎng)期合作的基礎(chǔ)上,共同向該項(xiàng)技術(shù)發(fā)起挑戰(zhàn)。SUSE召集了資深的內(nèi)存及ACPI專家,和華為進(jìn)行深度聯(lián)合開(kāi)發(fā)。在SUSE正式發(fā)布的操作系統(tǒng)補(bǔ)丁中,對(duì)內(nèi)存管理模塊、ACPI的驅(qū)動(dòng)模塊做了大量底層代碼的優(yōu)化與加固,優(yōu)化了內(nèi)存熱替換技術(shù)的流程。
不僅如此,華為與SUSE的In-Memory業(yè)務(wù)持續(xù)運(yùn)行解決方案的聯(lián)合發(fā)布,也是開(kāi)放架構(gòu)服務(wù)器的業(yè)界首創(chuàng)。以X86架構(gòu)為代表的開(kāi)放架構(gòu)服務(wù)器正在***技術(shù)創(chuàng)新的潮流,KunLun開(kāi)放架構(gòu)小型機(jī)不僅幫助用戶加速創(chuàng)新的步伐,更在加速創(chuàng)新的同時(shí)提供業(yè)界領(lǐng)先的可靠性保障。
“專注業(yè)務(wù)體驗(yàn)提升”
KunLun的In-Memory業(yè)務(wù)持續(xù)運(yùn)行解決方案不僅關(guān)注技術(shù)本身,更專注于用戶的業(yè)務(wù)體驗(yàn)。
華為與SUSE在內(nèi)存在線熱替換技術(shù)上進(jìn)行了長(zhǎng)期的合作開(kāi)發(fā),一步一個(gè)腳印,從操作系統(tǒng)本身支持內(nèi)存熱替換到不同用戶業(yè)務(wù)場(chǎng)景下的內(nèi)存遷移效率優(yōu)化,都進(jìn)行了深入的研究和不斷的創(chuàng)新,尤其對(duì)于“In-Memory”這類業(yè)務(wù)進(jìn)行了系統(tǒng)性地驗(yàn)證和優(yōu)化。
對(duì)于有潛在故障內(nèi)存的在線熱替換,極其重要的一個(gè)環(huán)節(jié)是將這些內(nèi)存上正在運(yùn)行的數(shù)據(jù)遷移到其他正常的空閑內(nèi)存上,***在內(nèi)存遷移完成以后刪除潛在故障內(nèi)存相關(guān)的資源信息,以保證沒(méi)有新的數(shù)據(jù)存放于此。操作系統(tǒng)和數(shù)據(jù)庫(kù)對(duì)內(nèi)存的使用非常復(fù)雜,特別是不同的數(shù)據(jù)庫(kù)對(duì)內(nèi)存的訪問(wèn)方式可能存在差異。華為與SUSE面向主流的數(shù)據(jù)庫(kù)包括Oracle、SAP HANA等應(yīng)用場(chǎng)景都進(jìn)行了內(nèi)存遷移優(yōu)化,提高了單個(gè)內(nèi)存頁(yè)的遷移成功率,減少重試從而縮短整體的內(nèi)存遷移時(shí)間。
“操作簡(jiǎn)單易于維護(hù)”
雖然內(nèi)存的在線熱替換是一個(gè)系統(tǒng)級(jí)的非常復(fù)雜的過(guò)程,但是對(duì)于用戶來(lái)說(shuō),操作卻是非常簡(jiǎn)單的。
當(dāng)KunLun的PFAE技術(shù)檢測(cè)到某個(gè)內(nèi)存板發(fā)生了輕微異常,并且有演變?yōu)閲?yán)重故障的趨勢(shì)時(shí),KunLun的管理頁(yè)面上會(huì)出現(xiàn)預(yù)告警提示,這時(shí)用戶只需在管理界面上找到預(yù)告警中標(biāo)記的具有潛在故障的內(nèi)存板對(duì)應(yīng)的圖標(biāo),點(diǎn)擊圖標(biāo)上的熱插拔按鈕觸發(fā)內(nèi)存熱移除命令,便可自動(dòng)完成接下來(lái)的操作:
1. 系統(tǒng)固件會(huì)通知操作系統(tǒng)遷移潛在故障內(nèi)存上的數(shù)據(jù);2. 操作系統(tǒng)完成內(nèi)存數(shù)據(jù)遷移后刪除對(duì)應(yīng)的資源管理信息;3. 系統(tǒng)固件刪除潛在故障內(nèi)存板對(duì)應(yīng)的系統(tǒng)地址編碼信息,并控制硬件系統(tǒng)給內(nèi)存板斷電。
圖:熱插拔操作界面,點(diǎn)擊內(nèi)存條圖標(biāo)上的圓點(diǎn)(狀態(tài)燈)觸發(fā)熱插拔操作,內(nèi)存熱移除后狀態(tài)燈由綠色(表示健康)變?yōu)樗{(lán)色(表示在位但未供電)
用戶此時(shí)只需打開(kāi)機(jī)柜抽出故障內(nèi)存板,更換故障內(nèi)存條,然后,將內(nèi)存板插回到機(jī)柜中,再次點(diǎn)擊熱插拔按鈕觸發(fā)內(nèi)存熱添加命令,便可自動(dòng)完成包括內(nèi)存的加電、電氣特性配置、系統(tǒng)地址分配和創(chuàng)建管理信息等操作。整個(gè)熱移除和熱添加的過(guò)程中,用戶的業(yè)務(wù)都不會(huì)出現(xiàn)中斷。
KunLun開(kāi)放架構(gòu)小型機(jī)不僅支持內(nèi)存在線熱替換,也可支持CPU的在線熱替換。視頻中記錄了在華為實(shí)驗(yàn)室中進(jìn)行的CPU和內(nèi)存的在線熱替換操作演示。