陳浩,楊芫,徐明偉,4,裴丹,尤藝霖
(1.清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100084;2.北京信息科學(xué)與技術(shù)國家研究中心,北京 100084;3.中關(guān)村實(shí)驗(yàn)室,北京 100083;4.清華大學(xué)網(wǎng)絡(luò)科學(xué)與網(wǎng)絡(luò)空間研究院,北京 100084)
隨著網(wǎng)絡(luò)功能虛擬化(NFV,network function virtualization)技術(shù)和虛擬網(wǎng)絡(luò)功能即服務(wù)(VNFaaS,virtual network function as a service)的興起[1-2],越來越多的公有云平臺(tái),如Amazon Web Services、Google Cloud、Azure、AliCloud 等開始提供服務(wù)功能鏈(SFC,service function chain)服務(wù)。SFC 通常由多個(gè)虛擬網(wǎng)絡(luò)功能(VNF,virtual network function)串聯(lián)組成,如防火墻、負(fù)載均衡器等。多個(gè)串聯(lián)的網(wǎng)絡(luò)功能共同為租戶的網(wǎng)絡(luò)提供安全和性能優(yōu)化等服務(wù)。過去,租戶通常采購硬件網(wǎng)絡(luò)功能在其本地網(wǎng)絡(luò)部署SFC。近年來,租戶為了節(jié)省資本支出(CAPEX,capital expenditure)和運(yùn)維成本(OPEX,operating expense),開始選擇將SFC外包給公有云。在外包的過程中,租戶向公有云提交SFC 請(qǐng)求,而公有云的SFC 編排部署系統(tǒng)負(fù)責(zé)在數(shù)據(jù)中心內(nèi)編排、部署這些SFC 請(qǐng)求。編排(又稱資源編排)是指在眾多功能基礎(chǔ)設(shè)施中選擇一部分設(shè)施來承載租戶提出的SFC 請(qǐng)求。具體而言,編排SFC 的過程包括:1) 計(jì)算SFC 中每個(gè)VNF 應(yīng)被部署于哪一臺(tái)功能基礎(chǔ)設(shè)施上(如服務(wù)器);2) 計(jì)算SFC 中相鄰的2 個(gè)VNF 之間的網(wǎng)絡(luò)轉(zhuǎn)發(fā)路徑。部署SFC 的過程包括:1)在相應(yīng)的功能基礎(chǔ)設(shè)施上啟動(dòng)VNF 進(jìn)程實(shí)例;2)下發(fā)流表實(shí)現(xiàn)SFC 建鏈[3]。
隨著租戶對(duì)個(gè)性化需求的提升和多元化終端的發(fā)展,多模態(tài)網(wǎng)絡(luò)[4]這一概念被提出。多模態(tài)網(wǎng)絡(luò)在數(shù)據(jù)層依托多種異構(gòu)的全維可定義功能基礎(chǔ)平臺(tái),借助控制層支持多模態(tài)尋址路由功能的控制器和服務(wù)層的“感知、決策、執(zhí)行”一體的管理系統(tǒng),滿足租戶專業(yè)化的需求。在多模態(tài)網(wǎng)絡(luò)中,數(shù)據(jù)中心作為重要的場(chǎng)景,其中的SFC 編排部署系統(tǒng)需要能夠結(jié)合上層租戶的需求和下層網(wǎng)絡(luò)的服務(wù)能力來管理網(wǎng)絡(luò)資源并承載業(yè)務(wù)。具體來說,多模態(tài)數(shù)據(jù)中心網(wǎng)絡(luò)中的SFC 編排部署系統(tǒng)面臨以下兩方面的問題。
首先,多模態(tài)網(wǎng)絡(luò)的服務(wù)層需要結(jié)合上層租戶的個(gè)性化需求實(shí)現(xiàn)SFC 編排部署。近幾年,租戶逐漸要求SFC 具有彈性擴(kuò)容能力以應(yīng)對(duì)流量的動(dòng)態(tài)變化,公有云需要對(duì)租戶的SFC 進(jìn)行擴(kuò)容編排部署,從而保證租戶的業(yè)務(wù)不受影響[5-6]。隨著租戶對(duì)服務(wù)質(zhì)量需求的提升,在未來多模態(tài)網(wǎng)絡(luò)中提供秒級(jí)的擴(kuò)容編排部署變得十分重要。隨著數(shù)據(jù)中心網(wǎng)絡(luò)規(guī)模的增加,一個(gè)中型數(shù)據(jù)中心已經(jīng)具備上萬臺(tái)服務(wù)器和上千臺(tái)交換機(jī),低性能的SFC 編排部署系統(tǒng)設(shè)計(jì)很容易導(dǎo)致擴(kuò)容編排部署時(shí)間過長,降低租戶的服務(wù)體驗(yàn)。
其次,多模態(tài)數(shù)據(jù)中心網(wǎng)絡(luò)存在異構(gòu)的功能基礎(chǔ)設(shè)施,如商用X86 平臺(tái)和基于Tofino 芯片的P4交換機(jī)[7]等,并且未來可能會(huì)加入新型功能基礎(chǔ)設(shè)施。多種異構(gòu)功能基礎(chǔ)設(shè)施加劇了數(shù)據(jù)中心的管理復(fù)雜程度,對(duì)SFC 編排部署系統(tǒng)的軟件設(shè)計(jì)提出了很大的挑戰(zhàn)。
綜上所述,支持多模態(tài)的數(shù)據(jù)中心網(wǎng)絡(luò)中的SFC 編排部署系統(tǒng)需要同時(shí)滿足以下需求。
1) 管理萬臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心,實(shí)現(xiàn)秒級(jí)的SFC 彈性擴(kuò)容編排部署。
2) 支持在異構(gòu)功能基礎(chǔ)設(shè)施上開展SFC 的統(tǒng)一編排和部署,其中異構(gòu)設(shè)施至少包括基于X86 平臺(tái)的服務(wù)器和基于可編程芯片的交換機(jī)。
如何在未來多模態(tài)的大規(guī)模數(shù)據(jù)中心網(wǎng)絡(luò)中滿足以上需求是SFC 編排部署系統(tǒng)需要面對(duì)的重要問題。
學(xué)術(shù)界已經(jīng)提出了一些SFC 編排部署系統(tǒng),如Stratos[8]、NFV-RT[9]、Apple[10]、Hyper[11]、MicroNF[12]。Stratos、Apple 和NFV-RT 的擴(kuò)容編排時(shí)間復(fù)雜度較高且不支持異構(gòu)SFC 的編排部署。Hyper 和MicroNF 能夠?qū)Ξ悩?gòu)設(shè)備進(jìn)行編排部署,但是它們不具備彈性擴(kuò)容編排部署能力。Daisy[13]是為千臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心設(shè)計(jì)的SFC 編排部署系統(tǒng),然而它的可擴(kuò)展性不足以勝任萬臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心。Daisy 采用的編排算法的計(jì)算時(shí)間與拓?fù)湟?guī)模近似且成正比,因此當(dāng)拓?fù)湟?guī)模較大時(shí),Daisy 的編排時(shí)間會(huì)超過1 min。例如,在1 536 臺(tái)服務(wù)器構(gòu)成的Leaf-Spine 數(shù)據(jù)中心網(wǎng)絡(luò)中,Daisy擴(kuò)容5 Tbit/s 的SFC 所需的編排時(shí)間達(dá)到了247 s。綜上所述,以上編排部署系統(tǒng)均無法滿足在萬臺(tái)服務(wù)器的數(shù)據(jù)中心網(wǎng)絡(luò)內(nèi)實(shí)現(xiàn)秒級(jí)擴(kuò)容編排部署這一個(gè)性化需求。
在多模態(tài)網(wǎng)絡(luò)中,異構(gòu)SFC 編排部署系統(tǒng)面臨的最大挑戰(zhàn)是高可擴(kuò)展性。具體而言,本文的目標(biāo)是在萬臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心中實(shí)現(xiàn)秒級(jí)的擴(kuò)容編排部署。為應(yīng)對(duì)這一挑戰(zhàn),可以利用數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的特點(diǎn)對(duì)其進(jìn)行分區(qū),將每次編排決策的區(qū)域限制在一個(gè)分區(qū)內(nèi)便可減少編排時(shí)間。進(jìn)一步地,多個(gè)分區(qū)的編排任務(wù)可以通過增加編排算法實(shí)例的方式實(shí)現(xiàn)并行的擴(kuò)容編排,進(jìn)一步減少SFC 的擴(kuò)容編排時(shí)間。
本文設(shè)計(jì)并實(shí)現(xiàn)了支持多模態(tài)網(wǎng)絡(luò)環(huán)境的可擴(kuò)展異構(gòu)服務(wù)功能鏈并行編排部署(SHOD,scalable heterogeneous SFC parallel orchestration and deployment)系統(tǒng)。SHOD 系統(tǒng)將數(shù)據(jù)中心劃分為多個(gè)不相交的分區(qū),避免分區(qū)不連續(xù)或多個(gè)分區(qū)重疊導(dǎo)致的SFC 編排失敗,從而保證SFC 編排部署的正確性。不同于已有的SFC 編排部署系統(tǒng)采用的單一編排器設(shè)計(jì)方案,SHOD 系統(tǒng)采用分區(qū)并行編排的思路,通過負(fù)載均衡的方法將不同的SFC 擴(kuò)容請(qǐng)求分配到不同的編排器實(shí)例,保證耗時(shí)最長的一個(gè)編排器實(shí)例的編排時(shí)間在秒級(jí)??陀^上,增加編排器數(shù)量必然會(huì)減少擴(kuò)容編排時(shí)間,然而過多的編排器實(shí)例會(huì)占用過多的計(jì)算存儲(chǔ)資源。為了最優(yōu)化編排器實(shí)例數(shù)量,SHOD 系統(tǒng)構(gòu)建了期望編排時(shí)間模型,根據(jù)該模型計(jì)算出滿足期望編排時(shí)間的最少編排器數(shù)量。此外,SHOD 系統(tǒng)還采用了中介者設(shè)計(jì)模式來提供對(duì)異構(gòu)SFC 的支持,實(shí)現(xiàn)了對(duì)基于X86 服務(wù)器、P4 可編程設(shè)備甚至新型多模態(tài)功能基礎(chǔ)設(shè)施的網(wǎng)絡(luò)功能的統(tǒng)一編排部署與建鏈。
本文的主要貢獻(xiàn)如下。
1) 不同于已有SFC 編排部署系統(tǒng)的單編排器設(shè)計(jì),本文提出了基于并行編排器設(shè)計(jì)的可擴(kuò)展SFC 編排部署系統(tǒng),可以支持萬臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心的秒級(jí)擴(kuò)容編排。
2) 不同于已有的異構(gòu)SFC 編排部署系統(tǒng),SHOD 系統(tǒng)采用了符合單一權(quán)職原則的中介者設(shè)計(jì)模式,使新型異構(gòu)功能基礎(chǔ)設(shè)施及其控制器可以靈活加入系統(tǒng),而不需要修改編排器。
3) 實(shí)現(xiàn)了SHOD 原型系統(tǒng),支持基于Fastclick的容器化VNF[14]和基于P4[15]可編程交換機(jī)的網(wǎng)絡(luò)功能,實(shí)驗(yàn)結(jié)果顯示,SHOD 系統(tǒng)可以實(shí)現(xiàn)秒級(jí)異構(gòu)SFC 編排部署。
近年來,學(xué)術(shù)界出現(xiàn)了很多關(guān)于SFC 編排部署系統(tǒng)的研究工作[8-13]。Stratos[8]是一個(gè)支持SFC 水平擴(kuò)展的SFC 編排部署系統(tǒng),其系統(tǒng)結(jié)構(gòu)可以分為轉(zhuǎn)發(fā)器控制器和資源管理器兩部分。轉(zhuǎn)發(fā)控制器負(fù)責(zé)向交換機(jī)下發(fā)流表并建立新的SFC。資源管理器包括SFC 資源瓶頸檢測(cè)器和水平擴(kuò)展模塊。當(dāng)檢測(cè)器檢測(cè)到服務(wù)器資源不足時(shí),Stratos 會(huì)啟動(dòng)新的VNF 實(shí)例;當(dāng)檢測(cè)到網(wǎng)絡(luò)帶寬不足時(shí),Stratos 會(huì)將SFC 遷移到網(wǎng)絡(luò)不擁塞的區(qū)域。Stratos 的平均編排速度大約為每秒67 條SFC,不足以滿足大規(guī)模數(shù)據(jù)中心內(nèi)秒級(jí)的編排需求。
NFV-RT[9]是為數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計(jì)的SFC 編排部署系統(tǒng),其系統(tǒng)結(jié)構(gòu)包括控制器和資源管理器兩部分。NFV-RT 對(duì)所有的SFC 請(qǐng)求進(jìn)行初始編排,編排過程分成3 個(gè)階段。首先,計(jì)算租戶的SFC 實(shí)例數(shù)量以滿足租戶的帶寬請(qǐng)求;然后,將租戶的所有SFC 分配到數(shù)據(jù)中心的一個(gè)分發(fā)點(diǎn)(PoD,point of delivery)中;最后,確定每個(gè)網(wǎng)絡(luò)功能實(shí)例部署的服務(wù)器。NFV-RT 不支持對(duì)可編程設(shè)備的網(wǎng)絡(luò)功能進(jìn)行擴(kuò)容編排,同時(shí)其單編排器的設(shè)計(jì)導(dǎo)致NFV-RT 缺乏在大規(guī)模拓?fù)湎聦?shí)現(xiàn)秒級(jí)擴(kuò)容編排部署的能力。
Apple[10]是為軟件定義網(wǎng)絡(luò)(SDN,software defined network)設(shè)計(jì)的SFC 編排部署系統(tǒng),由資源編排器和SDN 控制器組成。SDN 控制器包含動(dòng)態(tài)處理器和優(yōu)化引擎。動(dòng)態(tài)處理器負(fù)責(zé)檢測(cè)虛擬機(jī)的資源使用量是否超過閾值來判斷是否需要進(jìn)行SFC 擴(kuò)容。優(yōu)化引擎通過運(yùn)行求解器計(jì)算最優(yōu)的編排部署方案,然而其編排時(shí)間復(fù)雜度是非多項(xiàng)式的,無法滿足數(shù)據(jù)中心內(nèi)的快速彈性擴(kuò)容編排需求。
Hyper[11]是一個(gè)異構(gòu)SFC 編排部署系統(tǒng),由編排器、中介者、硬件功能管理器、軟件功能管理器和轉(zhuǎn)發(fā)策略實(shí)施器組成。Hyper 同樣采用了中介者來實(shí)現(xiàn)對(duì)不同的異構(gòu)設(shè)備的管理,但是其中介者同時(shí)負(fù)責(zé)網(wǎng)絡(luò)功能的編排部署和拓?fù)涫占?,不符合軟件工程中的單一?quán)職原則,造成系統(tǒng)過于僵化。同時(shí),Hyper 還將SFC 建鏈的功能劃分到編排器中,將網(wǎng)絡(luò)功能編排的功能劃分到中介者中,這種設(shè)計(jì)導(dǎo)致Hyper 對(duì)基于求解器的編排算法無法提供很好的支持,降低了Hyper 的應(yīng)用范圍。同時(shí),Hyper的單編排器設(shè)計(jì)無法支持大規(guī)模數(shù)據(jù)中心的秒級(jí)彈性擴(kuò)容編排。
MicroNF[12]是一種異構(gòu)SFC 建鏈系統(tǒng)。它通過微服務(wù)架構(gòu)來承載不同的分組處理模塊,通過消除SFC 中的重復(fù)模塊并采用可編程網(wǎng)卡降低了SFC的時(shí)延;同時(shí)提出了策略解析器屏蔽底層設(shè)備的異構(gòu)特性,減輕編排器的壓力。然而,MicroNF 并未對(duì)大規(guī)模的數(shù)據(jù)中心編排進(jìn)行設(shè)計(jì),導(dǎo)致其缺乏擴(kuò)展性。
Daisy[13]是一個(gè)高可擴(kuò)展的異構(gòu)SFC 編排部署系統(tǒng),支持對(duì)SFC 進(jìn)行水平擴(kuò)容和流量工程。Daisy提出了3 個(gè)算法實(shí)現(xiàn)SFC 的編排,分別是隨機(jī)分配算法、NetPack 算法和VNFSolver 算法。其中,NetPack 算法可以在較短的時(shí)間內(nèi)實(shí)現(xiàn)SFC 編排,然而在大規(guī)模的數(shù)據(jù)中心拓?fù)湎?,其編排時(shí)間依舊會(huì)超過1 min,不足以滿足未來多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)中心的秒級(jí)彈性擴(kuò)容編排需求。
SHOD 系統(tǒng)是一個(gè)可以應(yīng)用于多模態(tài)數(shù)據(jù)中心網(wǎng)絡(luò)中的高可擴(kuò)展異構(gòu)SFC 編排部署系統(tǒng)。SHOD系統(tǒng)的總體設(shè)計(jì)思想主要有以下兩點(diǎn)。1) 利用中介者設(shè)計(jì)模式實(shí)現(xiàn)服務(wù)層模塊對(duì)異構(gòu)控制器組的統(tǒng)一調(diào)用,并且按照單一權(quán)職原則對(duì)中介者進(jìn)行設(shè)計(jì),以提升系統(tǒng)各模塊的內(nèi)聚性。2) 利用分區(qū)并行編排系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)對(duì)大規(guī)模數(shù)據(jù)中心的秒級(jí)擴(kuò)容編排,以提高SHOD 的可擴(kuò)展性。
SHOD 總體結(jié)構(gòu)如圖1 所示。從整體上看,SHOD依照多模態(tài)智慧網(wǎng)絡(luò)的技術(shù)體系框架[4]而采用分層設(shè)計(jì),包括服務(wù)層模塊和控制器組兩部分。服務(wù)層模塊主要負(fù)責(zé)響應(yīng)租戶的SFC 請(qǐng)求,并針對(duì)數(shù)據(jù)中心的流量變化做出擴(kuò)容調(diào)整??刂破鹘M負(fù)責(zé)根據(jù)服務(wù)層模塊的編排結(jié)果,將SFC 部署到相應(yīng)的數(shù)據(jù)中心異構(gòu)功能基礎(chǔ)設(shè)施上。SHOD 系統(tǒng)結(jié)構(gòu)的創(chuàng)新點(diǎn)主要體現(xiàn)在服務(wù)層模塊的獨(dú)特設(shè)計(jì),具體如下。
圖1 SHOD 總體結(jié)構(gòu)
1) 不同于已有的SFC 編排部署系統(tǒng),SHOD系統(tǒng)采用了多編排器的設(shè)計(jì),通過編排請(qǐng)求預(yù)處理器對(duì)編排請(qǐng)求的負(fù)載均衡功能實(shí)現(xiàn)了并行化編排,大大提高了擴(kuò)容編排速度。
2) 相對(duì)于僵化的傳統(tǒng)SFC 編排部署系統(tǒng),SHOD 系統(tǒng)創(chuàng)新性地采用單一權(quán)職原則的中介者設(shè)計(jì)模式,由此設(shè)計(jì)出了統(tǒng)一服務(wù)功能鏈部署模塊。該模塊定義了和控制器交互的統(tǒng)一應(yīng)用程序接口(API,application programming interface),屏蔽了異構(gòu)控制器的具體實(shí)現(xiàn),使SHOD 系統(tǒng)更容易添加未來新型的多模態(tài)網(wǎng)絡(luò)基礎(chǔ)設(shè)施控制器,大大增加了系統(tǒng)的靈活性。
SHOD 系統(tǒng)的服務(wù)層模塊包括控制面板、編排請(qǐng)求預(yù)處理器、編排管理數(shù)據(jù)庫、編排器、統(tǒng)一服務(wù)功能鏈部署模塊、測(cè)量模塊和擴(kuò)容模塊。
控制面板是SHOD 系統(tǒng)的Web 前端部分。租戶可以登錄控制面板頁面提交SFC 編排部署請(qǐng)求。租戶的SFC 請(qǐng)求內(nèi)容包括SFC 中的網(wǎng)絡(luò)功能種類、網(wǎng)絡(luò)功能之間的連接順序,以及SFC 的帶寬需求。隨后,租戶的SFC 編排部署請(qǐng)求會(huì)被發(fā)送到編排請(qǐng)求預(yù)處理器。
編排請(qǐng)求預(yù)處理器負(fù)責(zé)對(duì)所有租戶的SFC 擴(kuò)容編排部署請(qǐng)求進(jìn)行預(yù)處理。這一過程包括給每個(gè)租戶的請(qǐng)求分配一個(gè)通用唯一識(shí)別碼(UUID,universally unique identifier),將租戶的請(qǐng)求注冊(cè)到編排管理數(shù)據(jù)庫。為滿足未來多模態(tài)網(wǎng)絡(luò)中的秒級(jí)擴(kuò)容編排需求,編排請(qǐng)求預(yù)處理器還需要將所有租戶的請(qǐng)求負(fù)載均衡到各個(gè)編排器實(shí)例中,同時(shí)保證任意一個(gè)編排器的編排時(shí)間為秒級(jí)。
編排器負(fù)責(zé)對(duì)租戶的SFC 擴(kuò)容請(qǐng)求進(jìn)行編排。對(duì)于租戶請(qǐng)求的SFC,編排器將其視為邏輯SFC;然后,編排器根據(jù)租戶的邏輯SFC 帶寬需求計(jì)算對(duì)應(yīng)的SFC 實(shí)例數(shù)量,以及網(wǎng)絡(luò)功能實(shí)例和異構(gòu)功能基礎(chǔ)設(shè)施節(jié)點(diǎn)之間的映射關(guān)系;最后,編排器計(jì)算網(wǎng)絡(luò)功能實(shí)例之間的網(wǎng)絡(luò)轉(zhuǎn)發(fā)路徑。為了提升編排系統(tǒng)的可擴(kuò)展性,SHOD 系統(tǒng)采用了多編排器實(shí)例的設(shè)計(jì)。在完成對(duì)租戶SFC 的擴(kuò)容編排之后,編排器會(huì)將編排結(jié)果填入擴(kuò)容部署請(qǐng)求命令,并發(fā)送給統(tǒng)一服務(wù)功能鏈部署模塊。
統(tǒng)一服務(wù)功能鏈部署模塊是連接服務(wù)層模塊與控制器組的重要樞紐,專門為異構(gòu)功能基礎(chǔ)設(shè)施環(huán)境設(shè)計(jì)。由于不同種類功能基礎(chǔ)設(shè)施的部署接口不同,需要為每種功能基礎(chǔ)設(shè)施實(shí)現(xiàn)一個(gè)控制器,由此產(chǎn)生的多種異構(gòu)設(shè)備控制器給編排部署帶來了軟件系統(tǒng)靈活性方面的挑戰(zhàn)。考慮到未來多模態(tài)數(shù)據(jù)中心網(wǎng)絡(luò)會(huì)不斷地加入新型設(shè)備和更多第三方廠商的網(wǎng)絡(luò)功能,SFC 編排部署系統(tǒng)必須能夠靈活添加新型控制器。為了滿足這一需求,SHOD 系統(tǒng)采用中介者模式設(shè)計(jì)了統(tǒng)一服務(wù)功能鏈部署模塊,它連通了SHOD 系統(tǒng)的服務(wù)層模塊和控制器組。通過規(guī)定統(tǒng)一的SFC 部署接口,SHOD 系統(tǒng)實(shí)現(xiàn)了對(duì)底層設(shè)備和控制器的封裝,避免了為特定設(shè)備開發(fā)特定服務(wù)層模塊而帶來的系統(tǒng)僵化問題。
具體地,統(tǒng)一服務(wù)功能鏈部署模塊負(fù)責(zé)對(duì)來自編排器的SFC 擴(kuò)容部署請(qǐng)求進(jìn)行復(fù)制和分發(fā),即為每一個(gè)控制器復(fù)制一個(gè)SFC 擴(kuò)容部署請(qǐng)求命令,并將該命令發(fā)送到對(duì)應(yīng)的控制器上,包括P4 部署命令、包分類部署命令、轉(zhuǎn)發(fā)路徑部署命令、VNF 部署命令和服務(wù)器部署命令。SHOD 系統(tǒng)的統(tǒng)一服務(wù)功能鏈部署模塊是符合單一權(quán)職原則的,它僅負(fù)責(zé)請(qǐng)求命令的復(fù)制和分發(fā)。為實(shí)現(xiàn)對(duì)異構(gòu)設(shè)備控制器的抽象隔離,統(tǒng)一服務(wù)功能鏈部署模塊對(duì)控制器提供了統(tǒng)一的API,具體如下。
1) ADD_SFC(SFC),添加邏輯SFC。
2) ADD_SFCI(SFC_instance),添加SFC 實(shí)例。
3) DEL_SFCI(SFC_instance),刪除SFC 實(shí)例。
4) DEL_SFC(SFC),刪除邏輯SFC。
5) GET_SERVER_SET(),獲取服務(wù)器信息。
6) GET_TOPOLOGY(),獲取數(shù)據(jù)中心拓?fù)洹?/p>
7) GET_SFCI_STATE(SFC_instance),獲取SFC實(shí)例的流量和狀態(tài)信息。
隨著新型設(shè)備的出現(xiàn),SHOD 系統(tǒng)不需要對(duì)統(tǒng)一編排部署模塊進(jìn)行修改。根據(jù)軟件工程的依賴倒置原則,僅需要開發(fā)符合統(tǒng)一服務(wù)功能鏈部署模塊API 的設(shè)備控制器,即可實(shí)現(xiàn)對(duì)新型設(shè)備的控制,滿足了未來多模態(tài)數(shù)據(jù)中心網(wǎng)絡(luò)中靈活添加新型功能基礎(chǔ)設(shè)施的需求。
測(cè)量模塊負(fù)責(zé)收集數(shù)據(jù)中心的所有信息,包括異構(gòu)功能基礎(chǔ)設(shè)施(如服務(wù)器)的狀態(tài)信息、交換機(jī)組成的拓?fù)湫畔?、每條SFC 實(shí)例的狀態(tài)信息和流量信息。不同設(shè)備的信息收集功能由各個(gè)設(shè)備的控制器封裝并通過統(tǒng)一的接口提供。
擴(kuò)容模塊主要根據(jù)測(cè)量模塊測(cè)量到的SFC 流量信息,依據(jù)預(yù)先指定好的規(guī)則決策是否對(duì)租戶的SFC 進(jìn)行擴(kuò)容。SHOD 采用對(duì)網(wǎng)絡(luò)功能實(shí)例進(jìn)行性能建模的方法得到單一SFC 實(shí)例可以處理的最大流量。當(dāng)擴(kuò)容模塊檢測(cè)到某一條SFC 實(shí)例的輸入流量超過了其最大可承載流量時(shí),擴(kuò)容模塊會(huì)生成添加SFC 實(shí)例的請(qǐng)求并發(fā)送給編排請(qǐng)求預(yù)處理器。
并行SFC 編排是SHOD 系統(tǒng)為滿足未來多模態(tài)數(shù)據(jù)中心網(wǎng)絡(luò)的秒級(jí)編排需求而提出的核心設(shè)計(jì)。并行SFC 編排的基本思想是通過將數(shù)據(jù)中心進(jìn)行分區(qū)來實(shí)現(xiàn)分區(qū)間的并行編排。然而,數(shù)據(jù)中心拓?fù)洳⒉荒鼙浑S意劃分,原因如下。1) 錯(cuò)誤的劃分方式可能導(dǎo)致分區(qū)的不連通,進(jìn)而導(dǎo)致分區(qū)內(nèi)編排失?。?) 如果劃分的任意2 個(gè)分區(qū)之間有重疊,則會(huì)導(dǎo)致并行編排出錯(cuò),例如,2 條SFC 實(shí)例被2 個(gè)編排器實(shí)例編排到同一臺(tái)服務(wù)器上,但是該服務(wù)器的資源不足以承載這2 條SFC 實(shí)例。
為此,SHOD 系統(tǒng)采用了數(shù)據(jù)中心不相交分區(qū)的方法。不相交分區(qū)方法的主要流程為:1)以POD為最小粒度進(jìn)行分區(qū);2) 合并相鄰的POD 組成更大的分區(qū),直到滿足最大可接受的拓?fù)湟?guī)模。
相比于已有的SFC 編排部署系統(tǒng),SHOD 系統(tǒng)的并行編排計(jì)算速度更快,可以在萬臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心將期望擴(kuò)容編排時(shí)間降低至秒級(jí)。然而多個(gè)編排器實(shí)例會(huì)占用更多的CPU 和內(nèi)存資源。過多的額外CPU 和內(nèi)存消耗會(huì)影響SFC 編排部署系統(tǒng)中其他模塊的性能。為減少并行編排占用的資源,需確定滿足期望編排時(shí)間的最小編排器數(shù)量。
為此,SHOD 系統(tǒng)采用了基于數(shù)據(jù)驅(qū)動(dòng)的方法建立期望編排時(shí)間模型來確定最小的編排器數(shù)量。建模的總流程為:首先,分析編排算法,并給出編排算法的期望計(jì)算時(shí)間模型;然后,通過構(gòu)造各種SFC 擴(kuò)容編排部署請(qǐng)求,并記錄編排算法的計(jì)算時(shí)間,來實(shí)現(xiàn)對(duì)編排算法的期望計(jì)算時(shí)間的擬合。本文提出的基于數(shù)據(jù)驅(qū)動(dòng)的期望編排時(shí)間模型建立方法適用于任意類型的編排算法,對(duì)于如何提升編排算法本身的計(jì)算速度已經(jīng)超出本文工作的研究范圍。
本文以Daisy 使用的算法NetPack[13]為例闡述最小編排器數(shù)量的確定方法,該方法需要分析編排算法來建立期望編排時(shí)間模型。NetPack 算法可以分為兩層循環(huán)。
第一層循環(huán)根據(jù)所有的服務(wù)器構(gòu)建服務(wù)器集合進(jìn)行編排。在第一層循環(huán)內(nèi),針對(duì)每一個(gè)網(wǎng)絡(luò)功能,NetPack 會(huì)無放回地從服務(wù)器集合中隨機(jī)選擇一臺(tái)服務(wù)器。設(shè)Nse為數(shù)據(jù)中心服務(wù)器的數(shù)量,其中有臺(tái)服務(wù)器的資源不足以承載租戶請(qǐng)求的SFC,C為SFC 的長度。每當(dāng)NetPack 算法隨機(jī)選擇的服務(wù)器是臺(tái)資源不足的服務(wù)器之一時(shí),NetPack 會(huì)繼續(xù)重新隨機(jī)選擇,直到選擇到資源充足的服務(wù)器。根據(jù)這一過程,可以得出NetPack 算法隨機(jī)選擇服務(wù)器的期望選擇次數(shù)Ecnt為
其中,i表示第i次選擇到資源充足的服務(wù)器。NetPack 算法在i=1 時(shí)立即選擇到資源充足的服務(wù)器的概率為
則式(1)的上界為
由于數(shù)據(jù)中心的服務(wù)器利用率普遍較低,資源不足的服務(wù)器數(shù)量通常遠(yuǎn)小于總服務(wù)器數(shù)量Nse,即此時(shí)P(i=1) ≈ 1,則Ecnt≈ 1。
第二層循環(huán)中,NetPack 算法調(diào)用深度優(yōu)先搜索(SFC,depth first search)實(shí)現(xiàn)無向圖中的SFC 實(shí)例路徑計(jì)算。在滿足SFC 請(qǐng)求帶寬BW 遠(yuǎn)小于數(shù)據(jù)中心可用帶寬BWava的條件下,即BW ?BWava時(shí),NetPack 算法的第二層循環(huán)僅需要進(jìn)行一次復(fù)雜度為O(Nsw)的DFS,其中Nsw為數(shù)據(jù)中心交換機(jī)的數(shù)量。
綜上所述,在滿足條件BW ?BWava和的情況下,NetPack 計(jì)算一條SFC 實(shí)例的期望計(jì)算時(shí)間復(fù)雜度為O(NswC)。該期望計(jì)算時(shí)間復(fù)雜度和Daisy[13]的實(shí)驗(yàn)結(jié)果相符合:Daisy 的實(shí)驗(yàn)結(jié)果顯示,NetPack 算法的計(jì)算時(shí)間與拓?fù)湟?guī)模Nsw近似成正比。基于此計(jì)算時(shí)間復(fù)雜度,本文方法建立的擴(kuò)容編排時(shí)間模型E(t) 為
其中,kc是擬合系數(shù);M是需要擴(kuò)容的SFC 實(shí)例數(shù)量;To是編排系統(tǒng)的固有時(shí)間,即租戶的擴(kuò)容編排請(qǐng)求進(jìn)入編排系統(tǒng)到擴(kuò)容部署請(qǐng)求命令被發(fā)送到統(tǒng)一服務(wù)功能鏈部署模塊之間的時(shí)間差。
為了驗(yàn)證式(4)能否準(zhǔn)確描述SHOD系統(tǒng)的編排時(shí)間,本文通過比較模型計(jì)算出的期望編排時(shí)間與實(shí)際的編排時(shí)間平均值之間的均方誤差(MSE,mean square error)來驗(yàn)證其準(zhǔn)確性。本文分別在5 個(gè)不同規(guī)模的Fat-Tree 拓?fù)鋄16]下采集了NetPack 算法的編排時(shí)間數(shù)據(jù),其中POD 的數(shù)量K分別為20、24、28、32、36。在每個(gè)拓?fù)湎拢疚姆謩e測(cè)量了擴(kuò)容100 條、300 條、500 條、700 條、900 條SFC 實(shí)例的編排時(shí)間數(shù)據(jù),其中擴(kuò)容100 條、300 條、700 條、900 條的編排時(shí)間作為訓(xùn)練集,擴(kuò)容500 條的編排時(shí)間作為測(cè)試集。具體地,模型擬合系數(shù)、固有時(shí)間及均方誤差如表1 所示。
表1 模型擬合系數(shù)、固有時(shí)間及均方誤差
從表1 可以看出,本文所提模型的最大MSE僅為1.3 s。K=36 的Fat-Tree 拓?fù)湎碌哪P皖A(yù)測(cè)時(shí)間與真實(shí)編排時(shí)間的比較如圖2 所示。
圖2 模型預(yù)測(cè)時(shí)間與真實(shí)編排時(shí)間的比較
從圖2 中可以看出,本文模型預(yù)測(cè)時(shí)間和真實(shí)編排時(shí)間是吻合的,基于式(4)的模型可以較好地描述系統(tǒng)期望編排時(shí)間。
基于本文模型可以推導(dǎo)出編排器實(shí)例數(shù)量的計(jì)算式。假設(shè)期望在Ts 內(nèi)編排M條SFC 實(shí)例進(jìn)行擴(kuò)容,同時(shí)要保證每個(gè)編排器處理的SFC 實(shí)例數(shù)量相同。設(shè)編排器數(shù)量為n,則每個(gè)編排器的編排區(qū)域中的設(shè)備數(shù)量大約是總設(shè)備數(shù)量的處理的SFC 實(shí)例數(shù)量為總SFC 實(shí)例數(shù)量的則可以得到編排器實(shí)例數(shù)量應(yīng)滿足
取滿足式(5)的最小整數(shù)作為編排器的數(shù)量,在得到最小的編排器數(shù)量后,編排器預(yù)處理器會(huì)將M條SFC 實(shí)例分配到n個(gè)編排器實(shí)例中進(jìn)行并行編排。
為了實(shí)現(xiàn)對(duì)異構(gòu)設(shè)備的統(tǒng)一部署,SHOD 系統(tǒng)為每一種設(shè)備都提供了對(duì)應(yīng)的控制器。SHOD 系統(tǒng)按照基礎(chǔ)設(shè)施的種類將控制器劃分為5 種,分別是服務(wù)器控制器、包分類控制器、P4 控制器、VNF控制器和轉(zhuǎn)發(fā)控制器。服務(wù)器控制器負(fù)責(zé)收集每臺(tái)服務(wù)器的狀態(tài)信息和資源信息,并把全部信息發(fā)送到測(cè)量模塊。包分類控制器用于數(shù)據(jù)中心網(wǎng)關(guān)的流量分類,負(fù)責(zé)在網(wǎng)關(guān)下發(fā)規(guī)則,并將不同的SFC 流量進(jìn)行區(qū)分。P4 控制器和VNF 控制器是實(shí)現(xiàn)SFC部署的重要組件。編排器輸出的SFC 實(shí)例編排結(jié)果中,有一部分SFC 實(shí)例被編排到了P4 交換機(jī)上,這些網(wǎng)絡(luò)功能由P4 控制器負(fù)責(zé)部署。P4 控制器會(huì)在相應(yīng)的P4 交換機(jī)上下發(fā)網(wǎng)絡(luò)功能對(duì)應(yīng)的規(guī)則,如訪問控制列表(ACL,access control list)。另一部分SFC 實(shí)例被編排到基于X86 的商用服務(wù)器上,這些虛擬網(wǎng)絡(luò)功能由VNF 控制器部署。
網(wǎng)絡(luò)功能的部署時(shí)間不僅與功能基礎(chǔ)設(shè)施的種類有關(guān),也和網(wǎng)絡(luò)功能的數(shù)量有關(guān)。通常,在一臺(tái)基礎(chǔ)設(shè)施上部署的網(wǎng)絡(luò)功能數(shù)量越多,需要的部署時(shí)間就越長?;谶@一觀察可知,僅僅通過優(yōu)化部署模塊無法保證秒級(jí)的SFC 部署,還需要避免編排器在同一臺(tái)基礎(chǔ)設(shè)施上編排過多的網(wǎng)絡(luò)功能實(shí)例。為了實(shí)現(xiàn)秒級(jí)的異構(gòu)SFC 部署,針對(duì)任意一種功能基礎(chǔ)設(shè)施,需要得到其部署網(wǎng)絡(luò)功能的數(shù)量和部署時(shí)間之間的對(duì)應(yīng)關(guān)系。SHOD 系統(tǒng)通過實(shí)際測(cè)量的方法得到每臺(tái)功能基礎(chǔ)設(shè)施的部署網(wǎng)絡(luò)功能數(shù)量和相應(yīng)的部署時(shí)間。根據(jù)這一對(duì)應(yīng)關(guān)系,可以根據(jù)期望部署時(shí)間得到每臺(tái)功能基礎(chǔ)設(shè)施的最大可部署網(wǎng)絡(luò)功能數(shù)。通過將可部署網(wǎng)絡(luò)功能數(shù)量的限制條件添加于SHOD 系統(tǒng)的編排算法中,可以保證在期望時(shí)間內(nèi)完成SFC 的部署。以NetPack 算法為例,在第一層循環(huán)算法判斷一臺(tái)服務(wù)器資源是否充足。SHOD 系統(tǒng)在此處加入一個(gè)判斷語句來判斷一臺(tái)服務(wù)器的最大可部署網(wǎng)絡(luò)功能數(shù)量。如果已經(jīng)超過了該數(shù)量限制,則這一層循環(huán)不選擇該服務(wù)器。本文在實(shí)驗(yàn)部分展示了在測(cè)試床中測(cè)量的異構(gòu)基礎(chǔ)設(shè)施網(wǎng)絡(luò)功能部署時(shí)間與網(wǎng)絡(luò)功能數(shù)量之間的對(duì)應(yīng)關(guān)系。
在完成對(duì)網(wǎng)絡(luò)功能的部署之后,還需要轉(zhuǎn)發(fā)控制器實(shí)現(xiàn)SFC 的建鏈。目前,已經(jīng)有很多種SFC 建鏈方法??紤]到易部署性,SHOD 系統(tǒng)采用了網(wǎng)絡(luò)服務(wù)頭(NSH,network service header)[17]實(shí)現(xiàn)跨設(shè)備的建鏈,該方法支持多達(dá)224條SFC,可以滿足大規(guī)模數(shù)據(jù)中心的基本需求。轉(zhuǎn)發(fā)控制器將NSH 轉(zhuǎn)發(fā)規(guī)則下發(fā)到服務(wù)器所在的軟件交換機(jī)上實(shí)現(xiàn)NSH建鏈。
本文采用Python 語言實(shí)現(xiàn)了SHOD 原型系統(tǒng)。原型系統(tǒng)基于RabbitMQ 消息隊(duì)列作為服務(wù)層模塊以及控制器之間的通信機(jī)制。采用MySQL 作為編排管理數(shù)據(jù)庫。在控制層中,P4 控制器采用gRPC實(shí)現(xiàn)了對(duì)P4 的遠(yuǎn)程控制,轉(zhuǎn)發(fā)控制器同樣使用gRPC 實(shí)現(xiàn)了對(duì)基于BESS 的軟件交換機(jī)的控制,包分類控制器采用gRPC 對(duì)網(wǎng)關(guān)進(jìn)行管理,VNF 控制器則采用Docker API 實(shí)現(xiàn)在遠(yuǎn)程服務(wù)器上啟動(dòng)虛擬網(wǎng)絡(luò)功能容器。
本文實(shí)現(xiàn)了基于BESS 的軟件交換機(jī)用于SFC建鏈,還采用FastClick 實(shí)現(xiàn)了多種VNF,包括無狀態(tài)防火墻、負(fù)載均衡器、Monitor 等。此外,還實(shí)現(xiàn)了基于Tofino S9180-32X P4 交換機(jī)的無狀態(tài)防火墻用于部署ACL。
本文主要通過真實(shí)實(shí)驗(yàn)來驗(yàn)證SHOD 系統(tǒng)的可擴(kuò)展性,并通過小規(guī)模測(cè)試床評(píng)估了SHOD 系統(tǒng)的擴(kuò)容部署時(shí)間。真實(shí)實(shí)驗(yàn)中,SHOD 系統(tǒng)被部署于一臺(tái)Intel Silver 4210R 服務(wù)器上,編排管理數(shù)據(jù)庫載入了真實(shí)數(shù)據(jù)中心拓?fù)?,即常見的Fat-Tree[16]拓?fù)洹?duì)于擁有K個(gè)POD 的Fat-Tree 拓?fù)?,每個(gè)POD 由一層個(gè)機(jī)架交換機(jī)(ToR,top of rack)和個(gè)聚合交換機(jī)組成完全二分圖。此外,還有個(gè)核心交換機(jī),每個(gè)核心交換機(jī)分別與每個(gè)POD 中的一臺(tái)聚合交換機(jī)相連。為評(píng)估不同拓?fù)湟?guī)模下SHOD系統(tǒng)的彈性擴(kuò)容編排時(shí)間,本文分別在20 個(gè)、24 個(gè)、28 個(gè)、32 個(gè)和36 個(gè)POD 的Fat-Tree 拓?fù)湎逻M(jìn)行了實(shí)驗(yàn)。其中,K=36 的Fat-Tree 拓?fù)浒? 620 臺(tái)交換機(jī)和11 664 臺(tái)服務(wù)器。機(jī)架交換機(jī)和聚合交換機(jī)之間的鏈路帶寬設(shè)置為10 Gbit/s,聚合交換機(jī)和核心交換機(jī)之間的鏈路帶寬設(shè)置為10 Gbit/s,每臺(tái)核心交換機(jī)都可作為數(shù)據(jù)中心的網(wǎng)關(guān),它們負(fù)責(zé)與主干網(wǎng)的連接。租戶的流量由數(shù)據(jù)中心網(wǎng)關(guān)進(jìn)入數(shù)據(jù)中心網(wǎng)絡(luò)。租戶的SFC 請(qǐng)求帶寬大小設(shè)置為服從10~100 Mbit/s 分布的隨機(jī)變量。本文隨機(jī)生成了100 條SFC,并按照已有的研究[18-19]將生成的SFC長度范圍限制在2~7,SFC 中的網(wǎng)絡(luò)功能主要由ACL 防火墻、NAT、Monitor、WAN 優(yōu)化器、IDS、VPN 和負(fù)載均衡器組成。為了測(cè)量SHOD 的可擴(kuò)展性,本文測(cè)量了SHOD 對(duì)所有SFC 擴(kuò)容2~10 倍所需的擴(kuò)容編排時(shí)間,并設(shè)定擴(kuò)容編排期望時(shí)間T為25 s。本文通過SHOD 系統(tǒng)的消息接口向編排請(qǐng)求預(yù)處理器提交所有的SFC 擴(kuò)容編排請(qǐng)求,并在統(tǒng)一服務(wù)功能鏈部署模塊處記錄所有請(qǐng)求的編排時(shí)間。本文的對(duì)比方案包括已有的編排系統(tǒng)Daisy 和運(yùn)行NetSolver-ILP[20]算法的編排系統(tǒng)。
為進(jìn)一步考察SHOD 系統(tǒng)的擴(kuò)容部署時(shí)間,本文搭建了小規(guī)模測(cè)試床。該測(cè)試床由一臺(tái)商用交換機(jī)、一臺(tái)Tofino S9180-32X P4 交換機(jī)、一臺(tái)Intel E5-2603v4 服務(wù)器和一臺(tái)Intel Silver 4210R 服務(wù)器組成。其中,商用交換機(jī)用于連接P4 交換機(jī)和服務(wù)器的控制平面,P4 交換機(jī)用于部署ACL 網(wǎng)絡(luò)功能,第一臺(tái)服務(wù)器用于部署虛擬網(wǎng)絡(luò)功能,第二臺(tái)服務(wù)器用于運(yùn)行SHOD 系統(tǒng)。
除非在實(shí)驗(yàn)中有特殊說明,否則默認(rèn)的SFC 長度為7,初始SFC 實(shí)例數(shù)量為100,默認(rèn)需要擴(kuò)容900 條SFC 實(shí)例,拓?fù)錇镵=36 的Fat-Tree。實(shí)驗(yàn)一共進(jìn)行5 次,取平均值和標(biāo)準(zhǔn)差作為最終結(jié)果。
在測(cè)試床中,本文測(cè)量了異構(gòu)SFC 的擴(kuò)容部署時(shí)間。部署的SFC 包括一個(gè)基于P4 類型的無狀態(tài)防火墻以及一個(gè)基于VNF 類型的無狀態(tài)防火墻,擴(kuò)容SFC 實(shí)例數(shù)量分別為1~5 個(gè)。根據(jù)阿里云提供的防火墻實(shí)例的規(guī)則數(shù)量范圍,本文設(shè)置每個(gè)防火墻實(shí)例的ACL 規(guī)則為100 條。圖3 展示了在不同擴(kuò)容SFC 實(shí)例數(shù)量下,基于P4 類型和基于VNF類型的無狀態(tài)防火墻的擴(kuò)容部署時(shí)間。從圖3 可以看出,即使在擴(kuò)容SFC 實(shí)例數(shù)量為5 時(shí),SHOD 的SFC 擴(kuò)容部署依然可以在秒級(jí)時(shí)間內(nèi)完成。通過測(cè)量,本文發(fā)現(xiàn)基于P4 的無狀態(tài)防火墻的擴(kuò)容部署時(shí)間遠(yuǎn)遠(yuǎn)小于基于X86 的擴(kuò)容部署時(shí)間。P4 類型的網(wǎng)絡(luò)功能擴(kuò)容部署時(shí)間不超過1 s,而VNF 類型的網(wǎng)絡(luò)功能擴(kuò)容部署時(shí)間比較長,這是因?yàn)楸疚牟捎肈PDK 實(shí)現(xiàn)的VNF 類型的無狀態(tài)防火墻需要較長的大頁內(nèi)存初始化過程。
圖3 擴(kuò)容部署時(shí)間與擴(kuò)容SFC 實(shí)例數(shù)量的關(guān)系
除此以外,隨著擴(kuò)容SFC 實(shí)例數(shù)量的增加,擴(kuò)容部署時(shí)間也隨之增加。具體地,當(dāng)擴(kuò)容SFC 實(shí)例數(shù)量為1 時(shí),VNF 的擴(kuò)容部署時(shí)間僅需1 s,而當(dāng)擴(kuò)容SFC 實(shí)例數(shù)量大于或等于2 時(shí),每條SFC 實(shí)例的平均部署時(shí)間大約為2.3 s。造成這一現(xiàn)象的原因是本文所實(shí)現(xiàn)的VNF 控制器原型采用了docker API,而docker API 在單臺(tái)服務(wù)器上是串行調(diào)用的。當(dāng)僅需部署一條SFC 實(shí)例時(shí),docker API 可以立即返回部署成功的指令。而當(dāng)部署第二條及之后的SFC 實(shí)例時(shí),docker API 需要等待前一個(gè)SFC 實(shí)例部署完成,然后才能進(jìn)行下一個(gè)SFC 實(shí)例的部署。
在得到不同功能基礎(chǔ)設(shè)施的部署時(shí)間與SFC 實(shí)例數(shù)量之間的關(guān)系后,可以通過限制每臺(tái)設(shè)備的網(wǎng)絡(luò)功能實(shí)例可編排數(shù)量來保證秒級(jí)部署時(shí)間。例如,當(dāng)期望部署時(shí)間限制在11 s 內(nèi)時(shí),測(cè)試床平臺(tái)中的P4交換機(jī)的網(wǎng)絡(luò)功能實(shí)例部署數(shù)量最多為50 個(gè),而服務(wù)器的網(wǎng)絡(luò)功能實(shí)例部署數(shù)量最多為5 個(gè)。通過限制編排器在每臺(tái)設(shè)備的最大網(wǎng)絡(luò)功能編排數(shù)量,SHOD可以保證在任意一臺(tái)設(shè)備上部署SFC 的時(shí)間為秒級(jí)。
在測(cè)試床實(shí)驗(yàn)中,SHOD 系統(tǒng)和Daisy 系統(tǒng)的編排時(shí)間相差不大,均約為2 s。這是因?yàn)闇y(cè)試床的規(guī)模較小,無法體現(xiàn)出SHOD 系統(tǒng)的可擴(kuò)展性。為此,本文在大規(guī)模拓?fù)湎逻M(jìn)一步比較編排時(shí)間。
在測(cè)量大規(guī)模拓?fù)湎碌臄U(kuò)容編排時(shí)間之前,本文首先通過模型確定最小資源使用量的編排器數(shù)量。為確定最小的編排器數(shù)量,SHOD 系統(tǒng)針對(duì)每一個(gè)拓?fù)涠冀⒘艘粋€(gè)期望計(jì)算時(shí)間模型,具體擬合系數(shù)如表1 所示。SHOD 系統(tǒng)在不同POD 數(shù)量K下的最小編排器數(shù)量如表2 所示。
表2 最小編排器數(shù)量
在得到最小化資源使用量的編排器數(shù)量之后,本文測(cè)量了在不同拓?fù)湟?guī)模下,SFC 編排系統(tǒng)Daisy和SHOD 的SFC 擴(kuò)容編排時(shí)間,同時(shí)本文還比較了基于Gurobi 求解器的編排算法NetSolver-ILP[20],實(shí)驗(yàn)結(jié)果如圖4 所示。從圖4 可以看出,采用NetSolver-ILP 算法的編排時(shí)間是最長的,在最大的拓?fù)湎缕渚幣艜r(shí)間可達(dá)8 h,遠(yuǎn)超期望編排時(shí)間限制。NetSolver-ILP 的編排時(shí)間主要由求解器模型的構(gòu)建時(shí)間和模型的求解時(shí)間兩部分組成。由于在大規(guī)模拓?fù)湎?,最?yōu)化模型的限制條件和決策變量數(shù)非常大,導(dǎo)致求解器模型的構(gòu)建時(shí)間就已經(jīng)超出了秒級(jí),而模型的求解時(shí)間則比求解器模型的構(gòu)建時(shí)間更多。Daisy的SFC擴(kuò)容編排時(shí)間會(huì)隨著拓?fù)湟?guī)模的增長而急劇增長,在K=36 的Fat-Tree 拓?fù)湎?,Daisy 的擴(kuò)容編排時(shí)間達(dá)到了300 s,遠(yuǎn)超秒級(jí)擴(kuò)容編排的要求。與之相對(duì)應(yīng),SHOD 的擴(kuò)容編排時(shí)間并不會(huì)隨著拓?fù)湟?guī)模的增長而增加。在所有拓?fù)湎?,SHOD 的擴(kuò)容編排時(shí)間均小于25 s。具體地,按照拓?fù)鋸男〉酱蠓謩e是16 s、17 s、23 s、21 s 和24 s。SHOD 能夠?qū)⒕幣艜r(shí)間降低至秒級(jí)的原因在于其采用了并行編排的設(shè)計(jì),隨著拓?fù)湟?guī)模的增加,SHOD 會(huì)相應(yīng)地增加編排器實(shí)例的數(shù)量來降低擴(kuò)容編排時(shí)間。
圖4 不同拓?fù)湟?guī)模下的擴(kuò)容編排時(shí)間
本文還考察了不同擴(kuò)容SFC 實(shí)例數(shù)量下的擴(kuò)容編排時(shí)間,如圖5 所示?;谇蠼馄鞯木幣潘惴∟etSolver-ILP 的編排時(shí)間依舊遠(yuǎn)超分鐘級(jí)。隨著擴(kuò)容SFC 實(shí)例數(shù)量的增加,Daisy 的擴(kuò)容編排時(shí)間也會(huì)線性增加。這是因?yàn)镈aisy 采用的NetPack 編排算法的期望編排時(shí)間與需要擴(kuò)容的SFC 實(shí)例數(shù)量呈正比例關(guān)系。與Daisy 不同,SHOD 的擴(kuò)容編排時(shí)間可以保持在期望編排時(shí)間以內(nèi),這是因?yàn)镾HOD 可以通過增加編排器實(shí)例的方法降低編排時(shí)間,相比于單編排器設(shè)計(jì)的Daisy,SHOD 在大規(guī)模數(shù)據(jù)中心網(wǎng)絡(luò)中的可擴(kuò)展性更好。
圖5 不同擴(kuò)容SFC 實(shí)例數(shù)量下的擴(kuò)容編排時(shí)間
在小規(guī)模測(cè)試床實(shí)驗(yàn)中,SHOD 系統(tǒng)和Daisy系統(tǒng)的CPU 占用率和內(nèi)存占用率基本相同,大約為5%和90 MB。
在大規(guī)模拓?fù)湎拢瑸榱藢FC 擴(kuò)容編排時(shí)間降低至秒級(jí),SHOD 采用了多編排器設(shè)計(jì)。多個(gè)編排器會(huì)占用額外的計(jì)算存儲(chǔ)資源。本文評(píng)估了在不同拓?fù)湟?guī)模下,SHOD 的CPU 占用率和內(nèi)存利用量。
平均CPU 占用率如圖6 所示。從圖6 可以看出,隨著拓?fù)湟?guī)模的增加,NetSolver-ILP 的CPU 占用率基本保持在125%~150%,這是由于NetSolver-ILP使用的Gurobi 求解器會(huì)使用到多個(gè)核心并發(fā)求解優(yōu)化模型,因此其CPU 占用率會(huì)超過100%。Daisy 的CPU 占用率會(huì)隨著拓?fù)湟?guī)模的增加而逐漸接近100%,這是因?yàn)镈aisy 僅使用一個(gè)編排器運(yùn)行其NetPack 算法,因而其CPU 占用率不會(huì)超過100%。SHOD 的CPU 占用率雖然會(huì)隨著拓?fù)湟?guī)模的增加而緩慢增加,但是從整體上看SHOD 的CPU 占用率與其他對(duì)比方案都在同一數(shù)量級(jí)內(nèi),例如K=36 的Fat-Tree 拓?fù)湎拢琒HOD 的平均CPU 占用率相比于Daisy 僅提高了1.5 倍,相比于NetSolver-ILP 僅提高了70%。這是因?yàn)镾HOD 采用了數(shù)據(jù)驅(qū)動(dòng)的建模方式計(jì)算出了資源使用量最小化的編排器數(shù)量,使SHOD 的CPU 占用率和其他對(duì)比方案大致相同。
圖6 平均CPU 占用率
平均內(nèi)存資源使用量如圖7 所示。其中,在最小的拓?fù)湎?,NetSolver-ILP 使用了14.1 GB 內(nèi)存。在最大的拓?fù)湎?,其?nèi)存資源使用量最高可達(dá)到64.5 GB。NetSolver-ILP 使用大量?jī)?nèi)存的原因在于其求解器建模的優(yōu)化模型有大量的決策變量和限制條件。相比之下,采用NetPack 算法的Daisy 和SHOD 的平均內(nèi)存資源使用量最大僅約為860 MB,遠(yuǎn)小于NetSolver-ILP。而SHOD 的內(nèi)存資源使用量相比于Daisy 僅僅提高了3 倍,這對(duì)于當(dāng)今的大內(nèi)存商用服務(wù)器來說是完全可以接受的。
圖7 平均內(nèi)存資源使用量
本文為未來多模態(tài)網(wǎng)絡(luò)中的大規(guī)模復(fù)雜公有云提出了一種可擴(kuò)展的彈性異構(gòu)服務(wù)功能鏈編排部署系統(tǒng)。通過并行的編排器設(shè)計(jì),實(shí)現(xiàn)了對(duì)大規(guī)模網(wǎng)絡(luò)的彈性擴(kuò)容編排。通過符合單一權(quán)職原則的中介者設(shè)計(jì)模式,實(shí)現(xiàn)了對(duì)異構(gòu)網(wǎng)絡(luò)設(shè)備的統(tǒng)一編排部署和建鏈。實(shí)驗(yàn)結(jié)果表明,SHOD 系統(tǒng)可以在秒級(jí)完成對(duì)萬臺(tái)服務(wù)器規(guī)模的數(shù)據(jù)中心的服務(wù)功能鏈擴(kuò)容編排部署。