天天看點

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

以下為張獻濤演講實錄:

各位朋友們大家好,我是張獻濤,花名旭卿。我于2014年加入阿裡雲智能,目前在阿裡雲負責彈性計算團隊。加入阿裡雲之前,我在英特爾從事虛拟化相關工作。過去十幾年,我基本專注在虛拟化領域。

今天要與各位分享的,是過去三四年間,阿裡雲智能在新型計算架構方面的一個探索——神龍計算架構,以及阿裡雲計算架構演進的相關實踐。

我今天分享的内容分成四部分:

第一部分是關于神龍架構的背景——阿裡雲為什麼要做神龍,神龍解決了雲計算哪些業務痛點。

第二部分介紹神龍架構相關的演進——第一、二、三、四代神龍之間有什麼異同點,它們一步一步解決了哪些業務訴求,為使用者帶來哪些核心價值;

第三點主要介紹的神龍架構的實踐——它能給雲計算的客戶帶來哪些價值,比如像剛才叔同老師講的,神龍結合容器能夠提供比在實體機上還要好的性能。

一直以來,從事虛拟化的技術人員都是實體機的性能作為優化目标,研究怎麼樣能把虛拟化後的能力無限接近實體機,比如做到90%,91%、92%、93%、95%,做到97%、98%可能就做不下去了——它隻能無限接近實體機。今天用神龍這種新型計算架構的伺服器,再加上阿裡雲的容器,就可以提供比實體機高百分之幾十的性能,收益非常高。

最後我簡單介紹一下神龍架構的未來。

一、神龍架構的背景

在介紹神龍架構的背景之前,這裡面有幾個數字,來自一個大項目。我相信線上的很多網友都參與過這個好幾千億的項目,每年可能都有機會參與一次,就是天貓雙十一。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

在2019年的天貓雙十一,我們又創造了很多新的曆史記錄,比如說全天交易額達到了2684億,相比去年有比較大的提升。第二個數字是54.4萬筆每秒,這個代表在0點清空購物車時,每秒鐘能夠處理交易的筆數。12.92億個包裹意味着幾乎人均一個包裹。

一個個的天量數字背後,都是在阿裡雲公共雲上完成。我們去年達成了一個裡程碑事件——整個阿裡巴巴經濟體業務,全面遷到公共雲上面來,100%核心交易系統全面在阿裡雲上完成。

在三四年之前,沒有今天講的這個神龍架構之前,其實是做不到的。因為雙十一上雲對公共雲平台的挑戰非常大,線下也餓徐用實體機去堆是可以的。但是使用公共雲的基礎設施,要承擔阿裡巴巴經濟體,比如電商、金融、物流相關交易,并且是雙十一這種天量的交易,是極大的挑戰。

今天我們做到了。背後是神龍伺服器在起作用。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

我們通過這張圖簡單直接看一下,左邊的照片是2017年10月的雲栖大會,我們釋出第一代神龍伺服器的時刻。在這個時期起,神龍架構開始成為整個阿裡雲智能最核心的競争力之一。

為什麼它能夠承擔起像阿裡巴巴雙十一這樣複雜的業務?

第一、因為神龍能夠充分地利用雲基礎設施的力量,也就是這裡展示的高彈性。單台伺服器,或者一個叢集,線上下其實很難利用雲基礎設施的能力,而神龍雲伺服器能和雲基礎設施融合在一起,提供高彈性的資源。比如,你需要更多的存儲、更多的網絡資源、甚至更多的資料庫,你不用停機、你也不用去插硬碟,系統會根據你的管控指令,自動進行資源伸縮。

第二是高穩定,尤其是性能的輸出,需要非常穩定。對于筆記本、PC這可能無所謂,但是對于企業級使用者所用的伺服器來說,性能輸出需要是一個穩定的值。

