【CSDN編者按】這幾年,越來越多的企業把業務搬到云上來,阿里云順勢推出一個既兼具物理機的性能同時又能提供虛擬機體驗的產品——神龍。這款服務器的架構是怎樣的?有何尤其之處?在「CSDN在線峰會——阿里云核心技術競爭力」上,在虛擬化領域擁有十多年經驗的阿里云彈性計算團隊負責人張獻濤深入分享了阿里云智能在新型計算架構方面的探索——神龍計算架構,以及阿里云計算架構演進的相關實踐,希望能夠對所有技術人有所啟發及裨益。
復制鏈接或點擊「閱讀原文」可免費觀看張獻濤老師分享視頻:
s://edu.csdn.net/huiyiCourse/detail/1176
作者|張獻濤,阿里云彈性計算負責人
責編|夕顏
出品|CSDN(ID:CSDNnews)
以下為張獻濤演講實錄:
各位朋友們大家好,我是張獻濤,花名旭卿。我于2021年加入阿里云智能,當前在阿里云負責彈性計算團隊。加入阿里云之前,我在英特爾從事虛擬化相關工作。過去十幾年,我基本專注在虛擬化領域。
今天要與各位分享的,是過去三四年間,阿里云智能在新型計算架構方面的一個探索——神龍計算架構,以及阿里云計算架構演進的相關實踐。
我今天分享的內容分成四部分:
第一部分是關于神龍架構的背景——阿里云為什么要做神龍,神龍解決了云計算哪些業務痛點。
第二部分介紹神龍架構相關的演進——第一、二、三、四代神龍之間有什么異同點,它們一步一步解決了哪些業務訴求,為用戶帶來哪些核心價值;
第三點主要介紹的神龍架構的實踐——它能給云計算的客戶帶來哪些價值,比如像剛才叔同老師講的,神龍結合容器能夠提供比在物理機上還要好的性能。
一直以來,從事虛擬化的技術人員都是物理機的性能作為優化目標,研究怎么樣能把虛擬化后的能力無限接近物理機,比如做到90%,91%、92%、93%、95%,做到97%、98%可能就做不下去了——它只能無限接近物理機。今天用神龍這種新型計算架構的服務器,再加上阿里云的容器,就可以提供比物理機高百分之幾十的性能,收益非常高。
很后我簡單介紹一下神龍架構的未來。
在介紹神龍架構的背景之前,這里面有幾個數字,來自一個大項目。我相信在線的很多網友都參與過這個好幾千億的項目,每年可能都有機會參與一次,就是天貓雙十一。
在2021年的天貓雙十一,我們又創造了很多新的歷史記錄,比如說全天交易額達到了2684億,相比去年有比較大的提升。第二個數字是54.4萬筆每秒,這個代表在0點清空購物車時,每秒鐘能夠處理交易的筆數。12.92億個包裹意味著幾乎人均一個包裹。
一個個的天量數字背后,都是在阿里云公共云上完成。我們去年達成了一個里程碑事件——整個阿里巴巴經濟體業務,全面遷到公共云上面來,100%核心交易系統全面在阿里云上完成。
在三四年之前,沒有今天講的這個神龍架構之前,其實是做不到的。因為雙十一上云對公共云平臺的挑戰非常大,線下也餓徐用物理機去堆是可以的。但是使用公共云的基礎設施,要承擔阿里巴巴經濟體,比如電商、金融、物流相關交易,并且是雙十一這種天量的交易,是極大的挑戰。
今天我們做到了。背后是神龍服務器在起作用。
我們通過這張圖簡單直接看一下,左邊的照片是2021年10月的云棲大會,我們發布第一代神龍服務器的時刻。在這個時期起,神龍架構開始成為整個阿里云智能很核心的競爭力之一。
為什么它能夠承擔起像阿里巴巴雙十一這樣復雜的業務?
第一、因為神龍能夠充分地利用云基礎設施的力量,也就是這里展示的高彈性。單臺服務器,或者一個集群,在線下其實很難利用云基礎設施的能力,而神龍云服務器能和云基礎設施融合在一起,提供高彈性的資源。比如,你需要更多的存儲、更多的網絡資源、甚至更多的數據庫,你不用停機、你也不用去插硬盤,系統會根據你的管控命令,自動進行資源伸縮。
第二是高穩定,尤其是性能的輸出,需要非常穩定。對于筆記本、PC這可能無所謂,但是對于企業級用戶所用的服務器來說,性能輸出需要是一個穩定的值。
為什么?可能做過業務規劃或者容量規劃的同學能理解,假如計算性能處于波動的狀態,那很難規劃業務需要多少臺服務器支撐。比如說在線直播,八千人需要多少臺服務器,一萬人又需要多少臺服務器?這些需要精準規劃,所以對性能的要求是非常穩定的,神龍服務器可以完美滿足,它在雙十一的性能表現非常平穩。
第三是高性能。這個是本質的,假如性能不足夠高的話,或者連物理機甚至虛擬機都達不到的話,做這樣一款服務器,一個新型的計算架構,其實是沒有意義的。
這幾點,是我們做神龍服務器的一些思考。就像主持人所說,我其實已經做了十幾年的虛擬化技術,談到神龍每一次必須要談到的就是虛擬化技術。
我是2004年開始做虛擬化,我當時還在讀博士。當時在整個業界,在整個世界范圍內真正是做虛擬化技術研究的不多,全球可能加一塊來還不到一百人。我當時一直在想,我畢業之后到底能不能找到工作,因為這個擇業范圍太小了。
在那個時間點上,虛擬化基本上都是一些高校在研究,比如說斯坦福大學、劍橋大學,微軟、VMWare等公司,還有我的老東家英特爾。
我們回顧歷史,其實虛擬化的歷史要比2004年還要早很多,不過一直都是在科研機構、大型IT公司里做研究。
第一個時間點是1974年。很早的理論成立,1974年有一篇論文《FormalRequirementforVirtualizableThirdGenerationArchitecture》,這篇論文為未來40多年的虛擬化技術的快速演進奠定了理論基礎:定義了什么樣的技術才能叫做虛擬化,什么樣的條件才能滿足虛擬化的定義。
第二個時間點就是1997年。1997年,斯坦福大學的教授創立了VMWare公司。這家公司的成立,真正地把虛擬化技術的理論研究,落實到應用。
VMWare做了一個叫二進制翻譯技術的創新。
為什么要做這個?
不得不說,英特爾X86架構,對虛擬化技術是不友好的。因為整個X86的演進,從4位、8位、16位到32位、64位。這樣的過程,其實天生就和一些大型機、和虛擬化是不一樣的。大型機很早就是為了多操作系統運行而設計的,要從指令集的設備層面去虛擬化。
而X86是逐漸演進的過程,很早從一個很小很小的PC市場開始做起。PC是沒有虛擬化要求的,所以X86指令集對虛擬化不友好。一定程度上,二進制翻譯技術可以在指令執行的過程中,動態掃描對虛擬化不友好的條件,一個個切換指令執行情況。這種方法的弊端是性能不太好。
在這個階段,VMWare主要還都是在PC上面運行虛擬化,還不是今天所講的云計算數據中心的虛擬化技術。云計算數據中心的虛擬化技術推行,是2005年。當年,英特爾發布了VT-x和VT-d技術,這是英特爾和AMD兩家芯片公司為首發布的。他們覺得自己的X86的架構對虛擬化不友好,就擴展了指令集、擴展CPU的設計,讓它能夠更好地支持虛擬化技術。
這個技術加速了虛擬化進入數據中心,能夠服務于云計算。
2009年,阿里云成立,云計算不太可能使用VMWare這樣的商業化軟件,所以就采用了當時比較流行的開源虛擬化軟件Xen,后來我們到2021年切到了KVM。當時阿里云是深度定制化的KVM和Xen,做了產品化開發的。
我是2007年參與KVM研發的。在2021年之前,云計算行業里,大家想的都是,怎么樣能夠把當前CPU提供的能力、Xen、KVM等虛擬化的軟件應用好,卻沒有發生多大變革。除了VMWare提供這個二進制翻譯技術,還有PPT里沒有展示的,劍橋大學提出的準虛擬化技術paravirtualization——除了這兩個,沒有太大的創新。
2021年、2020年,阿里云面臨要服務大B類市場的時候,我們要解決成本問題,提升我們的服務能力。
當時我們的虛擬化技術,已經滿足不了云計算發展的步伐。尤其在那個時間點上,我們也在探討,怎樣能夠把阿里巴巴經濟體的業務也遷移到云上面來,這碰到了很大的難題,我們需要去變革虛擬化技術。
于是,2020年我們開始探索,2021年開始立項,到2021年,X-dragon神龍架構問世了。它真正使用軟硬融合、軟硬件協同設計的模式,改變了傳統虛擬化技術和當前的計算架構不友好的地方。
以前虛擬化技術的設計思路,前提都是服務器和計算架構都已經定了,如何通過軟件適配計算架構。
我們做神龍則是反其道而行之。我們覺得今天的虛擬化已經發展得非常好了,那我怎樣能設計一種新的計算架構,讓虛擬化運行得更好?它代表著云計算、云數據中心、虛擬化技術帶來一個變革,它也給我們云計算、阿里云的高速發展帶來了更堅定的信心。
要設計這樣一種新型架構,我們需要簡單來看一下云數據中心的傳統虛擬化架構是怎么樣的、它有什么樣的優缺點、我們為什么要變革它。
這張圖是非常典型的虛擬化組織架構圖。
我們可以看到,底層是大型的物理機集群,每一臺物理機上面其實都會運行著Hypervisor——即虛擬化的系統軟件,還有一個宿主機,比如Xen里面的Domain0。基本上是這樣的模式。
在云計算里面,客戶買到的都是虛擬機,虛擬機的計算能力、平穩性、彈性由下沉的虛擬化軟件——而不是虛擬機——來完成的。比如說計算的虛擬化,虛擬一個CPU、虛擬內存、虛擬中斷都會由Hypervisor軟件來完成;虛擬存儲,基本都由host的虛擬化實現模塊來完成,即通過軟件來做;網絡也是,我們會引入虛擬交換機、虛擬路由器這些的虛擬網絡。
這是一個非常典型的架構。在神龍出現之前大家都是這么用的,也沒有覺得它有多么的不好。但阿里巴巴經濟體,在把自身業務,以及部分大B類的客戶上云時,我們發現了很多方面的問題。
我給大家簡單介紹一下這些問題。
1、資源爭搶、隔離性弱:這張圖中,虛擬機就是客戶的系統,宿主機就是我們的虛擬化治理系統。它們之間共處一室,會導致有資源的爭搶。它們之間資源的爭搶就會帶來虛擬機計算能力的波動。
2、算力損失、成本高:宿主機和Hypervisor都要消耗CPU和內存方面的資源,這就沒法把這臺機器的資源全部給到客戶,意味著成本的提升。比如說,我買了一個32核的物理服務器,我只能把16核或者20核給到客戶,那剩下的12核可能就是一個浪費。但是沒有它還不行,因為它要幫助虛擬化存儲、虛擬化網絡。資源的浪費就導致了成本的提升。
3、性能瓶頸明顯:還有整個存儲、網絡的虛擬化,如前所述,都是由軟件實現。軟件實現方案優點是靈活和有一定的擴展性,但是缺點也很明顯——性能、穩定性會比較差。這是它很大的問題。
4、難以支持裸機服務:因為物理機里面已經運行了這樣一套Hypervisor軟件,我們難以云的方式提供裸機、提供存儲網絡的彈性。即便云計算越發普及,部分企業還是有物理機的訴求,云廠商沒有辦法提供。假如提供只能提供物理機托管了,這就不是云計算了,而是回到了傳統IT。
架構的缺陷帶來了很多產品挑戰。我們要解決這些問題。
帶著這些問題,我們先去分析一下,客戶到底要什么?
分析完之后,我們發現客戶真正買我們計算型產品的時候,他需要更強的計算性能、需要更快的網絡接入、更高的存儲讀寫能力,存儲的IOPS要高、網絡的PPS要高、網絡的帶寬存儲能力要高。這意味著說,我要有更高的更好的QoS(服務質量),網絡、性能不能忽高忽低;還要更加安全;要有更低的成本。這就是客戶的訴求。
我們拿著訴求,再對照虛擬化技術的缺點,進行技術探索和創新,看如何解決這些方面。
神龍就應運而生了,神龍是為云而生,是軟硬融合的虛擬化技術。
神龍服務器性能 關鍵的部分全部用芯片用硬件去實現,性能非 關鍵的比如控制面部分,都用軟件去做。很后帶來靈活性和性能完美有機的結合。它和傳統的虛擬化相比,代表了云數據中心虛擬化新一代技術,可以真正解決掉我們剛才說的問題。
我們進入第二部分。
第一代神龍,更多的是解決上云后如何支持裸機服務,說得直接點就是物理機,但是又不能是傳統的物理機,需要充分和云計算基礎設施融合。比如,它可以充分利用池化過的云存儲資源、網絡資源、數據庫等。
在這種情況下,第一代神龍誕生了。我們叫baremetalvirtualization,裸金屬虛擬化。我們在業界第一個發布類似的產品。
它的體驗可以用下面的一句話來總結,就是:超越物理機的性能,有虛擬機的體驗。
什么是虛擬機的體驗?我們知道,虛擬機整個運維全部都是自動化的,所有的資源都是池化過的,這其實是非常好的一種模式。傳統虛擬化技術,有優勢也有問題。假如說我們能夠通過新技術,解決劣勢保留優勢——這是我們做第一代虛擬化的初衷。我們也做到了。
在這種架構下面,我們進行深層次的探索,設計了神龍MOC卡。
MOC卡里,有一個神龍芯片做高速數據面的轉發;有一個芯片加速引擎,存儲EBS、網絡,所有管控面的東西,都下沉到芯片中;整個生命周期的治理、所有的接口都和虛擬機保持一致。比如,存儲都是用virtio-blk,網絡都是virtio-net的接口,其他設備也和虛擬機保持一致。
如此一來,它可以和虛擬機無縫兼容,可以和虛擬機在同樣的VPC里、可以掛載云盤,跟虛擬機使用體驗一樣。
我們設計了X-dragonHypervisor和自研神龍芯片,提供了安全可靠可信、計算無損的服務。神龍支持彈性的存儲,可以支持掛16塊EBS云盤,并且每一個EBS云盤都可以高達32G;它也可以提供31個ENS動態、彈性的網絡接口,可以動態地插進去一些網卡。一個物理機,它的網絡接口可以動態增加和減少。
芯片加速的IO引擎,支持無縫接入VPC,無縫接入EBS存儲,支持免裝機,直接一個芯片就可以啟動,一兩分鐘就交付了裸機服務。
第一代的特點是,一張芯片其實解決了所有問題,物理機可以使用云存儲、VPC網絡、掛載本地盤的問題。所有系統治理也都在這張卡里面做。我們加入了安全芯片的能力,可以讓彈性、穩定性、性能和成本完美地結合。虛擬化下沉到這張卡,就是本質。
第二代的神龍叫融合虛擬化的踐行者,這就是阿里云線上第六代實例大規模使用的技術。
和第一代相比,整個神龍芯片能力進一步增強,不但可以支持的裸金屬系統,它還可以支持虛擬機。
我們為虛擬機設計了一個超薄的Hypervisor,叫Dragonfly,就是讓神龍能夠飛起來的Hypervisor。它幾乎不占用任何的資源,可以支撐很多的虛擬機系統,所有的計算資源都可以給到客戶,資源和性能無損;并且每個虛擬機之間,是通過硬件的隊列進行隔離的,虛擬機和虛擬機之間,雖然共處一室但各行其道,沒有任何共線的干擾。
我們做到了:
①技術的融合、資源的并池,就是一套軟硬件支持容器、虛擬機和裸金屬三套服務。
②DragonflyHypervisor超輕薄,能夠讓整個虛擬機資源的占用接近于0。
③直通型的硬件IO設備,比如提供512個網絡隊列,很高提供512個ENI,存儲有512個隊列,至少能夠下載幾十塊云盤。它的能力會進一步的增強。
④很難做的是全組件的熱遷移,包含芯片、FPGA組件全部做熱升級。解決了熱升級的問題,我才解決整個研發上能夠快速迭代的難題。
剛剛一直提到的DragonflyHypervisor有以下特點:
超輕薄,資源零損耗。內存占用大概每個虛擬機不到1MB,但是CPU占用小于0.1%
超平穩,接近零抖動。100萬個數據包可能會有一個抖動。業界可能做得很好的是10萬級別的。我們做到100萬。
超平滑,兼容原架構,和KVM無縫兼容,能夠解決掉資源池之間互相熱遷移的難題。
第三代神龍架構,它是極致性能的追求者。我們在去年的云棲大會發布。整個性能處于業界很高的水平。相對于同行的類似架構,我們性能大概在5倍之多,存儲、網絡等 關鍵性能指標,都是他的5倍以上。
第三代神龍的很大變化,就是
①所有的數據面路徑全面芯片化,存儲、網絡、數據都芯片化,性能大幅提升。
②提供了硬件級、電信級QoS的治理,比如存儲、網絡每秒鐘需要多少數據包、多大的帶寬,都超級正確,正確到了一個數據包。原來只有電信級的設備里才有。我們在云數據中心服務器里實現了。
③增強型融合網絡,可以提供接近裸機的低延時網絡。

④增強型硬件隊列,支持1千個1024存儲隊列和1024網絡隊列,隊列和隊列之間的隔離性進一步增強。
三代神龍拓展了彈性計算產品的邊界。第一代發布于2021年10月份,第二代在2021年9月份發布,第三代是去年的9月26號上午發布。
我們整個的網絡性能,單機做到了2500萬PPS,這個相當于友商大概5倍左右。存儲做到了100萬IOPS。現有的彈性計算產品在提供這些特性,有一些實例里大家能夠感受到明顯提升。接下來我們會全面切到第三代。
神龍發展到今天,去年,不僅僅集團經濟體的業務全面遷到了神龍,整個公共云的計算類服務,也全部都遷到神龍架構。阿里巴巴、阿里云新增的任何一代服務器,全部都是神龍架構:X86通用實例——G系列、T系列和R系列全面升級,異構計算以及高性能計算相關實例全部都切到了神龍,可以提供剛剛講到的第三代神龍的能力,比如說100萬數據包才會有一個抖動。
文章地址:http://www.meyanliao.com/article/online/10658.html