前天,小棗君發(fā)了一篇關(guān)于數(shù)據(jù)中心網(wǎng)絡(luò)的文章(鏈接)。很多讀者留言,說沒看明白。
本著“將通信科普到底”的原則,今天,我再繼續(xù)聊一下這個(gè)話題。
故事還是要從頭開始說起。
1973年夏天,兩名年輕的科學(xué)家(溫頓·瑟夫和羅伯特卡恩)開始致?于在新?的計(jì)算機(jī)?絡(luò)中,尋找?種能夠在不同機(jī)器之間進(jìn)行通訊的?法。
不久后,在一本黃?的便簽本上,他們畫出了TCP/IP協(xié)議族的原型。
幾乎在同時(shí),施樂公司的梅特卡夫和博格思,發(fā)明了以太網(wǎng)(Ethernet)。
我們現(xiàn)在都知道,互聯(lián)網(wǎng)的最早原型,是老美搞出來的ARPANET(阿帕網(wǎng))。
ARPANET最開始用的協(xié)議超爛,滿足不了計(jì)算節(jié)點(diǎn)規(guī)模增長(zhǎng)的需求。于是,70年代末,大佬們將ARPANET的核心協(xié)議替換成了TCP/IP(1978年)。
進(jìn)入80年代末,在TCP/IP技術(shù)的加持下,ARPANET迅速擴(kuò)大,并衍生出了很多兄弟姐妹。這些兄弟姐妹互相連啊連啊,就變成了舉世聞名的互聯(lián)網(wǎng)。
可以說,TCP/IP技術(shù)和以太網(wǎng)技術(shù),是互聯(lián)網(wǎng)早期崛起的基石。它們成本低廉,結(jié)構(gòu)簡(jiǎn)單,便于開發(fā)、部署,為計(jì)算機(jī)網(wǎng)絡(luò)的普及做出了巨大貢獻(xiàn)。
但是后來,隨著網(wǎng)絡(luò)規(guī)模的急劇膨脹,傳統(tǒng)TCP/IP和以太網(wǎng)技術(shù)開始顯現(xiàn)疲態(tài),無法滿足互聯(lián)網(wǎng)大帶寬、高速率的發(fā)展需求。
最開始出現(xiàn)問題的,是存儲(chǔ)。
早期的存儲(chǔ),大家都知道,就是機(jī)器內(nèi)置硬盤,通過IDE、SCSI、SAS等接口,把硬盤連到主板上,通過主板上的總線(BUS),實(shí)現(xiàn)CPU、內(nèi)存對(duì)硬盤數(shù)據(jù)的存取。
后來,存儲(chǔ)容量需求越來越大,再加上安全備份的考慮(需要有RAID1/RAID5),硬盤數(shù)量越來越多,若干個(gè)硬盤搞不定,服務(wù)器內(nèi)部也放不下。于是,就有了磁陣。
磁陣,磁盤陣列
磁陣就是專門放磁盤的設(shè)備,一口子插幾十塊那種。
硬盤數(shù)據(jù)存取,一直都是服務(wù)器的瓶頸。開始的時(shí)候,用的是網(wǎng)線或?qū)S秒娎|連接服務(wù)器和磁陣,很快發(fā)現(xiàn)不夠用。于是,就開始用光纖。這就是FC通道(Fibre Channel,光纖通道)。
2000年左右,光纖通道還是比較高大上的技術(shù),成本不低。
當(dāng)時(shí),公共通信網(wǎng)絡(luò)(骨干網(wǎng))的光纖技術(shù)處于在SDH 155M、622M的階段,2.5G的SDH和波分技術(shù)才剛起步,沒有普及。后來,光纖才開始爆發(fā),容量開始迅速躍升,向10G(2003)、40G(2010)、100G(2010)、400G(現(xiàn)在)的方向發(fā)展。
光纖不能用于數(shù)據(jù)中心的普通網(wǎng)絡(luò),那就只能繼續(xù)用網(wǎng)線,還有以太網(wǎng)。
好在那時(shí)服務(wù)器之間的通信要求還沒有那么高。100M和1000M的網(wǎng)線,勉強(qiáng)能滿足一般業(yè)務(wù)的需求。2008年左右,以太網(wǎng)的速率才勉強(qiáng)達(dá)到了1Gbps的標(biāo)準(zhǔn)。
2010年后,又出幺蛾子。
除了存儲(chǔ)之外,因?yàn)?a class="article-link" target="_blank" href="/baike/492547.html">云計(jì)算、圖形處理、人工智能、超算還有比特幣等亂七八糟的原因,人們開始盯上了算力。
摩爾定律的逐漸疲軟,已經(jīng)無法支持CPU算力的提升需求。牙膏越來越難擠,于是,GPU開始崛起。使用顯卡的GPU處理器進(jìn)行計(jì)算,成為了行業(yè)的主流趨勢(shì)。
得益于AI的高速發(fā)展,各大企業(yè)還搞出了AI芯片、APU、xPU啊各自五花八門的算力板卡。
算力極速膨脹(100倍以上),帶來的直接后果,就是服務(wù)器數(shù)據(jù)吞吐量的指數(shù)級(jí)增加。
除了AI帶來的變態(tài)算力需求之外,數(shù)據(jù)中心還有一個(gè)顯著的變化趨勢(shì),那就是服務(wù)器和服務(wù)器之間的數(shù)據(jù)流量急劇增加。
互聯(lián)網(wǎng)高速發(fā)展、用戶數(shù)猛漲,傳統(tǒng)的集中式計(jì)算架構(gòu)無法滿足需求,開始轉(zhuǎn)變?yōu)榉植际郊軜?gòu)。
舉例來說,現(xiàn)在618,大家都在血拼。百八十個(gè)用戶,一臺(tái)服務(wù)器就可以,千萬級(jí)億級(jí),肯定不行了。所以,有了分布式架構(gòu),把一個(gè)服務(wù),放在N個(gè)服務(wù)器上,分開算。
分布式架構(gòu)下,服務(wù)器之間的數(shù)據(jù)流量大大增加了。數(shù)據(jù)中心內(nèi)部互聯(lián)網(wǎng)絡(luò)的流量壓力陡增,數(shù)據(jù)中心與數(shù)據(jù)中心之間也是一樣。
這些橫向(專業(yè)術(shù)語叫東西向)的數(shù)據(jù)報(bào)文,有時(shí)候還特別大,一些圖形處理的數(shù)據(jù),包大小甚至是Gb級(jí)別。
綜上原因,傳統(tǒng)以太網(wǎng)根本搞不定這么大的數(shù)據(jù)傳輸帶寬和時(shí)延(高性能計(jì)算,對(duì)時(shí)延要求極高)需求。所以,少數(shù)廠家就搞了一個(gè)私有協(xié)議的專用網(wǎng)絡(luò)通道技術(shù),也就是Infiniband網(wǎng)絡(luò)(直譯為“無限帶寬”技術(shù),縮寫為IB)。
FC vs IB vs 以太網(wǎng)
IB技術(shù)時(shí)延極低,但是造價(jià)成本高,而且維護(hù)復(fù)雜,和現(xiàn)有技術(shù)都不兼容。所以,和FC技術(shù)一樣,只在特殊的需求下使用。
算力高速發(fā)展的同時(shí),硬盤不甘寂寞,搞出了SSD固態(tài)硬盤,取代機(jī)械硬盤。內(nèi)存嘛,從DDR到DDR2、DDR3、DDR4甚至DDR5,也是一個(gè)勁的猥瑣發(fā)育,增加頻率,增加帶寬。
處理器、硬盤和內(nèi)存的能力爆發(fā),最終把壓力轉(zhuǎn)嫁到了網(wǎng)卡和網(wǎng)絡(luò)身上。
學(xué)過計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)的同學(xué)都知道,傳統(tǒng)以太網(wǎng)是基于“載波偵聽多路訪問/沖突檢測(cè)(CSMA/CD)”的機(jī)制,極容易產(chǎn)生擁塞,導(dǎo)致動(dòng)態(tài)時(shí)延升高,還經(jīng)常發(fā)生丟包。
TCP/IP協(xié)議的話,服役時(shí)間實(shí)在太長(zhǎng),都40多年的老技術(shù)了,毛病一大堆。
舉例來說,TCP協(xié)議棧在接收/發(fā)送報(bào)文時(shí),內(nèi)核需要做多次上下文切換,每次切換需要耗費(fèi)5us~10us左右的時(shí)延。另外,還需要至少三次的數(shù)據(jù)拷貝和依賴CPU進(jìn)行協(xié)議封裝。
這些協(xié)議處理時(shí)延加起來,雖然看上去不大,十幾微秒,但對(duì)高性能計(jì)算來說,是無法忍受的。
除了時(shí)延問題外,TCP/IP網(wǎng)絡(luò)需要主機(jī)CPU多次參與協(xié)議棧內(nèi)存拷貝。網(wǎng)絡(luò)規(guī)模越大,帶寬越高,CPU在收發(fā)數(shù)據(jù)時(shí)的調(diào)度負(fù)擔(dān)就越大,導(dǎo)致CPU持續(xù)高負(fù)載。
按照業(yè)界測(cè)算數(shù)據(jù):每傳輸1bit數(shù)據(jù)需要耗費(fèi)1Hz的CPU,那么當(dāng)網(wǎng)絡(luò)帶寬達(dá)到25G以上(滿載)的時(shí)候,CPU要消費(fèi)25GHz的算力,用于處理網(wǎng)絡(luò)。大家可以看看自己的電腦CPU,工作頻率是多少。
那么,是不是干脆直接換個(gè)網(wǎng)絡(luò)技術(shù)就行呢?
不是不行,是難度太大。
CPU、硬盤和內(nèi)存,都是服務(wù)器內(nèi)部硬件,換了就換了,和外部無關(guān)。
但是通信網(wǎng)絡(luò)技術(shù),是外部互聯(lián)技術(shù),是要大家協(xié)商一起換的。我換了,你沒換,網(wǎng)絡(luò)就嗝屁了。
全世界互聯(lián)網(wǎng)同時(shí)統(tǒng)一切換技術(shù)協(xié)議,你覺得可不可能?
不可能。所以,就像現(xiàn)在IPv6替換IPv4,就是循序漸進(jìn),先雙棧(同時(shí)支持v4和v6),然后再慢慢淘汰v4。
數(shù)據(jù)中心網(wǎng)絡(luò)的物理通道,光纖替換網(wǎng)線,還稍微容易一點(diǎn),先小規(guī)模換,再逐漸擴(kuò)大。換了光纖后,網(wǎng)絡(luò)的速度和帶寬上的問題,得以逐漸緩解。
網(wǎng)卡能力不足的問題,也比較好解決。既然CPU算不過來,那網(wǎng)卡就自己算唄。于是,就有了現(xiàn)在很火的智能網(wǎng)卡。某種程度來說,這就是算力下沉。
搞5G核心網(wǎng)的同事應(yīng)該很熟悉,5G核心網(wǎng)媒體面網(wǎng)元UPF,承擔(dān)了無線側(cè)上來的所有業(yè)務(wù)數(shù)據(jù),壓力極大。
現(xiàn)在,UPF網(wǎng)元就采用了智能網(wǎng)卡技術(shù),由網(wǎng)卡自己進(jìn)行協(xié)議處理,緩解CPU的壓力,流量吞吐還更快。
如何解決數(shù)據(jù)中心通信網(wǎng)絡(luò)架構(gòu)的問題呢?專家們想了半天,還是決定硬著頭皮換架構(gòu)。他們從服務(wù)器內(nèi)部通信架構(gòu)的角度,重新設(shè)計(jì)一個(gè)方案。
在新方案里,應(yīng)用程序的數(shù)據(jù),不再經(jīng)過CPU和復(fù)雜的操作系統(tǒng),直接和網(wǎng)卡通信。
這就是新型的通信機(jī)制——RDMA(Remote Direct Memory Access,遠(yuǎn)程直接數(shù)據(jù)存取)。
RDMA相當(dāng)于是一個(gè)“消滅中間商”的技術(shù),或者說“走后門”技術(shù)。
RDMA的內(nèi)核旁路機(jī)制,允許應(yīng)用與網(wǎng)卡之間的直接數(shù)據(jù)讀寫,將服務(wù)器內(nèi)的數(shù)據(jù)傳輸時(shí)延降低到接近1us。
同時(shí),RDMA的內(nèi)存零拷貝機(jī)制,允許接收端直接從發(fā)送端的內(nèi)存讀取數(shù)據(jù),極大的減少了CPU的負(fù)擔(dān),提升CPU的效率。
RDMA的能力遠(yuǎn)遠(yuǎn)強(qiáng)于TCP/IP,逐漸成為主流的網(wǎng)絡(luò)通信協(xié)議棧,將來一定會(huì)取代TCP/IP。
RDMA有兩類網(wǎng)絡(luò)承載方案,分別是專用InfiniBand和傳統(tǒng)以太網(wǎng)絡(luò)。
RDMA最早提出時(shí),是承載在InfiniBand網(wǎng)絡(luò)中。
但是,InfiniBand是一種封閉架構(gòu),交換機(jī)是特定廠家提供的專用產(chǎn)品,采用私有協(xié)議,無法兼容現(xiàn)網(wǎng),加上對(duì)運(yùn)維的要求過于復(fù)雜,并不是用戶的合理選擇。
于是,專家們打算把RDMA移植到以太網(wǎng)上。
比較尷尬的是,RDMA搭配傳統(tǒng)以太網(wǎng),存在很大問題。
RDMA對(duì)丟包率要求極高。0.1%的丟包率,將導(dǎo)致RDMA吞吐率急劇下降。2%的丟包率,將使得RDMA的吞吐率下降為0。
InfiniBand網(wǎng)絡(luò)雖然貴,但是可以實(shí)現(xiàn)無損無丟包。所以RDMA搭配InfiniBand,不需要設(shè)計(jì)完善的丟包保護(hù)機(jī)制。
現(xiàn)在好了,換到傳統(tǒng)以太網(wǎng)環(huán)境,以太網(wǎng)的人生態(tài)度就是兩個(gè)字——“擺爛”。以太網(wǎng)發(fā)包,采取的是“盡力而為”的原則,丟包是家常便飯,丟了就再傳。
于是,專家們必須解決以太網(wǎng)的丟包問題,才能實(shí)現(xiàn)RDMA向以太網(wǎng)的移植。再于是,就有了前天文章提到的,華為的超融合數(shù)據(jù)中心網(wǎng)絡(luò)智能無損技術(shù)。
說白了,就是讓以太網(wǎng)做到零丟包,然后支撐RDMA。有了RDMA,就能實(shí)現(xiàn)超融合數(shù)據(jù)中心網(wǎng)絡(luò)。
關(guān)于零丟包技術(shù)的細(xì)節(jié),我不再贅述,大家看前天那篇文章(再給一遍鏈接:這里)。
值得一提的是,引入AI的網(wǎng)絡(luò)智能無損技術(shù)是華為的首創(chuàng),但超融合數(shù)據(jù)中心,是公共的概念。除了華為之外,別的廠家(例如深信服、聯(lián)想等)也講超融合數(shù)據(jù)中心,而且,這個(gè)概念在2017年就很熱了。
什么叫超融合?
準(zhǔn)確來說,超融合就是一張網(wǎng)絡(luò),通吃HPC高性能計(jì)算、存儲(chǔ)和一般業(yè)務(wù)等多種業(yè)務(wù)類型。處理器、存儲(chǔ)、通信,全部都是超融合管理的資源,大家平起平坐。
超融合不僅要在性能上滿足這些低時(shí)延、大帶寬的變態(tài)需求,還要有低成本,不能太貴,也不能太難維護(hù)。
未來,數(shù)據(jù)中心在整體網(wǎng)絡(luò)架構(gòu)上,就是葉脊網(wǎng)絡(luò)一條路走到黑(到底什么是葉脊網(wǎng)絡(luò)?)。路由交換調(diào)度上,SDN、IPv6、SRv6慢慢發(fā)展。微觀架構(gòu)上,RDMA技術(shù)發(fā)展,替換TCP/IP。物理層上,全光繼續(xù)發(fā)展,400G、800G、1.2T…
我個(gè)人臆測(cè),目前電層光層的混搭,最終會(huì)變成光的大一統(tǒng)。光通道到全光交叉之后,就是滲透到服務(wù)器內(nèi)部,服務(wù)器主板不再是普通PCB,而是光纖背板。芯片和芯片之間,全光通道。芯片內(nèi)部,搞不好也是光。
光通道是王道
路由調(diào)度上,以后都是AI的天下,網(wǎng)絡(luò)流量啊協(xié)議啊全部都是AI接管,不需要人為干預(yù)。大量的通信工程師下崗。
好了,關(guān)于數(shù)據(jù)中心通信網(wǎng)絡(luò)的介紹就是這么多。不知道大家這次有沒有看明白?
沒看明白的話,就再看一次。