為什麼?可能做過業務規劃或者容量規劃的同學能了解,如果計算性能處于波動的狀态,那很難規劃業務需要多少台伺服器支撐。比如說線上直播,八千人需要多少台伺服器,一萬人又需要多少台伺服器?這些需要精準規劃,是以對性能的要求是非常穩定的,神龍伺服器可以完美滿足,它在雙十一的性能表現非常平穩。

第三是高性能。這個是本質的,如果性能不足夠高的話,或者連實體機甚至虛拟機都達不到的話,做這樣一款伺服器,一個新型的計算架構,其實是沒有意義的。

這幾點,是我們做神龍伺服器的一些思考。就像主持人所說,我其實已經做了十幾年的虛拟化技術,談到神龍每一次必須要談到的就是虛拟化技術。

虛拟化技術曆史
從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

我是2004年開始做虛拟化,我當時還在讀博士。當時在整個業界,在整個世界範圍内真正是做虛拟化技術研究的不多,全球可能加一塊來還不到一百人。我當時一直在想,我畢業之後到底能不能找到工作,因為這個擇業範圍太小了。

在那個時間點上,虛拟化基本上都是一些高校在研究,比如說斯坦福大學、劍橋大學,微軟、VMWare等公司,還有我的老東家英特爾。

我們回顧曆史,其實虛拟化的曆史要比2004年還要早很多,不過一直都是在科研機構、大型IT公司裡做研究。

第一個時間點是1974年。最早的理論成立,1974年有一篇論文《Formal Requirement for Virtualizable Third Generation Architecture》,這篇論文為未來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,後來我們到2014年切到了KVM。當時阿裡雲是深度定制化的KVM和Xen,做了産品化開發的。

我是2007年參與KVM研發的。在2014年之前,雲計算行業裡,大家想的都是,怎麼樣能夠把目前CPU提供的能力、Xen、KVM等虛拟化的軟體應用好,卻沒有發生多大變革。除了VMWare提供這個二進制翻譯技術,還有PPT裡沒有展示的,劍橋大學提出的準虛拟化技術paravirtualization——除了這兩個,沒有太大的創新。

2014年、2015年,阿裡雲面臨要服務大B類市場的時候,我們要解決成本問題,提升我們的服務能力。

當時我們的虛拟化技術,已經滿足不了雲計算發展的步伐。尤其在那個時間點上,我們也在探讨,怎樣能夠把阿裡巴巴經濟體的業務也遷移到雲上面來,這遇到了很大的難題,我們需要去變革虛拟化技術。

于是, 2015年我們開始探索,2016年開始立項,到2017年,X-dragon神龍架構問世了。它真正使用軟硬融合、軟硬體協同設計的模式,改變了傳統虛拟化技術和目前的計算架構不友好的地方。

以前虛拟化技術的設計思路,前提都是伺服器和計算架構都已經定了,如何通過軟體适配計算架構。

我們做神龍則是反其道而行之。我們覺得今天的虛拟化已經發展得非常好了,那我怎樣能設計一種新的計算架構,讓虛拟化運作得更好?它代表着雲計算、雲資料中心、虛拟化技術帶來一個變革,它也給我們雲計算、阿裡雲的高速發展帶來了更堅定的信心。

傳統虛拟化架構的缺陷

要設計這樣一種新型架構,我們需要簡單來看一下雲資料中心的傳統虛拟化架構是怎麼樣的、它有什麼樣的優缺點、我們為什麼要變革它。

這張圖是非常典型的虛拟化組織架構圖。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

我們可以看到,底層是大型的實體機叢集,每一台實體機上面其實都會運作着Hypervisor——即虛拟化的系統軟體,還有一個主控端,比如Xen裡面的Domain0。基本上是這樣的模式。

在雲計算裡面,客戶買到的都是虛拟機,虛拟機的計算能力、平穩性、彈性由下沉的虛拟化軟體——而不是虛拟機——來完成的。比如說計算的虛拟化,虛拟一個CPU、虛拟記憶體、虛拟中斷都會由Hypervisor軟體來完成;虛拟存儲,基本都由host的虛拟化實作子產品來完成,即通過軟體來做;網絡也是,我們會引入虛拟交換機、虛拟路由器這些的虛拟網絡。

