容器云平臺信創(chuàng)改造之一云多芯 | 趨勢解讀

CPU是計算機的運算中心和控制中心。信創(chuàng)CPU選型主要看CPU指令集。所謂指令集是計算機中計算和控制系統(tǒng)所有指令的集合,計算機高級語言設計實現(xiàn)的程序最終需要轉(zhuǎn)化為一條條“指令”才能在CPU上運行。

本文來自微信公眾號“twt企業(yè)IT社區(qū)”,作者/汪照輝,,中國銀河證券架構(gòu)師,專注于容器云、微服務、DevOps、數(shù)據(jù)治理、數(shù)字化轉(zhuǎn)型等領(lǐng)域,對相關(guān)技術(shù)有獨特的理解和見解。擅長于軟件規(guī)劃和設計,提出的“平臺融合”的觀點越來越得到認同和事實證明。發(fā)表了眾多技術(shù)文章探討容器平臺建設、微服務技術(shù)、DevOps、數(shù)字化轉(zhuǎn)型、數(shù)據(jù)治理、中臺建設等內(nèi)容,受到了廣泛關(guān)注和肯定。個人微信公眾號:技術(shù)思維創(chuàng)新

容器云平臺是基于云原生容器等技術(shù)所構(gòu)建的支撐“以應用為中心”的應用發(fā)布、應用運行和應用運維的輕量化PaaS平臺。由于容器云采用開源的云原生技術(shù),云原生本身就具備信創(chuàng)的基因,也使我們具備自主可控能力,所以其信創(chuàng)改造重點是對各種信創(chuàng)CPU芯片的支持和信創(chuàng)操作系統(tǒng)、信創(chuàng)數(shù)據(jù)庫、以及信創(chuàng)中間件等的支持。信創(chuàng)數(shù)據(jù)庫和中間件不是容器云信創(chuàng)改造的核心,只要性能和穩(wěn)定性滿足需求,適配信創(chuàng)操作系統(tǒng),就問題不大。信創(chuàng)操作系統(tǒng)和信創(chuàng)CPU則是容器云平臺信創(chuàng)改造需要關(guān)注的重點。雖然理論上云計算無需考慮資源的位置、類型等,但目前國內(nèi)尚無法實現(xiàn)高性能、高可用、高精密的一體化集成,各種廠商還是一片混戰(zhàn)。這也導致大量的重復建設和低效集成工作。云計算很重要的一點就是要實現(xiàn)異構(gòu)基礎(chǔ)設施資源的整合和統(tǒng)一的、高效的資源調(diào)度服務,容器云作為輕量化PaaS[1]也可以直接使用標準化的基礎(chǔ)設施資源服務,從而提升資源管理和調(diào)度效率。

目前國內(nèi)信創(chuàng)CPU有龍芯、鯤鵬、飛騰、海光、兆芯、申威等多種采用不同指令集架構(gòu)的CPU,這也導致在采購信創(chuàng)服務器的時候不得不考慮不同架構(gòu)CPU的特點、生態(tài)、和操作系統(tǒng)的適配、未來發(fā)展趨勢及存活下來的可能性。

信創(chuàng)CPU指令集介紹

CPU是計算機的運算中心和控制中心。信創(chuàng)CPU選型主要看CPU指令集。所謂指令集是計算機中計算和控制系統(tǒng)所有指令的集合,計算機高級語言設計實現(xiàn)的程序最終需要轉(zhuǎn)化為一條條“指令”才能在CPU上運行。指令集決定了處理器的架構(gòu)(稱為微架構(gòu)),處理器架構(gòu)就是用硬件電路實現(xiàn)指令集,所以采用不同的指令集意味著不同的微架構(gòu)。

CPU指令集分類

CPU指令集可分為CISC(復雜指令集)和RISC(精簡指令集)兩類,CISC型CPU目前主要是x86架構(gòu),RISC型CPU主要包括ARM、RISC-V、MIPS、POWER、Alpha架構(gòu)等。

(1)X86架構(gòu)指令集龐大,功能復雜,尋址方式多,且長度可變,有多種格式;各種指令均可訪問內(nèi)存數(shù)據(jù);一部分指令需多個機器周期完成;復雜指令采用微程序?qū)崿F(xiàn);系統(tǒng)兼容能力較強;其優(yōu)勢是x86架構(gòu)兼容性強,配套軟件及開發(fā)工具相對成熟,且x86架構(gòu)功能強大,高效使用主存儲器,在處理復雜指令和商業(yè)計算的運用方面有較大優(yōu)勢。

