近日,2021年度浙江省科學(xué)技術(shù)獎揭曉,由阿里云牽頭聯(lián)合浙江大學(xué)攻堅的超大規(guī)模高性能云計算網(wǎng)絡(luò)系統(tǒng)(阿里云洛神系統(tǒng))榮獲浙江省技術(shù)發(fā)明一等獎。
由多名院士及資深專家組成的專家評委會對阿里云洛神給予了極高的評價:
“該項目技術(shù)復(fù)雜,研制難度大,在虛擬網(wǎng)絡(luò)高速轉(zhuǎn)發(fā)、網(wǎng)絡(luò)狀態(tài)實時多尺度觀測、大規(guī)模網(wǎng)絡(luò)高性能調(diào)控等方面具有原始性創(chuàng)新,達(dá)到了國際領(lǐng)先水平,是我國在云計算網(wǎng)絡(luò)領(lǐng)域趕超世界先進(jìn)水平、構(gòu)建自主生態(tài)的成功實踐和重大成果?!?/p>
從一開始的一片空白到現(xiàn)在的完整體系,洛神云網(wǎng)絡(luò)中間經(jīng)歷了三次重大技術(shù)升級。本文將揭秘阿里云洛神云網(wǎng)絡(luò)的起源以及如何歷經(jīng)三代演進(jìn)到今。
01
緣起飛天
2010年,阿里云用服務(wù)器搭載軟件的方式,開發(fā)出第一款云網(wǎng)絡(luò)產(chǎn)品——負(fù)載均衡SLB(Server Load Balancer),對網(wǎng)絡(luò)流量(網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量)進(jìn)行均衡分發(fā)。由此拉開了云網(wǎng)絡(luò)高速發(fā)展的序幕。
跟“飛天”操作系統(tǒng)一樣,云網(wǎng)絡(luò)也有一個屬于自己的取自中華傳統(tǒng)神話的名字“洛神”,洛神是掌管河水之神,象征著連接、匯聚和流動,這也契合了云網(wǎng)絡(luò)連接數(shù)字世界的定位。
洛神云網(wǎng)絡(luò)發(fā)展到現(xiàn)在經(jīng)歷三個重要的階段:
·2010年的洛神1.0,即云數(shù)據(jù)中心網(wǎng)絡(luò);
·2016到2020年的洛神2.0,是云廣域網(wǎng)絡(luò);
·再到2020年開始的洛神3.0,是應(yīng)用-云-邊-端一體的智能網(wǎng)絡(luò)。
在不同的階段,洛神云網(wǎng)絡(luò)給用戶提供了不同的產(chǎn)品能力,滿足用戶的網(wǎng)絡(luò)需求。
02
從零起步
自研云計算網(wǎng)絡(luò),說起來容易,但是做起來無比艱難。區(qū)別于傳統(tǒng)物理網(wǎng)絡(luò)設(shè)備,云計算網(wǎng)絡(luò)天然有三大特性:多租戶、大規(guī)模、高彈性。
·多租戶:云計算網(wǎng)絡(luò)天然是一張多租戶的網(wǎng)絡(luò),需要讓不同的租戶的應(yīng)用能同時運行在這張網(wǎng)絡(luò)上,并且不用租戶之間的網(wǎng)絡(luò)能互相隔離。
·大規(guī)模:云計算的本質(zhì)就是將資源通過虛擬化技術(shù)進(jìn)行池化之后以更高效的方式提供給用戶,云計算的規(guī)模越大其池化效果越好,因此,云計算網(wǎng)絡(luò)在管理和控制技術(shù)上需要突破傳統(tǒng)網(wǎng)管技術(shù)至少一個數(shù)量級才有可能達(dá)到這種規(guī)模
·高彈性:云計算網(wǎng)絡(luò)需要能為用戶提供按需使用的彈性調(diào)度能力,針對用戶的高帶寬高吞吐的場景還需要提供超高性能的網(wǎng)絡(luò)轉(zhuǎn)發(fā)能力。
針對這三個特性,2009年的阿里云面臨的是三個空白:
·學(xué)術(shù)方面:以Jennifer Rexford為代表的國際網(wǎng)絡(luò)領(lǐng)域?qū)W者從2004年開始探索如何讓網(wǎng)絡(luò)的管理和控制如何更加高效靈活。
其中最有代表性的是04年發(fā)表在SIGCOMM會議上的“Network-Wide Decision Making:Toward A Wafer-Thin Control Plane”,首次明確提出了轉(zhuǎn)發(fā)和控制分離的理念,這為后面Software Defined Networking的誕生奠定了理論基礎(chǔ)。
回到國內(nèi),2009年國內(nèi)在學(xué)術(shù)上對SDN領(lǐng)域產(chǎn)出稀少,學(xué)術(shù)上的研究儲備基本空白。
·技術(shù)方面:VXLAN以及NVGRE等用于多租戶的云計算網(wǎng)絡(luò)報文格式還僅僅是草案;
以VMWare為代表商業(yè)虛擬化軟件公司有一套私有的虛擬網(wǎng)絡(luò)解決方案,并且已經(jīng)實現(xiàn)了多租戶虛擬化網(wǎng)絡(luò);
OpenStack,OpenFlow等開源技術(shù)方案也尚未出現(xiàn),對于阿里云來說當(dāng)時幾乎沒有可以借鑒的技術(shù)來實現(xiàn)一套多租戶高彈性的云計算網(wǎng)絡(luò)。
·產(chǎn)品方面:以亞馬遜AWS以及微軟Azure為代表的云計算廠商已經(jīng)在該領(lǐng)域深耕多年,AWS推出的VPC(Virtual Private Cloud)幾乎成了云計算網(wǎng)絡(luò)中數(shù)據(jù)中心網(wǎng)絡(luò)上云之后的標(biāo)準(zhǔn)模版。
隨后幾乎所有的云計算公司在網(wǎng)絡(luò)領(lǐng)域都會以VPC這個產(chǎn)品為基礎(chǔ)打造自己的云計算網(wǎng)絡(luò)產(chǎn)品體系。
阿里云作為后來者面臨從零開始搭建自己的產(chǎn)品體系,并且不得不考慮被海外公司培養(yǎng)好的用戶習(xí)慣,這對剛起步的阿里云云網(wǎng)絡(luò)產(chǎn)品有很高的要求。
如果不解決云網(wǎng)絡(luò)的這些問題,阿里云在最重要的IAAS層就不完整,飛天也就缺少了它的一個關(guān)鍵子系統(tǒng),如何破局是阿里云云網(wǎng)絡(luò)團隊需要面臨的第一個挑戰(zhàn)。
03
初見雛形
為了能讓阿里云的業(yè)務(wù)跑起來,阿里云開始了洛神1.0的自研,并且將目標(biāo)定位為多租戶的云數(shù)據(jù)中心網(wǎng)絡(luò)。洛神1.0的核心由兩部分組成:基于X86實現(xiàn)的虛擬網(wǎng)絡(luò)轉(zhuǎn)發(fā)層和第一代阿里云SDN控制器。
基于X86的虛擬網(wǎng)絡(luò)轉(zhuǎn)發(fā)層
云計算通過將數(shù)據(jù)中心虛擬化給客戶帶來極大的便利和應(yīng)用價值的同時也讓數(shù)據(jù)中心網(wǎng)絡(luò)實例密度提升了數(shù)十倍,交換機的ARP表、MAC表的容量相繼出現(xiàn)了瓶頸,傳統(tǒng)的物理設(shè)備無法支撐容納這么多的虛擬機IP。
針對這些問題,洛神1.0研發(fā)了一層基于X86的虛擬網(wǎng)絡(luò)轉(zhuǎn)發(fā)層。其根據(jù)部署所處的位置,可以分為兩個關(guān)鍵的組件:部署在計算節(jié)點端側(cè)的虛擬交換機vSwitch和部署在數(shù)據(jù)中心出入口的虛擬網(wǎng)關(guān)。
通過將業(yè)務(wù)邏輯從內(nèi)核態(tài)遷移到用戶空間來減少內(nèi)核協(xié)議棧損耗,洛神1.0的虛擬交換機性能達(dá)到百萬級PPS,萬兆帶寬,虛擬網(wǎng)關(guān)單機性能達(dá)到千萬級PPS,百GB帶寬,能力足以支撐當(dāng)時的大部分主流應(yīng)用,比如web網(wǎng)站、政務(wù)系統(tǒng)、在線游戲等等。
第一代SDN控制器
洛神的第一代SDN控制器嚴(yán)格遵循了學(xué)術(shù)界將data plane和control plane分離的模式,由一個純軟件實現(xiàn)的控制器(Controller)去控制數(shù)據(jù)面的行為。整個控制器由兩部分組成,Northbound(北向)負(fù)責(zé)管理租戶的實例,Southbound(南向)負(fù)責(zé)管理虛擬網(wǎng)絡(luò)設(shè)備。
通過這套基于軟件實現(xiàn)的網(wǎng)絡(luò)控制器,洛神里面所有網(wǎng)絡(luò)配置都統(tǒng)一由它管理,轉(zhuǎn)發(fā)設(shè)備只需要專注于按照規(guī)則和配置去處理報文。
這種設(shè)計不僅極大地簡化了轉(zhuǎn)發(fā)層的設(shè)計復(fù)雜度,讓轉(zhuǎn)發(fā)能專注提高性能,同時也讓洛神能更靈活得對外提供新的產(chǎn)品和功能,也奠定了洛神的整體技術(shù)分層。
04
性能飛躍
洛神1.0伴隨著國內(nèi)云計算的飛速發(fā)展,時間來到2016年,阿里云的業(yè)務(wù)已經(jīng)不僅限于國內(nèi)幾大地域,海外客戶的快速增長要求阿里云需要盡快覆蓋全球更多地域,而網(wǎng)絡(luò)則是阿里云拓展邊界的先鋒,洛神需要從一張張數(shù)據(jù)中心網(wǎng)絡(luò)走向全球互聯(lián)的廣域網(wǎng)。
另一個決定了洛神發(fā)展趨勢的是云上出現(xiàn)了超大規(guī)模的企業(yè)客戶,最典型的就是阿里巴巴自身的核心業(yè)務(wù)全棧上云。
在洛神1.0時代一個VPC內(nèi)通常容納幾百到幾萬臺虛擬機,很少客戶擁有十萬級以上規(guī)模的虛擬機。但是阿里巴巴核心業(yè)務(wù)上云則直接要求單VPC百萬級虛擬機,并且Tb級的帶寬要求也遠(yuǎn)超之前的中小客戶,這些技術(shù)指標(biāo)是第一代洛神無法提供的。
面對上面的兩個變化,阿里云開始了洛神2.0的研發(fā),也是通過這一代洛神實現(xiàn)了技術(shù)指標(biāo)的飛躍,在關(guān)鍵性能及規(guī)模指標(biāo)上趕上了國際友商。相比1.0,洛神2.0有三大技術(shù)突破:
·在數(shù)據(jù)面,自研Sailfish:可編程高性能虛擬網(wǎng)絡(luò)轉(zhuǎn)發(fā)層,通過網(wǎng)絡(luò)加速芯片以及可編程交換機實現(xiàn)了Tbps的轉(zhuǎn)發(fā)能力,從而突破了性能瓶頸。
·在數(shù)據(jù)面,自研Cyberstar:彈性網(wǎng)元平臺,基于虛擬機構(gòu)建了一套NFV轉(zhuǎn)發(fā)平臺,從而實現(xiàn)了云網(wǎng)絡(luò)網(wǎng)元技術(shù)的NFV化。
·在管控面,自研第二代阿里云SDN控制器:實現(xiàn)了十萬級設(shè)備的秒級配置下發(fā),單VPC支持百萬級虛擬機,從而突破了規(guī)模瓶頸。
Sailfish:可編程高性能虛擬網(wǎng)絡(luò)轉(zhuǎn)發(fā)層
網(wǎng)絡(luò)設(shè)備的技術(shù)演進(jìn)始終呈現(xiàn)螺旋上升的發(fā)展態(tài)勢,圍繞著靈活性和高性能,軟件和硬件在相互融合、相互促進(jìn)。
從最開始的專用硬件轉(zhuǎn)發(fā)設(shè)備,到軟件轉(zhuǎn)發(fā)+通用x86設(shè)備,再到目前硬件卸載的軟硬一體化轉(zhuǎn)發(fā)設(shè)備以及大行其道的可編程轉(zhuǎn)發(fā)設(shè)備。
靈活性和高性能就像一只無形的手,引導(dǎo)著技術(shù)的持續(xù)發(fā)展。而在這方面,云計算服務(wù)商的驅(qū)動力更大,促使云網(wǎng)絡(luò)的研發(fā)走在了業(yè)界的前面。
為了能在進(jìn)一步提升性能的同時保留軟件的靈活性,洛神2.0通過軟硬件結(jié)合的技術(shù)自研了一套可編程高性能轉(zhuǎn)發(fā)層:Sailfish,其主要部件有負(fù)責(zé)大流量轉(zhuǎn)發(fā)的P4可編程交換芯片,負(fù)責(zé)大表項轉(zhuǎn)發(fā)的自研網(wǎng)卡芯片,負(fù)責(zé)業(yè)務(wù)編排和智能調(diào)度的CPU模塊。
Sailish單機可以支持Tb級,不僅為大客戶上云解決了網(wǎng)絡(luò)連通性的問題,更解決了超大帶寬挑戰(zhàn)下的規(guī)模、性能、效率等一系列問題。