華為云Stack作為華為云在政企市場的解決方案,是政企客戶智能升級的首選平臺。隨著政企客戶數(shù)字化的不斷深入,業(yè)務(wù)需求也由單一的X86架構(gòu)變?yōu)槎嘣?,上云要求也隨之變的復(fù)雜,這給華為云Stack也帶來了很多不一樣的挑戰(zhàn)和新問題。
以泛政府客戶為例,客戶會將 協(xié)同辦公 OA系統(tǒng)、電子公文等非涉密系統(tǒng)部署在電子政務(wù)外網(wǎng)上,采用傳統(tǒng)虛擬機、物理機部署方式,基礎(chǔ)IaaS即可滿足業(yè)務(wù)部署需求。因此,IaaS云平臺向下需屏蔽不同CPU架構(gòu)的硬件差異,向上需提供服務(wù)化的算力模型封裝,把算力相關(guān)的存儲、網(wǎng)絡(luò)、操作系統(tǒng)、監(jiān)控運維等以服務(wù)化的方式提供。所以IaaS云平臺支持不同的CPU架構(gòu),解決“一云多芯”問題,是最基礎(chǔ)的能力要求。基于此,容器、 大數(shù)據(jù) 、中間件、 數(shù)據(jù)庫 等更多云服務(wù),均可以在IaaS云平臺上為客戶提供,最終華為云Stack為客戶構(gòu)建一朵多元算力的全棧云方案。
一、不同CPU架構(gòu)的特點分析
目前主流的新創(chuàng)CPU架構(gòu)有以下幾個:

考慮到各CPU架構(gòu)的成熟度和性能,我們以鯤鵬、海光、飛騰作為華為云Stack支持CPU的首選。這些CPU架構(gòu)又有各自的技術(shù)特點:
1、鯤鵬
CPU核心通過環(huán)形架構(gòu)互聯(lián),通過擴展計算單元數(shù)量來支持眾核架構(gòu),Die內(nèi)均等內(nèi)存和IO訪問能力。
.png)
2、海光
CPU核心通過Die之間互聯(lián)架構(gòu)來連接,一個CPU有4個Die或者2個Die,一個Die固定有2個計算單元,一個計算單元內(nèi)有4個海光核。
.png)
3、飛騰
Die之間通過2D Mesh方式互聯(lián),一個CPU支持8個Die,一個Die與兩個或者三個Die以2D Mesh方式互聯(lián)。
.png)
二、華為云Stack技術(shù)方案特點
根據(jù)上述不同CPU架構(gòu)特點,華為云Stack采用:CPU架構(gòu)混合部署、親和性部署方案,來應(yīng)對“一云多芯”現(xiàn)象;同時,華為云Stack還有全棧創(chuàng)新的軟硬件,為政企客戶提供堅實的基礎(chǔ)。
1、不同CPU架構(gòu)混合部署
面對不同CPU架構(gòu)的不同特點,華為云Stack進(jìn)行混合部署。可以理解為把數(shù)個雜亂無序的商品,整齊陳列到便利店中,所有品類都能放到便利店中、同類商品統(tǒng)一陳列、特殊商品也有自己的位置。有算力需求時,就如同用戶走入便利店,能快速、高效的找到想要的東西。
具體混合部署方式如下:
(1) 華為云Stack支持多個CPU架構(gòu)在一朵云上共存??蛻艨梢园凑兆约旱臉I(yè)務(wù)訴求,管控硬件資源和業(yè)務(wù)環(huán)境,實現(xiàn)高效管理。
(2) 把相同CPU架構(gòu),放入對應(yīng)的資源池中。比如把Intel CPU和海光CPU、鯤鵬CPU和飛騰CPU,分別放入x86和ARM資源池中。對于那些沒有使用特殊指令的應(yīng)用,可在不同廠商CPU之間流動,可高效管控資源池,提高資源池利用效率,減少資源碎片。
(3) 業(yè)務(wù) 鏡像 僅按照操作系統(tǒng)區(qū)分,不區(qū)分CPU架構(gòu),如果操作系統(tǒng)可兼容不同的CPU架構(gòu),可在同資源池內(nèi)復(fù)用。
(4) 對于有特殊指令訴求的業(yè)務(wù)負(fù)載,可通過規(guī)則中參數(shù)來指定業(yè)務(wù)放置在哪里。比如指定x86-虛擬機-規(guī)格,就會在Intel CPU服務(wù)器或者海光CPU服務(wù)器上選定一個地方放置。
.png)
2、考慮不同CPU架構(gòu)之間的差異,支持親和性部署
想象下你有幾個編制不同、演奏方式不同的樂隊,為了每次收到新的曲子,都能最快的編排出來,你需要提前收集這幾個樂隊的架構(gòu)、聲部、主要領(lǐng)隊人等等,把這些信息登記在冊。之后再收到新的曲子,只需查閱之前的記錄,就可以實現(xiàn)人員的精準(zhǔn)分工了。
親和性部署,就是把不同的CPU架構(gòu)差異,記錄在數(shù)據(jù)庫表中,收到新的算力需求時,實現(xiàn)調(diào)度匹配。
華為云Stack部署業(yè)務(wù)的步驟可以參考以下邏輯:
.png)
(1) 獲取CPU topo,包括Socket、Die架構(gòu)、計算單元、核心、超線程的關(guān)系。支持鯤鵬,intel,海光,飛騰CPU
(2) 獲取的CPU topo在系統(tǒng)中保存
(3) 按照調(diào)度算法放置不同的業(yè)務(wù)負(fù)載
(4) 用戶可按照CPU topo的形態(tài)呈現(xiàn)現(xiàn)有CPU架構(gòu),剩余CPU資源,已經(jīng)使用的CPU資源
華為云Stack部署業(yè)務(wù)的算法基本原則如下,可以供業(yè)界同學(xué)參考學(xué)習(xí)
(1) 按照numa距離總量最小的組合,選擇Die
(2) 在die內(nèi)先填滿一個計算單元,再填滿另一個計算單元
(3) 使用局部最優(yōu)悲觀算法來考慮碎片問題
%2) 如果要使用的資源可被一個計算單元整除,優(yōu)先以計算單元為單位填滿碎片,如若還有剩余,用碎片填滿
%2) 如果要使用的資源不可被一個計算單元整除,優(yōu)先用碎片填滿
3、全棧可信的云:覆蓋處理器、服務(wù)器、存儲、數(shù)據(jù)庫、操作系統(tǒng)、云平臺全棧創(chuàng)新
華為云Stack軟硬件均自主創(chuàng)新,包括鯤鵬CPU、還包括昇騰AI處理器、存儲控制器、網(wǎng)絡(luò)控制器、服務(wù)器管理。也包括上面的服務(wù)器、集中式和分布式存儲、交換機、路由器、防火墻等設(shè)備。華為掌握鯤鵬ARM、openEuler(開源)、openGauss(開源)等三大根技術(shù),可為有全棧云訴求的政企客戶提供安全可靠的云底座平臺。
.png)
隨著政企客戶上云訴求的增多,華為云Stack也面臨著不同的挑戰(zhàn)。我們充分考慮到客戶目前擁有不同CPU架構(gòu)的現(xiàn)實,通過分析主流CPU架構(gòu)的技術(shù)特點,一方面全面支持一云多芯的設(shè)備能力;另一方面,通過硬件到軟件的全棧云方案,為政務(wù)客戶提供可信場景下,智能升級首選方案。為政企客戶的全面云化打造了一個堅實有力、穩(wěn)定可靠的上云基座。