這是一個非常典型的架構。在神龍出現之前大家都是這麼用的,也沒有覺得它有多麼的不好。但阿裡巴巴經濟體,在把自身業務,以及部分大B類的客戶上雲時,我們發現了很多方面的問題。

我給大家簡單介紹一下這些問題。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

1、資源争搶、隔離性弱:這張圖中,虛拟機就是客戶的系統,主控端就是我們的虛拟化管理系統。它們之間共處一室,會導緻有資源的争搶。它們之間資源的争搶就會帶來虛拟機計算能力的波動。

2、算力損失、成本高:主控端和Hypervisor都要消耗CPU和記憶體方面的資源,這就沒法把這台機器的資源全部給到客戶,意味着成本的提升。比如說,我買了一個32核的實體伺服器,我隻能把16核或者20核給到客戶,那剩下的12核可能就是一個浪費。但是沒有它還不行,因為它要幫助虛拟化存儲、虛拟化網絡。資源的浪費就導緻了成本的提升。

3、性能瓶頸明顯:還有整個存儲、網絡的虛拟化,如前所述,都是由軟體實作。軟體實作方案優點是靈活和有一定的擴充性,但是缺點也很明顯——性能、穩定性會比較差。這是它最大的問題。

**

4、難以支援裸機服務**:因為實體機裡面已經運作了這樣一套Hypervisor軟體,我們難以雲的方式提供裸機、提供存儲網絡的彈性。即便雲計算越發普及,部分企業還是有實體機的訴求,雲廠商沒有辦法提供。如果提供隻能提供實體機托管了,這就不是雲計算了,而是回到了傳統IT。

架構的缺陷帶來了很多産品挑戰。我們要解決這些問題。

帶着這些問題,我們先去分析一下,客戶到底要什麼?

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

分析完之後,我們發現客戶真正買我們計算型産品的時候,他需要更強的計算性能、需要更快的網絡接入、更高的存儲讀寫能力,存儲的IOPS要高、網絡的PPS要高、網絡的帶寬存儲能力要高。這意味着說,我要有更高的更好的QoS(服務品質),網絡、性能不能忽高忽低;還要更加安全;要有更低的成本。這就是客戶的訴求。

我們拿着訴求,再對照虛拟化技術的缺點,進行技術探索和創新,看如何解決這些方面。

神龍就應運而生了,神龍是為雲而生,是軟硬融合的虛拟化技術。

神龍伺服器性能關鍵的部分全部用晶片用硬體去實作,性能非關鍵的比如控制面部分,都用軟體去做。最後帶來靈活性和性能完美有機的結合。它和傳統的虛拟化相比,代表了雲資料中心虛拟化新一代技術,可以真正解決掉我們剛才說的問題。

二、神龍架構的演進

我們進入第二部分。

第一代神龍:裸金屬虛拟化的先行者

第一代神龍,更多的是解決上雲後如何支援裸機服務,說得直接點就是實體機,但是又不能是傳統的實體機,需要充分和雲計算基礎設施融合。比如,它可以充分利用池化過的雲存儲資源、網絡資源、資料庫等。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

在這種情況下,第一代神龍誕生了。我們叫bare metal virtualization,裸金屬虛拟化。我們在業界第一個釋出類似的産品。

它的體驗可以用下面的一句話來總結,就是:超越實體機的性能,有虛拟機的體驗。

什麼是虛拟機的體驗?我們知道,虛拟機整個運維全部都是自動化的,所有的資源都是池化過的,這其實是非常好的一種模式。傳統虛拟化技術,有優勢也有問題。如果說我們能夠通過新技術,解決劣勢保留優勢——這是我們做第一代虛拟化的初衷。我們也做到了。

在這種架構下面,我們進行深層次的探索,設計了神龍MOC卡。