(2)ARM指令集長度固定,易于譯碼執(zhí)行;大部分指令可以條件式地執(zhí)行,降低在分支時產(chǎn)生的開銷,彌補分支預測器的不足;算數(shù)指令只會在要求時更改條件編碼。ARM結(jié)構(gòu)具有低功耗,小體積的特點,聚焦移動端市場,在消費類電子產(chǎn)品中具有優(yōu)勢。

(3)RISC-V支持32位或64位指令集,使用加載-存儲架構(gòu),RISC-V指令集完全開源,設計簡單,易于移植Unix系統(tǒng),模塊化設計。盡管RISC-V允許設計人員免費試驗和開發(fā)RISC-V系統(tǒng),但幾乎沒有對硬件設計的支持。RISC-V架構(gòu)的起步相對較晚,但發(fā)展很快,在智能穿戴產(chǎn)品上的應用廣泛。

(4)MIPS采用32位寄存器,大多數(shù)指令在一個周期內(nèi)執(zhí)行,都是32位定長編碼的指令集和流水線模式執(zhí)行指令;具有高性能高速緩存能力,且內(nèi)存管理方案相對靈活。優(yōu)勢是結(jié)構(gòu)設計簡單、功耗較低,在嵌入式應用場景具有優(yōu)勢。

(5)Alpha采用32位定長指令集,使用低字節(jié)寄存器占用低內(nèi)存地址線;分支指令無延遲槽,使用無條件分支碼寄存器;優(yōu)勢是結(jié)構(gòu)簡單,易于實現(xiàn)超標量和高主頻計算。

(6)Power指令集是一種由IBM公司設計開發(fā)的一種基于RISC架構(gòu)的指令集體系構(gòu)架,2019年IBM宣布完全開源Power Command Set指令集,這是繼RISC-V、MIPS之后又一個開源CPU指令集,與RISC-V、MIPS等開源指令集相比,Power指令集最大的優(yōu)勢就是性能強大。

360截圖16251112669372.png

CPU指令集自研和授權(quán)情況

國內(nèi)信創(chuàng)CPU指令集通過授權(quán)和自研兩種方式來實現(xiàn)。申威完全自研Alpha指令集,自主化程度最高;龍芯采用MIPS指令集授權(quán)+自研方式,國產(chǎn)化程度很高;鯤鵬CPU和飛騰CPU采用ARM指令集授權(quán)方式,擁有100%源代碼,按處理器的架構(gòu)和指令自行編寫代碼,設計芯片,自主先進程度相對較高;海光CPU采用指令集授權(quán)方式,高效兼容安全,整機優(yōu)勢明顯,不過自主程度比較低;兆芯采用x86(VIA)IP授權(quán)方式,性能和生態(tài)具有較強優(yōu)勢,自主程度最低。

CPU生態(tài)

在生態(tài)方面,基于x86和ARM架構(gòu)的CPU與下游軟硬件的兼容性較好,適配產(chǎn)品較為豐富,對用戶使用較為友好;基于MIPS和Alpha架構(gòu)的CPU在高性能計算、嵌入式工控機等特定領(lǐng)域應用較好,市場化仍有待進一步發(fā)展。RISC-V架構(gòu)的起步相對較晚,積累少,生態(tài)還不完整。Power處理器的問題也在于越來越少的廠商支持。

信創(chuàng)CPU與操作系統(tǒng)的適配支持

國產(chǎn)主流操作系統(tǒng)是基于Linux內(nèi)核的二次開發(fā),主要也都是對CPU芯片和應用的適配支持,所以主要看操作系統(tǒng)支持的適配應用和CPU的量,也就是生態(tài)情況。目前國內(nèi)的操作系統(tǒng)主要有麒麟、統(tǒng)信、普華、中科方德、OpenEuler等。麒麟、統(tǒng)信操作系統(tǒng)目前占據(jù)主導地位,支持各種架構(gòu)的CPU,整個生態(tài)也相對比較成熟。普華和中科方德也在不斷發(fā)力,但仍需進一步的努力構(gòu)建完善的生態(tài)體系。雖然可以通過云原生技術(shù)構(gòu)建彈性、敏捷的云原生操作系統(tǒng),但依然無法繞過基礎(chǔ)軟件服務器操作系統(tǒng)對基礎(chǔ)硬件的管理和適配。

容器云信創(chuàng)改造方案

