近日,阿里雲智能總裁張建鋒在2022阿里雲峰會發布雲基礎設施處理器CIPU(Cloud Infrastructure Processing Unit),將其定義為替代CPU成為雲計算的管控和加速中心。在這個全新體系架構下,CIPU向下對數據中心的計算、存儲、網絡資源快速雲化並進行硬件加速,向上接入飛天雲操作系統,將全球數百萬台服務器構建為一台超級計算機。 眾所周知,傳統IT時代,微軟Windows+Intel聯盟取代了IBM PC霸主地位;移動計算時代,谷歌Android/蘋果iOS+ARM共同主導了移動終端的技術架構;那麼雲計算時代,阿里雲飛天操作系統+CIPU組合能發揮什麼樣的價值? 本文希望通過對CIPU的深入技術解讀,回答讀者普遍關心的關鍵問題:CIPU到底是什麼?CIPU主要解決哪些問題?CIPU從何而來,未來又將往何處去? 在距離2006年雲計算鼻祖AWS先後發布S3和EC2有16年之餘,距離2010年BAT針對雲計算是否「新瓶裝舊酒」之爭已有12年歷史之時,同時Gartner 2021全球IaaS 收入已達900億美元的當下,市面上依然存在着一些偽雲計算概念,比如,轉售IDC硬件、轉售CDN等。 雲計算行業再次站在了分水嶺上,有必要看清楚雲的未來到底是什麼?什麼才是我們需要的雲計算? 作為和水、電一樣的公共資源和社會基礎設施,雲的核心特徵是「彈性」和「多租」。 彈性,從廣義上講,是讓IT能力輕鬆跟上用戶的業務發展;從狹義上講,則帶給用戶無與倫比的靈活性。 先來看廣義彈性的價值,簡單講就是充裕的供給能力,「無限索取」。IT計算力已經成為很多業務的支撐性能力。當業務迅猛發展時,如果計算力跟不上,那麼業務必然會受到嚴重的制約。 但是計算力的建設並不是一蹴而就的,從地、電、水到機房建造,從數據中心網絡鋪設到Internet接入,從服務器選型、定製、採購到部署、上線和運維,從單機房、多機房到跨地域甚至跨大洲,然後是安全、穩定性、容災、備份……最後是最難的,優秀人才的招聘、培訓和保有,這些無一不是耗時、耗力、耗財的事項,談何容易。而彈性計算的出現,則讓計算力的獲得變得簡單而從容。 下圖展示了一個公有雲用戶隨着業務的極速擴張所購買的計算力的增長曲線,短短15個月,計算力需求從零爆發式增長到了數百萬核。彈性計算充裕的計算力供給,讓用戶業務的發展如虎添翼。 邏輯清晰的讀者可能已經隱約感覺到「彈性」和「多租」並非嚴格的正交和並列關係,那麼為什麼筆者特意把「多租」上升到「彈性」並列的高度來進行討論? 嚴格來說,多租是實現極致彈性和極致社會IT資源效率的必要條件之一。不可否認,私有雲確實在一定程度上解決了企業IT資源靈活高效使用的問題,但是私有雲和公有雲在「多租」這個核心業務特性差異,導致二者之間的天壤之別。 準確完成對雲計算的「彈性」和「多租」業務特性的定義,則可以進一步討論技術實現層面,如何實現「彈性」和「多租 」功能,如何在極致安全、極致穩定、極致性能、極致成本等四個維度討論雲計算技術實現層面的演進。
IaaS的阿克琉斯之踵
眾所周知,IaaS是計算、存儲、網絡等三大件的IT資源公共服務化;PaaS主要指數據庫、大數據、AI等數據管理平台服務化以及K8s雲原生和中間件;SaaS則是以微軟Office 365、Salesforce等為代表的軟件服務化。傳統意義上,雲計算主要是指IaaS雲服務,PaaS和SaaS則是IaaS雲平台之上的雲原生產品和服務;同時由於本文主題CIPU主要位於IaaS層,因此PaaS和SaaS對CIPU的需求不會在本文重點展開。 為了實現IaaS計算、存儲、網絡等IT資源靈活按需供給,其核心特點是資源池化、服務多租、彈性供給以及管理運維自動化等。其背後的核心技術則是虛擬化技術。 2003年,XenSource在SOSP發表《Xen and the Art of Virtualization》,拉開x86平台虛擬化技術的大幕。 2006年,AWS發布EC2和S3,拉開了公有雲服務的大幕。EC2的核心正是基於Xen虛擬化技術。 可以看出,虛擬化技術和IaaS雲計算服務相互成就:IaaS雲服務「發現和發掘」了虛擬化技術的業務價值,使得虛擬化技術成為了IaaS雲服務的基石;與此同時,虛擬化技術紅利讓IaaS雲服務成為了可能。 從2003年Xen虛擬化技術發軔,到2005年英特爾開始在至強處理器引入虛擬化支持,加入新指令集並改變x86體系架構,使得虛擬化技術大規模部署成為可能,然後2007年KVM虛擬化技術誕生,持續近20年的IaaS虛擬化技術演進,無不是圍繞上述更安全、更穩定、更高性能、更低成本等四大業務目標進行演進。 簡單回顧歷史,我們就可以清晰看到IaaS的阿克琉斯之踵 —— 虛擬化技術之痛。 其一,成本。Xen時代,Xen Hypervisor DOM0消耗XEON一半的CPU資源,也就是只有一半的CPU資源可以對外售賣,可以看到虛擬化雲計算稅極其沉重。 其二,性能。Xen時代,內核網絡虛擬化時延達到150us之巨,網絡時延抖動極大,網絡轉發pps成為企業核心業務的關鍵瓶頸,Xen虛擬化架構在存儲和網絡IO虛擬化方面有不可克服的性能瓶頸。 其三,安全。QEMU大量設備仿真代碼,對於IaaS雲計算毫無意義,而這些冗餘代碼不僅僅會導致額外資源開銷,更進一步導致安全攻擊敞口(attack surface)無法根本收斂。 眾所周知,公有雲成立的基礎之一是多租環境下的數據安全。而持續提升硬件的可信能力,數據在計算、存儲、網絡等子系統流動過程中的安全加密能力,在Xen/KVM虛擬化下技術挑戰極大。 其四,穩定性。雲計算穩定性提升,依賴兩大核心技術:底層芯片白盒,以此輸出更多RAS數據;以及基於這些穩定性數據的大數據運維。虛擬化系統要進一步提升穩定性,則需要進一步深入計算、網絡和存儲芯片的實現細節,以此獲得更多影響系統穩定性數據。 其五,彈性裸金屬支持。諸如Kata、Firecracker等安全容器,多卡GPU服務器在PCIe switch P2P虛擬化開銷,頭部大用戶追求降低極致計算和內存虛擬化的開銷,以及VMware/OpenStack支持等需求方面,需要彈性裸金屬來支撐這類需求,而基於Xen/KVM虛擬化架構無法實現彈性裸金屬。 其六,IO和算力之間的鴻溝持續擴大。我們以Intel XEON 2 Socket服務器為例,分析存儲和網絡IO以及XEON CPU PCIe帶寬擴展能力,與CPU算力的發展做一個簡單對比分析: 進一步以2018年SkyLake 2S服務器的各個指標(CPU HT數量、DDR整機理論帶寬等)為基準,橫向對比各個技術指標的發展趨勢。以CPU HT數量為例,96HT SkyLake設定為基線1,IceLake 128HT/96HT = 1.3,Sapphire Rapids 192HT/96HT = 2.0,我們可以得到如下Intel 2S XEON服務器 CPU vs. MEM vs. PCIe/存儲/網絡IO發展趨勢: 從上圖2018年到2022年四年數據對比,我們可以得到如下結論: 1、Intel CPU提升了2倍(未考慮IPC提升因素),DDR帶寬提升了2.4倍,因此CPU和DDR帶寬是匹配的; 2、單網卡(包含網卡連接的以太交換網絡)帶寬提升了4倍,單NVMe帶寬提升了3.7倍,整機PCIe帶寬提升6.7倍,可以看出網絡/存儲/PCIe等IO能力和Intel XEON CPU的算力之間gap在持續拉大; 3、上圖未分析的時延維度數據,由於Intel CPU頻率基本保持不變,IPC未有顯著提升,因此CPU處理數據的時延會有小幅改進,PCIe和網卡/網絡的時延也僅有小幅改進,而存儲NVMe和AEP等新一代存儲介質,相對於HDD等老一代介質,在時延方面出現了數量級的下降; 4、上述計算、網絡、存儲等基礎設施層面發展的不同步,將對數據庫和大數據等PaaS層的系統架構產生關鍵影響,但這非本文討論重點。 作為有虛擬化技術背景的人士,看到上述分析,內心一定是沉重的。 因為在Intel VT等計算和內存硬件虛擬化技術普遍部署後,計算和內存虛擬化的開銷(包含隔離性、抖動等)已經得到了相當程度的解決。而上述PCIe/NIC/NVMe/AEP等 IO技術突飛猛進發展的同時,如果繼續沿用PV半虛擬化技術,在內存拷貝、VM Exit、時延等方面的技術挑戰將愈發凸顯。
CIPU從何處來?
通過上面的內容,我們基本闡述清楚了IaaS雲計算在技術層面面臨的問題和挑戰,本章節我們將對CIPU技術發展史做一個綜述,目的是回答一個問題:CIPU從何而來?畢竟「不了解歷史,則無法看清未來」。 細心的讀者如果對上文的「六大虛擬化技術之痛」有進一步思考和分析,應該可以看出6個痛點有一個方面的共性:都在或多或少地討論IO虛擬化子系統的成本、安全和性能。因此符合邏輯的技術解決思路應該是從IO虛擬化子系統入手。而回望過去20年的技術發展史,也確實印證了上述推導邏輯。 IO虛擬化子系統存在巨大的需求和技術鴻溝,Intel自然會重點解決。DMA直接內存存取,以及IRQ中斷請求在虛擬化條件下的改進,以及對應PCIe標準化組織的跟進,肯定會成為必然。 從IOMMU地址翻譯到中斷remapping和posted interrupt,從PCIe SR-IOV/MR-IOV到Scalable IOV,其具體技術實現細節不在本文討論之列,網上相關資料可謂汗牛充棟,感興趣的可自行搜索研讀。 而筆者在此羅列Intel VT-d IO硬件虛擬化技術的唯一目的是想說:CPU IO硬件虛擬化技術的成熟,是CIPU技術發展的前置關鍵技術依賴。 CIPU另一個設計思路來自通信領域(特別是數通技術)。數通出身的人士,肯定對以太網交換芯片、路由芯片、fabric芯片等特別熟悉,而這其中網絡處理器(Network Processor Unit,NPU。特別指出本文網絡NPU,非AI Neural Processing Unit)是數通領域的一個關鍵支撐技術。 2012年前後,由於受運營商諸多美好願望驅動(是否能夠大規模落地按下不表,但是人總是要有希望,否則「和鹹魚有何差別」),無論是在通信領域的無線核心網還是寬帶接入服務器(BRAS)中(如下圖),NFV(網絡功能虛擬化)都成為重點研發方向。 一言以蔽之,NFV就是通過標準x86服務器,標準以太交換網、標準IT存儲等IT標準化和虛擬化的基礎設施,來實現通信領域的網元功能,以此擺脫傳統通信煙囪式和垂直化的非標緊耦合軟硬件系統,從而達到運營商降本增效和提升業務敏捷度。 (圖片來源:ETSI NFV Problem Statement and Solution Vision) 而NFV運行在IT標準化和虛擬化的基礎設施之上,肯定會遇到相當多技術難題。而這些技術難題之一就是:NFV作為網絡業務,相對於IT領域典型的在線交易/離線大數據等業務,對於網絡虛擬化技術要求有很大差別。NFV天然對高帶寬吞吐(默認線速帶寬處理)、高pps 處理能力以及時延和抖動等都有更為嚴格的要求。 此時,傳統NPU進入了SDN/NFV的技術需求視野,不過這一次是把NPU放置到網卡之上而已,而配置NPU的網卡則被稱為智能網卡(Smart NIC)。 可以看到,通信NFV等業務希望部署到標準化和虛擬化的IT通用基礎設施之上,然後遇到網絡虛擬化性能瓶頸。同時期,IT domain公有雲虛擬化技術遭遇了IO虛擬化技術瓶頸。它們在2012年前後,不期而遇。至此,網絡NPU、智能網卡等傳統通信技術開始進入IT domain的視野。 時至今日,在解決雲計算IO虛擬化這個問題上,可以看到智能網卡、DPU、IPU等仍然被大家混用。原因之一,確實它們有深刻的血脈聯繫;同時如此之多和如此混亂的名稱,也源自於通信領域跨界到IT領域的工程師以及美國多家芯片大廠對雲業務需求和場景的不熟悉。
CIPU定位
在相關前置技術儲備的基礎之上,這裡我們給出CIPU的定義及定位。 CIPU(Cloud Infrastructure Processing Unit,雲基礎設施處理器),顧名思義,就是把IDC計算、存儲、網絡基礎設施雲化並且硬件加速的專用業務處理器。 計算器件、存儲資源、網絡資源一旦接入CIPU, 就雲化為虛擬算力,被雲平台調度編排,給用戶提供高質量彈性雲計算算力集群。 通過VT-d的前置支撐技術,實現高性能的IO硬件設備虛擬化。同時考慮公有雲OS生態兼容,設備模型應該盡最大努力做到兼容。因此實現基於virtio-net、virtio-blk、NVMe等業界標準IO設備模型,成為了必須。 同時注意到IO設備的高性能,那麼在PCIe協議層面的優化則至關重要。如何減少PCIe TLP通信量、降低guest OS中斷數量(同時平衡時延需求),實現靈活的硬件隊列資源池化,新IO業務的可編程和可配置的靈活性等方面,是決定IO硬件設備虛擬化實現優劣的關鍵。 上文已對網絡虛擬化的業務痛點做了簡要分析,在這裡我們進一步對業務需求進行展開: 而實現層面,Xen時代內核網絡虛擬化,到KVM架構下基於DPDK vSwitch用戶態網絡虛擬化,面臨如下問題:
對上述兩個問題做進一步分析,可以看出如下三個根本困難: 100Gbps+大帶寬數據移動,導致「馮諾依曼內存牆」問題突出; 此時,基於硬件轉發加速的業務需求誕生,技術實現層面可以分為: 類似於MNLX ASAP、Intel FXP、Broadcom trueflow等基於可配置的ASIC轉發技術 Intel FXP等基於可配置的ASIC轉發技術,具備最高的性瓦比和最低的轉發時延,但是業務靈活性就比較捉襟見肘;基於many core的NPU技術,具備一定的轉發業務靈活性,但是PPA(power-performance-area)效率和轉發時延無法和可配置ASIC競爭。FPGA可重配置邏輯實現轉發技術,time to market能力有很大優勢,但是對於400Gbps/800Gbps轉發業務,挑戰很大。 此時技術實現層面的tradeoff原則:商用IPU/DPU芯片由於需要覆蓋更多目標客戶,會趨向於犧牲一定PPA效率和轉發時延,來獲得一定的通用性;而雲廠商CIPU會基於自身轉發業務進行更多的深度垂直定製,從而獲得更極致PPA效率和更極致轉發時延。 公有雲存儲要實現9個9的數據持久性,且計算和存儲要滿足彈性業務需求,必然導致存算分離,EBS(阿里雲塊存儲)必須在計算機頭高性能、低時延地接入機尾的分布式存儲集群。 EBS作為實時存儲,必須實現E2E極致低時延和極致P9999時延抖動; 實現線速存儲IO轉發,諸如200Gbps網絡環境下實現6M IOPS; 新一代NVMe硬件IO虛擬化,滿足共享盤業務需求的同時,解決PV NVMe半虛擬化IO性能瓶頸。 計算initiator和分布式存儲target之間的存儲協議,一般雲廠商均會高度垂直優化定製;而CIPU對EBS分布式存儲接入硬件加速的核心點就在於此。 本地存儲,雖然不具備諸如EBS 9個9的數據持久性和可靠性,但是在低成本、高性能、低時延等方面仍然具備優勢,對計算cache、大數據等業務場景而言是剛需。 如果做到本地盤虛擬化之後,帶寬、IOPS、時延的零衰減,同時兼具一虛多、QoS隔離能力、可運維能力,是本地存儲虛擬化硬件加速的核心競爭力。 RDMA網絡在HPC、AI、大數據、數據庫、存儲等data centric業務中,扮演愈來愈重要的技術角色。可以說,RDMA網絡已經成為了data centric業務差異化能力的關鍵。而公有雲上如何實現普惠化的RDMA能力,則是CIPU的關鍵業務能力。 基於雲上overlay網絡大規模部署,overlay網絡可達的地方,RDMA網絡可達; RDMA verbs生態100%兼容,IaaS零代碼修改是業務成敗的關鍵; 超大規模部署,傳統ROCE技術基於PFC等data center bridging技術,在網絡規模和交換網絡運維等諸多方面,已經難以為繼。雲上彈性RDMA技術需要擺脫PFC和無損網絡依賴。 彈性RDMA在實現層面,首先要邁過VPC低時延硬件轉發這一關;然後在PFC和無損網絡被拋棄的當下,傳輸協議和擁塞控制算法的深度垂直定製優化就成為了CIPU必然之選。 用戶視角看雲計算,「安全是1」——沒有安全這個「1」,其他業務能力均是「0」。 因此,持續加強硬件可信技術、VPC 東西向流量全加密、EBS和本地盤虛擬化數據全量加密,基於硬件的enclave技術等,是雲廠商持續提升雲業務競爭力的關鍵。 雲計算的核心是service(服務化),從而實現用戶對IT資源的免運維。而IaaS彈性計算可運維能力的核心是全業務組件的無損熱升級能力和虛擬機的無損熱遷移能力。 此時涉及到CIPU和雲平台底座之間的大量軟硬件協同設計。 彈性裸金屬在具體定義層面必須實現如下八項關鍵業務特徵: 同時,雲計算彈性業務必然要求彈性裸金屬、虛擬機、安全容器等計算資源的並池生產和調度。 考慮到通用計算和AI計算在網絡、存儲和算力等方面的需求差異巨大,CIPU必須具備池化能力。通用計算通過CIPU池化技術,顯著提升CIPU資源利用率,從而提升成本層面的核心競爭力;同時又能夠在一套CIPU技術架構體系下,滿足AI等高帶寬業務需求。 計算虛擬化和內存虛擬化的業務特性增強,雲廠商均會對CIPU有不少核心需求定義。 經過第五章對CIPU業務的完整定義,我們需要對CIPU的計算體系架構進一步理論溯源。只有計算機工程實踐上升到計算機科學視角,才能更為清晰地洞察CIPU的實質,並為下一步的工程實踐指明技術方向。這必然是一條從自發到自覺的提升之路。 第三小節我們得出一個結論:「單網卡(包含網卡連接的以太交換網絡)帶寬提升了4倍,單NVMe帶寬提升了3.7倍,整機PCIe帶寬提升6.7倍,可以看出網絡/存儲/PCIe等IO能力和Intel XEON CPU的算力之間gap在持續拉大。」 如果僅根據上述結論進行判斷,必然會認為CIPU硬件加速是算力offloading(卸載)。但是事情顯然並沒有如此簡單。 XEON算力可以簡化為:ALU等計算處理能力 + 數據層級化cache和內存訪問能力。對於普遍的通用計算(標量計算),XEON的超標量計算能力,可謂十分完美。而矢量計算,XEON的AVX512和SPR AMX,定向優化的軟件性能會大超預期,同時GPU和AI TPU等異構計算對於矢量計算實現了計算的高度優化。 因此,CIPU要在通用標量計算和AI矢量計算等業務領域,去完成XEON ALU算力和GPU stream processor的offloading顯然不現實。 如下圖,Intel精確定義workload算力特徵,以及最佳匹配算力芯片: (圖片來源:Intel)那麼問題來了,CIPU這個socket,最適合的業務workload有什麼共同特徵? 深入分析第五小節的10個業務,可以看出它們的共同業務特徵:在數據流動(移動)過程中,通過深度垂直軟硬件協同設計,盡最大可能減少數據移動,以此提升計算效率。因此,CIPU在計算機體系架構視角的主要工作是:優化雲計算服務器之間和服務器內部的數據層級化cache、內存和存儲的訪問效率(如下圖所示)。 行文至此,謹以Nvidia首席計算機科學家Bill Dally的精闢闡述「Locality is efficiency, Efficiency is power, Power is performance, Performance is king.」作為小結。 那既然CIPU硬件加速不單單是算力卸載,那它是什麼?先擺出答案:CIPU是隨路異構計算。 Nvidia/Mellanox已經持續倡導in networking computing(近網絡計算)多年,CIPU隨路異構計算和它是什麼關係?存儲領域,也存在多年的computational storage、in storage computing以及near data computing(近數據計算)等概念,CIPU隨路異構計算和它們又是什麼關係? 答案很簡單:CIPU 隨路異構計算 = 近網絡計算 + 近存儲計算 進一步對比分析,可以加深對隨路異構計算的理解:GPU、Google TPU、Intel QAT等,均可以總結分類為: 旁路異構計算;CIPU位於網絡和存儲必經之路,因此它的分類為:隨路異構計算。 DPU:Data Processing Unit,從業內信息來看,應該源自Fungible;而這個名字真正發揚光大和名噪一時,則要歸功於Nvidia的大力宣傳推廣。在Nvidia收購Mellanox之後,NVidia CEO 黃仁勛對行業趨勢的核心判斷:數據中心的未來將是CPU、GPU和DPU三足鼎立,並以此為Nvidia Bluefield DPU造勢。
從上圖可見,中美兩國掀起了一輪DPU/IPU技術投資熱潮,但是筆者的判斷是:這個socket必須基於雲平台軟件底座(CloudOS)的業務需求,完成CloudOS + CIPU深度軟硬件協同設計。只有雲廠商才能發揮出這個socket的最大價值。 在IaaS領域,雲廠商追求「北向接口標準化,IaaS零代碼修改,兼容OS和應用生態;同時往下做深基礎,進一步追求軟硬件深度垂直整合」,這背後的技術邏輯是「軟件定義,硬件加速」。 阿里雲自研了飛天雲操作系統及多款數據中心核心部件,技術家底深厚。基於雲平台底座軟件,進行深度軟硬件垂直整合,推出CIPU,是阿里雲的必由之路。 還值得一提的是,雲平台操作系統在長期和大規模的研發和運營中沉澱出來的業務理解和知識積累,以及這個過程中構建的垂直完備研發技術團隊,才是CIPU的題中之義。芯片和軟件不過是這些知識固化的一種實現形式。
鑽石舞台 發表在 痞客邦 留言 (0) 人氣( )