MOC卡裡,有一個神龍晶片做高速資料面的轉發;有一個晶片加速引擎,存儲EBS、網絡,所有管控面的東西,都下沉到晶片中;整個生命周期的管理、所有的接口都和虛拟機保持一緻。比如,存儲都是用virtio-blk,網絡都是virtio-net的接口,其他裝置也和虛拟機保持一緻。

如此一來,它可以和虛拟機無縫相容,可以和虛拟機在同樣的VPC裡、可以挂載雲盤,跟虛拟機使用體驗一樣。

我們設計了X-dragon Hypervisor和自研神龍晶片,提供了安全可靠可信、計算無損的服務。神龍支援彈性的存儲,可以支援挂16塊EBS雲盤,并且每一個EBS雲盤都可以高達32G;它也可以提供31個ENS動态、彈性的網絡接口,可以動态地插進去一些網卡。一個實體機,它的網絡接口可以動态增加和減少。

晶片加速的IO引擎,支援無縫接入VPC,無縫接入EBS存儲,支援免裝機,直接一個晶片就可以啟動,一兩分鐘就傳遞了裸機服務。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

第一代的特點是,一張晶片其實解決了所有問題,實體機可以使用雲存儲、VPC網絡、挂載本地盤的問題。所有系統管理也都在這張卡裡面做。我們加入了安全晶片的能力,可以讓彈性、穩定性、性能和成本完美地結合。虛拟化下沉到這張卡,就是本質。

第二代神龍:融合虛拟化的踐行者
從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

第二代的神龍叫融合虛拟化的踐行者,這就是阿裡雲線上第六代執行個體大規模使用的技術。

和第一代相比,整個神龍晶片能力進一步增強,不但可以支援的裸金屬系統,它還可以支援虛拟機。

我們為虛拟機設計了一個超薄的Hypervisor,叫Dragonfly,就是讓神龍能夠飛起來的Hypervisor。它幾乎不占用任何的資源,可以支撐很多的虛拟機系統,所有的計算資源都可以給到客戶,資源和性能無損;并且每個虛拟機之間,是通過硬體的隊列進行隔離的,虛拟機和虛拟機之間,雖然共處一室但各行其道,沒有任何共線的幹擾。

我們做到了:

① 技術的融合、資源的并池,就是一套軟硬體支援容器、虛拟機和裸金屬三套服務。

② Dragonfly Hypervisor超輕薄,能夠讓整個虛拟機資源的占用接近于0。

③ 直通型的硬體IO裝置,比如提供512個網絡隊列,最高提供512個ENI,存儲有512個隊列,至少能夠下載下傳幾十塊雲盤。它的能力會進一步的增強。

④ 最難做的是全元件的熱遷移,包含晶片、FPGA元件全部做熱更新。解決了熱更新的問題,我才解決整個研發上能夠快速疊代的難題。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

剛剛一直提到的Dragonfly Hypervisor有以下特點:

超輕薄,資源零損耗。記憶體占用大概每個虛拟機不到1 MB,但是CPU占用小于0.1%

超平穩,接近零抖動。100萬個資料包可能會有一個抖動。業界可能做得最好的是10萬級别的。我們做到100萬。

超平滑,相容原架構,和KVM無縫相容,能夠解決掉資源池之間互相熱遷移的難題。

第三代:極緻性能的追求者
從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

第三代神龍架構,它是極緻性能的追求者。我們在去年的雲栖大會釋出。整個性能處于業界最高的水準。相對于同行的類似架構,我們性能大概在5倍之多,存儲、網絡等關鍵性能名額,都是他的5倍以上。

第三代神龍的最大變化,就是

① 所有的資料面路徑全面晶片化,存儲、網絡、資料都晶片化,性能大幅提升。

② 提供了硬體級、電信級QoS的管理,比如存儲、網絡每秒鐘需要多少資料包、多大的帶寬,都超級精确,精确到了一個資料包。原來隻有電信級的裝置裡才有。我們在雲資料中心伺服器裡實作了。

③ 增強型融合網絡,可以提供接近裸機的低延時網絡。