采用開放、開源云原生技術(shù)的容器云信創(chuàng)改造主要是基礎(chǔ)軟硬件的替換,包括CPU、操作系統(tǒng)、存儲、網(wǎng)卡等,其實也就是容器云節(jié)點——服務器整機的替換。不過由于目前信創(chuàng)CPU和操作系統(tǒng)等依然處于混戰(zhàn)狀態(tài),很多公司都是采用了多種CPU架構(gòu),從而可能需要在一個平臺支持不同架構(gòu)的CPU,和不同的操作系統(tǒng),采購兩到多種異構(gòu)的服務器,從而需要實現(xiàn)一云多芯部署方案。

一云多芯容器云集群部署方案

360截圖16251112669372.png

容器云平臺改造有幾種部署方案,一是在不同的CPU架構(gòu)上重新部署一套新的信創(chuàng)容器云平臺;一種是在現(xiàn)有平臺上支持不同架構(gòu)的信創(chuàng)應用;現(xiàn)有平臺支持信創(chuàng)也有兩種方案,一是獨立的信創(chuàng)CPU架構(gòu)集群和非信創(chuàng)集群,二是信創(chuàng)和非信創(chuàng)混合部署方案。不同的方案各有優(yōu)缺點,部署多個平臺、多個集群會造成浪費,混合方式又使平臺管理操作、資源調(diào)度等復雜化。考慮到數(shù)字化發(fā)展系統(tǒng)融合的要求,可以用一個portal界面統(tǒng)一管理信創(chuàng)和非信創(chuàng)應用,盡可能通過平臺的封裝來屏蔽下層異構(gòu)基礎(chǔ)設施資源的差異,提升應用部署和運維管理的效率。不同的CPU架構(gòu)也使租戶應用需要多種不同架構(gòu)的資源,通過一個入口實現(xiàn)多種能力支持,對租戶來說要簡單一些。不過對于一個集群有異構(gòu)資源來說,使資源調(diào)度和維護管理復雜化,特別在節(jié)點量比較大的情況下,需要定義不同的標簽來區(qū)分,對平臺管理能力和可見性、可觀測性等有較高要求。目前的容器云平臺功能有限,難以達到自主調(diào)度要求,否則額外帶來很多的工作量。因此,當前選擇不同架構(gòu)CPU獨立部署一個集群的方式,在應用調(diào)度時直接調(diào)度到相應的集群,資源管理的粒度相對較大,相對更容易實現(xiàn)。

一云多芯資源管理和調(diào)度

對于資源的調(diào)度和管理,理論上最佳的方案是不用關(guān)注資源在哪里,有多少,是什么類型,云的思想是實現(xiàn)資源融合,因此資源容量越大,彈性越大。但現(xiàn)實往往受制于有限的資源,需要考慮資源的調(diào)度和分配。信創(chuàng)增加多種CPU架構(gòu),使資源管理和調(diào)度相對更復雜化。理論上,可以通過云管平臺或內(nèi)部基礎(chǔ)設施資源管理平臺來實現(xiàn)基礎(chǔ)設施資源的彈性,不過往往涉及多個團隊甚至多個部門,比較難以整合,比較難以獲得高效率。部署時如果做不到自主調(diào)度,就需要人工去做一些配置或選擇,人的操作難免會出錯,所以越簡單可能體驗越好。獨立集群部署方式也在于這樣可以簡化很多工作。粒度上比節(jié)點管理要簡單,通過分類來管理一類資源,而不是管理分片資源。Kubernetes自身具備集群內(nèi)資源調(diào)度能力,容器云平臺需要實現(xiàn)自應用到資源的全局調(diào)度能力,需要在平臺層進行能力擴展。資源調(diào)度本身就比較復雜,有很多種調(diào)度算法,這一部分還需要繼續(xù)投入和優(yōu)化。

由于信創(chuàng)CPU的架構(gòu)差異,也導致整個容器云平臺在信創(chuàng)改造時架構(gòu)相對復雜化,管理和調(diào)度復雜化,需要在Portal和平臺層進行優(yōu)化和完善,以支持多種異構(gòu)CPU資源調(diào)度,實現(xiàn)一云多芯。

注:參考天風證券信創(chuàng)產(chǎn)業(yè)鏈全梳理、普華基礎(chǔ)軟件資料等。

[1]很多人把只要用到容器的系統(tǒng)就稱為容器云,在IaaS上提供容器服務,往往是以容器為中心的調(diào)度和管理,而不是應用為中心的管理和運維能力。和這里討論的容器云(容器化PaaS)是不一樣的,不在一個層次。容器化PaaS是PaaS服務層,容器以及介于IaaS和PaaS之間的服務能力,類似于虛擬化。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論