數(shù)據(jù)中心為我們提供了更加可靠的服務(wù),以各種性能的服務(wù)器為主,同時(shí)服務(wù)器商也在不斷的對(duì)技術(shù)方面進(jìn)行更新,在主機(jī)租用中服務(wù)器適配器也有了很大的發(fā)展。在最近幾年中,許多數(shù)據(jù)平面處理的實(shí)例都已經(jīng)得到了長足的發(fā)展,無論是在開源社區(qū)還是在數(shù)據(jù)中心運(yùn)營商內(nèi)部的商業(yè)部署。
服務(wù)器適配器在服務(wù)器中起到了很大的作用,那么有哪些關(guān)鍵的因素了?
關(guān)鍵因素1:處理器的多線程
流處理需要訪問內(nèi)存,諸如基于RAM的DDR3-或DDR4-。為了協(xié)助在CPU核心的處理,基于硬件的加速器處理重復(fù)或?qū)iT的功能,例如加密和散列。單線程處理,通過通用CPU(如標(biāo)準(zhǔn)的x86,MIPS和ARM內(nèi)核)、內(nèi)存和加速器存取延遲浪費(fèi)CPU周期。例如,訪問DDR3內(nèi)存需要幾百個(gè)CPU周期,而訪問硬件加速器可能需要更長的的周期,使CPU核心閑置無用,在這一延長期間有效性無用。對(duì)于典型的基于主機(jī)的數(shù)據(jù)平面處理任務(wù),這個(gè)問題往往會(huì)降低CPU的有效利用率約10-20%。軟件定制編碼技術(shù)可以填補(bǔ)延遲差距,但這些變化是費(fèi)時(shí)且相當(dāng)麻煩的,并且其減少了軟件的可移植性。
解決該問題的一個(gè)理想的辦法是實(shí)現(xiàn)高度多線程的處理核心。當(dāng)處理核心多線程(例如,每個(gè)核心八線程),處理器流水線可以始終執(zhí)行有用的指導(dǎo),而不會(huì)停滯或閑置。其結(jié)果是,較之單線程機(jī)器的存儲(chǔ)器或硬件加速器的訪問要求顯著,而在典型的基于主機(jī)聯(lián)網(wǎng)和新興NFV應(yīng)用程序的數(shù)據(jù)平面處理的情況下,多線程處理增益可以高達(dá)800%。
關(guān)鍵因素2:許多處理器核心優(yōu)于一些更快的核心
通用CPU通常是針對(duì)最高處理器時(shí)鐘速度以功率和面積為代價(jià)實(shí)施了優(yōu)化的。例如,超過15個(gè)階段的大型復(fù)雜管道,亂序執(zhí)行和分支預(yù)測能力在這樣的CPU中是常見的。如前面所解釋的,由于缺乏多線程,以減少內(nèi)存延遲的影響,也同樣需要大的高速緩存。當(dāng)這樣的通用的CPU核心被打包成一個(gè)單一的硅芯片,如在MIPS-或基于ARM的多核SoC,有效性能增益比包裝在相同的硅芯片的大量較小的處理核更低。換言之,在硅芯片使用更加優(yōu)化的多線程處理核心要比使用較少的具備很少或沒有線程和大型高速緩存的高性能通用CPU核心的數(shù)據(jù)平面處理更好。使用大型處理器內(nèi)核會(huì)有顯著的開銷,其價(jià)格和功耗在服務(wù)區(qū)適配器設(shè)計(jì)中已經(jīng)被設(shè)置,作為通用服務(wù)器用于計(jì)算節(jié)點(diǎn)顯示。
關(guān)鍵因素3:內(nèi)存和加速器的多線程
在數(shù)據(jù)密集的流處理,對(duì)于內(nèi)存和硬件加速器的有效訪問是相當(dāng)關(guān)鍵的,但該挑戰(zhàn)僅僅只是加劇了大量的流量和復(fù)雜的處理(如用于匹配和復(fù)雜操作的元組數(shù)目)。鑒于越來越多支持更多的用戶,租戶和應(yīng)用程序的需要,以及對(duì)于安全性和服務(wù)水平相關(guān)的嚴(yán)格監(jiān)管政策的要求,這樣的要求,必然會(huì)成為數(shù)據(jù)中心普遍的問題。雖然更快地訪問內(nèi)存是很重要的,但多線程訪問內(nèi)存更為重要。一個(gè)具備硬件加速器的多線程的內(nèi)存子系統(tǒng)可以確保避免處理核心停滯。這樣一個(gè)高效的設(shè)計(jì)的一個(gè)例子是使用多個(gè)具備高帶寬縱橫輸入SRAM內(nèi)存庫。采用專用的高性能緊耦合的硬件引擎執(zhí)行關(guān)鍵功能如原子、統(tǒng)計(jì)、查詢和負(fù)載平衡來訪問這種SRAM內(nèi)存庫,進(jìn)一步實(shí)現(xiàn)了加速。
關(guān)鍵因素4:高性能分布式網(wǎng)格構(gòu)造
以上介紹的多線程處理核心,硬件加速和多組存儲(chǔ)單元必須同步,提供高性能的同時(shí)避免停滯。在訪問共享資源時(shí),傳統(tǒng)的共享總線結(jié)構(gòu)受到帶寬飽和和負(fù)載的競爭問題的作用。這個(gè)問題可以通過在處理元件之間使用具備多比特分帶寬/對(duì)半帶寬 (bisection bandwidth)的一個(gè)有效的高性能分布式網(wǎng)格構(gòu)造來避免。這種分布式的網(wǎng)格構(gòu)造會(huì)避免沖突和在通用的基于CPU的SoC常見的共享總線結(jié)構(gòu)飽和的問題。
關(guān)鍵因素5:優(yōu)化基于主機(jī)的網(wǎng)絡(luò)的編程工具
雖然乍看之下,通用CPU內(nèi)核似乎很容易編程,例如,通過使用標(biāo)準(zhǔn)的基于C語言的編程工具,但當(dāng)試圖讓應(yīng)用程序并行及性能規(guī)模化的時(shí)候,其難度和復(fù)雜程度大幅增加。所以從這個(gè)意義上說,它們?nèi)狈?duì)于開發(fā)優(yōu)化的數(shù)據(jù)平面處理應(yīng)用程序良好的支持。當(dāng)編程的多線程處理核心時(shí),采用強(qiáng)大的、易于使用的、基于C語言的程序工具以支持并行編程環(huán)境,并在編程期間支持提供線程級(jí)可視化是相當(dāng)關(guān)鍵的。他們也應(yīng)該允許創(chuàng)建針對(duì)多線程操作優(yōu)化的數(shù)據(jù)平面處理程序。
除了基于C編程工具,正在支持高級(jí)編程語言,如P4[3]正成為可能,其能夠使說明和數(shù)據(jù)路徑的功能的代碼更簡單并且不那么耗時(shí)。使用開源的P4語言,設(shè)計(jì)人員可以編寫簡潔的程序,以靈活地定義匹配,操作處理,以快速部署新的協(xié)議,如新興的網(wǎng)絡(luò)覆蓋 。P4也是硬件無關(guān)的,所以它可以被重新定向到不同的技術(shù)和實(shí)現(xiàn)方式中,條件是它們支持P4的環(huán)境。
關(guān)鍵因素6:命中計(jì)算節(jié)點(diǎn)經(jīng)濟(jì)
智能服務(wù)器適配器正在不斷的以自然的方式發(fā)展,從低容量的特殊應(yīng)用程序開始,有望成為大容量的主流部署。采用多內(nèi)核SoC芯片的初始部署都發(fā)現(xiàn)了他們進(jìn)入設(shè)備和專用的服務(wù)器的方式,有時(shí)被稱為服務(wù)節(jié)點(diǎn)或網(wǎng)絡(luò)節(jié)點(diǎn)。在這樣的應(yīng)用程序中,一些情況下使用網(wǎng)絡(luò)處理器和FPGA。由于服務(wù)節(jié)點(diǎn)的部署量并沒有非常大,數(shù)據(jù)中心運(yùn)營商都愿意為數(shù)據(jù)平面處理的可編程服務(wù)器適配器支付溢價(jià)。
盡管基于主機(jī)的軟件定義網(wǎng)絡(luò)(SDN)和網(wǎng)絡(luò)功能的虛擬化(NFV)技術(shù)已經(jīng)成為數(shù)據(jù)中心應(yīng)用的主流,然而,對(duì)于智能服務(wù)器適配器在更高容量的計(jì)算節(jié)點(diǎn)的需求預(yù)計(jì)會(huì)大幅上升。這種情況將需要智能服務(wù)器適配器能夠較之早期服務(wù)節(jié)點(diǎn)部署提供更好的性價(jià)比。具體而言,這樣的適配器將不得不在今天部署的大多數(shù)服務(wù)器的25瓦的PCI Express總線封裝內(nèi)以線速運(yùn)行。最重要的是,他們必須有合理的價(jià)格,以支持計(jì)算節(jié)點(diǎn)服務(wù)器的容量經(jīng)濟(jì)。因此,在可編程服務(wù)器適配器的硅技術(shù)和數(shù)據(jù)平面處理架構(gòu)必須實(shí)現(xiàn)性能,規(guī)模性和經(jīng)濟(jì)性。上述從1至5的五大關(guān)鍵因素均要求滿足數(shù)據(jù)平面處理在25-, 40- and 50GbE帶寬的要求,同時(shí)命中數(shù)據(jù)中心運(yùn)營商們對(duì)于計(jì)算節(jié)點(diǎn)經(jīng)濟(jì)的預(yù)期。
關(guān)鍵因素7:為主流應(yīng)用做好準(zhǔn)備的軟件系統(tǒng)
除了滿足性能、功能、價(jià)格和功耗方面的要求,主流對(duì)于可編程的服務(wù)器適配器的采用將需要一個(gè)良好支持的軟件系統(tǒng)。具體來說,服務(wù)器操作系統(tǒng)內(nèi)核、用戶空間和虛擬交換機(jī)的網(wǎng)絡(luò)軟件堆棧必須支持安裝和運(yùn)行這樣的服務(wù)器適配器,可以卸載數(shù)據(jù)平面處理如虛擬網(wǎng)絡(luò)隧道和匹配相關(guān)流程處理操作。
其實(shí)在如今的市場中,也有一些主流的產(chǎn)品,用戶當(dāng)然是可以根據(jù)自身的需求來確定使用什么樣的產(chǎn)品,適配器也逐漸的滿足用戶的需求。