④ 增強型硬體隊列,支援1千個1024存儲隊列和1024網絡隊列,隊列和隊列之間的隔離性進一步增強。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

三代神龍拓展了彈性計算産品的邊界。第一代釋出于2017年10月份,第二代在2018年9月份釋出,第三代是去年的9月26号上午釋出。

我們整個的網絡性能,單機做到了2500萬PPS,這個相當于友商大概5倍左右。存儲做到了100萬IOPS。現有的彈性計算産品在提供這些特性,有一些執行個體裡大家能夠感受到明顯提升。接下來我們會全面切到第三代。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

神龍發展到今天,去年,不僅僅集團經濟體的業務全面遷到了神龍,整個公共雲的計算類服務,也全部都遷到神龍架構。阿裡巴巴、阿裡雲新增的任何一代伺服器,全部都是神龍架構:X86通用執行個體——G系列、T系列和R系列全面更新,異構計算以及高性能計算相關執行個體全部都切到了神龍,可以提供剛剛講到的第三代神龍的能力,比如說100萬資料包才會有一個抖動。

三、神龍架構的實踐

最後,我簡單介紹一下神龍到目前的一些實踐。

剛才叔同老師也介紹了,神龍和容器之間有一種雙劍合璧效果。

我們為容器設計了一個特别的網絡,叫Terway network ,它和VPC(virtual private cloud)能夠天然融合。每一個容器都會有一個VPC的IP,它們之間全部網絡和存儲,都是一個硬體隊列來進行相對隔離。

在去年的雙十一,很多典型的應用,容器加神龍表現出了非常好的能力。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

這裡展現的是我們電商裡的某一個很關鍵的應用,也是我們每次下單都要用到的應用,它整個QPS提升了30%,RT下降了96%。

在極限壓力情況下,它還有這麼好的表現。客戶資源的使用率,CPU使用率最高可以提升到80%。

為什麼會有這種效果?

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

圖裡藍色這根線是傳統的實體機,紅色這跟是同規格的——就是CPU、記憶體相關等所有的東西都一樣的——神龍架構的實體機。

它們兩個在雲上運作業務的時候,我們可以看到藍色這個,可能CPU使用率到40%的時候,業務延遲就會增加了,超過50%、60%,整個業務就出現崩盤了。但是神龍,當CPU使用率即使高到接近100%的時候,業務延遲增長還是非常少。

平均下來,一般的伺服器能壓到百分之二三十的CPU使用率,就已經不錯了。神龍可以壓到百分之五六十,都有非常線性、平穩的業務表現。有很多的客戶都開始使用我們的神龍伺服器。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

另外一個神龍的用處,就是能夠把VMWare的私有雲,遷到公共雲上。我們知道,線下有很多資料中心,都使用都了VMWare私有雲。很多客戶會用龍都把線下的VMWare的私有雲遷上來。沒有神龍,這實作不了,因為傳統雲計算執行個體,沒法支援VMWare這種虛拟化軟體。

如果用了OpenStack,底層使用了KVM,想把你整個線下OpenStack的私有雲搬到雲上面來,神龍裸金屬伺服器也可以解決。

從 VMWare 到阿裡神龍,虛拟化技術 40 年演進史一、神龍架構的背景二、神龍架構的演進三、神龍架構的實踐四、神龍架構的未來

最後,近段時間新冠病毒爆發了之後,阿裡雲為十幾家公共科研機構提供算力直吹。這背後就是用神龍裸金屬搭建的高性能計算能力。

四、神龍架構的未來

前幾天,我們神龍架構的論文,在計算機系統的頂會ASPLOS 2020做了分享。

論文介紹了裸金屬虛拟化相關的整體規劃,和我們未來要做的東西。興趣的朋友,可以到這個位址去下載下傳我們的論文,也有視訊講解。

未來,我們也會繼續在神龍架構持續創新,大家如果對這個領域有什麼疑問或者想法,歡迎聯系我們。

謝謝大家!

【END】

繼續閱讀