易 波,張婷婷,王興偉,屈志豪,陳佳豪,張曉宇
1(東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,沈陽 110169) 2(中國(guó)電子科技集團(tuán)公司 第四十七研究所,沈陽 110000)
隨著網(wǎng)絡(luò)技術(shù)的不斷更新?lián)Q代,傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)由于缺乏靈活的資源調(diào)度以及適配機(jī)制已經(jīng)不能滿足當(dāng)前用戶對(duì)于現(xiàn)在網(wǎng)絡(luò)服務(wù)功能的需求.為解決這一挑戰(zhàn),網(wǎng)絡(luò)功能虛擬化(Network Function Virtualization,NFV)和軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)成為下一代網(wǎng)絡(luò)體系變革的關(guān)鍵技術(shù)[1].
NFV主要為設(shè)計(jì)、部署和管理網(wǎng)絡(luò)服務(wù)提供了一種新的方式,其核心思想是將網(wǎng)絡(luò)功能與其所依賴的專用硬件解耦,這意味著網(wǎng)絡(luò)功能可以作為普通的軟件實(shí)例分配給網(wǎng)絡(luò)運(yùn)營(yíng)商,從而提高了網(wǎng)絡(luò)服務(wù)的靈活性,降低了運(yùn)營(yíng)商的運(yùn)營(yíng)成本.根據(jù)ONF給出的定義,SDN是一種網(wǎng)絡(luò)控制與轉(zhuǎn)發(fā)解耦的新興的網(wǎng)絡(luò)結(jié)構(gòu),并且擁有直接可編程的特性[2].SDN的網(wǎng)絡(luò)可編程特性為NFV的實(shí)現(xiàn)提供了基礎(chǔ).隨著5G等技術(shù)的實(shí)現(xiàn)與推廣,NFV成為了緩解這些問題的解決方案之一[3].
以5G為例,服務(wù)功能鏈(Service Function Chaining,SFC)支持根據(jù)需求動(dòng)態(tài)靈活地分配網(wǎng)絡(luò)資源,從而為復(fù)雜的5G通信場(chǎng)景定制網(wǎng)絡(luò)切片.SFC是由NFV網(wǎng)絡(luò)中的一組虛擬網(wǎng)絡(luò)功能(Virtualized Network Function,VNF)按照一定的需求和依賴關(guān)系組合在一起的鏈,為用戶提供端到端的服務(wù)[4].因此,VNF的部署工作時(shí)基于SDN和NFV的虛擬化與可編程網(wǎng)絡(luò)的重點(diǎn).盡管如此,需要注意的是VNF部署的本質(zhì)仍然在于資源分配.VNF可以看作是不同的資源組合構(gòu)造的軟件,通過這種資源組合體的形式為上層應(yīng)用提供服務(wù).鑒于以上考慮,本文重點(diǎn)研究基于SDN和NFV的新型網(wǎng)絡(luò)結(jié)構(gòu)中的資源分配問題.一方面,考慮到物理資源的安全,本文在用戶請(qǐng)求和物理資源之間引入虛擬資源層.另一方面,為了進(jìn)一步提高資源的利用率,本文將問題進(jìn)一步細(xì)分為: 1)如何在物理資源和虛擬資源之間建立動(dòng)態(tài)映射關(guān)系來滿足用戶的需求;2)如何對(duì)物理資源進(jìn)行高效復(fù)用以提高資源利用率.
對(duì)于以上兩點(diǎn)挑戰(zhàn),本文的主旨在于將物理資源合理映射為虛擬資源以及將虛擬資源高效分配給VNF實(shí)例的同時(shí),引入復(fù)用的思想來增加資源的復(fù)用率以提高資源的利用率.其次,通過復(fù)用來增加網(wǎng)絡(luò)中容納SFC的數(shù)量,從而提高用戶滿意度.具體而言,本文設(shè)計(jì)了一種在線映射算法,并且將物理資源到虛擬資源的映射分為兩個(gè)階段:1)將物理資源映射到虛擬資源池中;2)將虛擬資源池中的資源分配給VNF實(shí)例.其中,資源復(fù)用發(fā)生在第2階段,這里資源復(fù)用包括資源層向上的復(fù)用和物理資源到虛擬資源池的復(fù)用.除此之外,隨著網(wǎng)絡(luò)中服務(wù)數(shù)量的不斷增加,必然會(huì)出現(xiàn)后續(xù)的VNF資源分配緊缺的情況.因此,要對(duì)已經(jīng)分配的網(wǎng)絡(luò)資源進(jìn)行調(diào)整,于是本文提出通過可伸縮的時(shí)間間隔來監(jiān)測(cè)網(wǎng)絡(luò)中資源的配置情況,從而避免網(wǎng)絡(luò)中過載的現(xiàn)象以及為復(fù)用機(jī)制提供決策依據(jù).
隨著NFV研究的深入,國(guó)內(nèi)外的研究人員更多的是針對(duì)VNF的映射機(jī)制的研究.目前的研究方向主要是由SFC構(gòu)成的轉(zhuǎn)發(fā)圖并且嵌入到物理網(wǎng)絡(luò)拓?fù)渲?主要的研究有如下的內(nèi)容:
以運(yùn)營(yíng)商的利益最大化為目標(biāo),文獻(xiàn)[5]引入了一個(gè)全面的系統(tǒng)模型,模型基于混合整數(shù)線性規(guī)劃,采用松弛法、重寫法和逐次凸逼近法來解決資源映射問題.綜合考慮了接入控制和VNF映射問題,確保以協(xié)調(diào)的方式作出接納和嵌入一組請(qǐng)求的決定[5].但是該文獻(xiàn)主要是針對(duì)VNF如何直接映射的問題,沒有考慮虛擬層的資源配置問題.文獻(xiàn)[6]提出了在多供應(yīng)商環(huán)境下NFV云計(jì)算和帶寬資源分配的算法.通過分配云計(jì)算基礎(chǔ)設(shè)施資源,供應(yīng)商根據(jù)分配額度收取不同的費(fèi)用.其在中型和大型網(wǎng)絡(luò)中的應(yīng)用已表明,在不考慮由所述基礎(chǔ)設(shè)施供應(yīng)商帶來的成本差異的前提下,與分配資源的算法相比較,它可以導(dǎo)致節(jié)省成本的高達(dá)65%[6].文獻(xiàn)[7]提出了在物理拓?fù)渲性黾游锢碣Y源的方法來應(yīng)對(duì)資源不足的情況,然后將擴(kuò)充后的網(wǎng)絡(luò)拓?fù)涑橄蟪烧麛?shù)線性規(guī)劃數(shù)學(xué)模型.主要關(guān)注VNF的映射和VNF鏈接問題,即確定虛擬網(wǎng)絡(luò)功能所需的數(shù)量和位置.在保證每個(gè)服務(wù)在延遲界限內(nèi)完成的同時(shí),通過最小化分配資源來最大化運(yùn)營(yíng)商的利益[7].但是物理資源是有限的,對(duì)于VNF的需求,不能無限制的擴(kuò)充底層物理資源.并且增加物理資源會(huì)增加運(yùn)營(yíng)商的成本,這與NFV網(wǎng)絡(luò)提出的初衷相矛盾.考慮到VNF的位置放置問題,文獻(xiàn)[8]提出了一個(gè)基于排隊(duì)論的系統(tǒng)模型,解決了關(guān)于VNF的跨物理主機(jī)的放置問題,給出了CPU資源共享VNF主機(jī)聯(lián)合分配資源的最優(yōu)決策方法[8].文獻(xiàn)提供了一個(gè)快速和高效的解決方法,可以得到近似最優(yōu)解的決策.然而,該方法主要針對(duì)單一資源的跨主機(jī)分配問題,沒有考慮多維度資源的分配問題.文獻(xiàn)[9]針對(duì)邊緣VNF如何放置的問題,提出了將VNF放置在分布式邊緣基礎(chǔ)設(shè)施上的方法,這樣可以最小化終端到終端的延遲.文獻(xiàn)同時(shí)提出了一個(gè)方法來動(dòng)態(tài)地重新選擇VNF放置的最佳位置,動(dòng)態(tài)位置調(diào)整機(jī)制減少了VNF的遷移,以不超過可被容忍的等待時(shí)間為目標(biāo),為服務(wù)和某些應(yīng)用程序提供了質(zhì)量保證[9].該方法與文獻(xiàn)[10]一樣,主要解決VNF放置的問題,對(duì)于具體的資源配置不做考慮.文獻(xiàn)[10]通過相似矩陣與依賴矩陣將VNF放置問題轉(zhuǎn)化為有權(quán)圖匹配問題,利用匈牙利算法來解決問題[10].該方法本質(zhì)上仍然是從上至下的映射方式,雖然加入了SFC組成算法,但是映射時(shí)仍以SFC組合成的轉(zhuǎn)發(fā)圖為映射單位.文獻(xiàn)[11]在映射機(jī)制中加入了平衡網(wǎng)絡(luò)負(fù)載的約束,增加了VNF復(fù)制機(jī)制.文獻(xiàn)比較了3種優(yōu)化方法,包括線性規(guī)劃(LP)模型,遺傳算法(GA)和隨機(jī)擬合布局算法(RFPA).文獻(xiàn)的研究結(jié)果表明,選擇最優(yōu)的VNF放置位置和增加VNF復(fù)制可以顯著改善負(fù)載均衡,該算法在大型網(wǎng)絡(luò)中也同樣適用[11].該算法提醒研究工作者在求資源利用率最大的同時(shí),也應(yīng)當(dāng)考慮負(fù)載均衡的問題,應(yīng)該切實(shí)貼合網(wǎng)絡(luò)實(shí)際的需求與條件.NFV與SDN相結(jié)合,文獻(xiàn)[12]設(shè)計(jì)了一種面向服務(wù)的中間件,它利用云和霧計(jì)算技術(shù),融合了軟件定義網(wǎng)絡(luò)和網(wǎng)絡(luò)功能虛擬化用于解決霧計(jì)算目前所擁有的問題[12].文獻(xiàn)[13]提出了一種軟件定義的控制方式,通過中央控制器管理存儲(chǔ)資源的虛擬化,它還設(shè)計(jì)了基于網(wǎng)絡(luò)的需求自動(dòng)擴(kuò)展網(wǎng)絡(luò)存儲(chǔ)資源的機(jī)制[13].
還有更多的研究工作在最優(yōu)化映射的基礎(chǔ)上加入新的質(zhì)量或性能約束,如文獻(xiàn)[14]加入了安全性的約束[14].文獻(xiàn)[15]研究了無線網(wǎng)絡(luò)中資源的映射問題[15].文獻(xiàn)[16]雖然針對(duì)網(wǎng)絡(luò)動(dòng)態(tài)變化的情況設(shè)計(jì)了SFC映射算法,但仍是一種離線算法[16].
綜上所述,主流的資源映射方法都以SFC或SFC組合而成的轉(zhuǎn)發(fā)圖作為映射單位,整體嵌入到物理網(wǎng)絡(luò)中,一但某一節(jié)點(diǎn)不符合嵌入要求,則整體嵌入失敗,并且,大部分的映射方式都是離線算法,都需要事先知道全部的網(wǎng)絡(luò)服務(wù).而實(shí)際網(wǎng)絡(luò)中的服務(wù)都是隨機(jī)動(dòng)態(tài)到達(dá)的,因此本文充分了考慮網(wǎng)絡(luò)服務(wù)動(dòng)態(tài)到達(dá)的情況.目前,在NFV領(lǐng)域內(nèi)的復(fù)用技術(shù)研究較少,需要借助通信領(lǐng)域的技術(shù)思想完成資源復(fù)用機(jī)制的設(shè)計(jì).
3.1 系統(tǒng)分析
在NFV的架構(gòu)中,NFVI中包括了底層的物理資源,和一種通用的虛擬化層,所有虛擬資源都放在一個(gè)統(tǒng)一共享的資源池中.因此本文的設(shè)計(jì)主要是將資源映射分為兩個(gè)階段,首先,先將底層的物理資源映射到虛擬資源層,即虛擬資源池中.然后,把虛擬資源池中的資源分配給VNF,并引入資源復(fù)用的思想,對(duì)物理資源進(jìn)行最大化的復(fù)用.復(fù)用可以增加資源的利用率,并盡可能的在網(wǎng)絡(luò)中容納更多的服務(wù).設(shè)計(jì)中的虛擬資源層首先可以對(duì)VNF和底層的物理資源做一個(gè)隔離,提高物理資源的安全性,避免直接訪問帶來的安全問題(如內(nèi)存溢出導(dǎo)致宕機(jī)),為底層的物理資源提供保護(hù);其次,對(duì)上層資源的配置與調(diào)動(dòng)提供了更高的靈活性,可以劃分更合理的資源粒度來進(jìn)行配置;最后,避免了直接訪問可能造成的物理資源的不穩(wěn)定性,直接的對(duì)底層資源的訪問也易使得資源混亂,不易管理,甚至使其崩潰.
在實(shí)際情況中,網(wǎng)絡(luò)需求是事先不知道的.它們會(huì)動(dòng)態(tài)的達(dá)到系統(tǒng),并且在網(wǎng)絡(luò)中停留任意一段時(shí)間.因此,設(shè)計(jì)的算法必須是在虛擬網(wǎng)絡(luò)功能需求到達(dá)時(shí)處理,而不是一次處理一組需求.另外,虛擬網(wǎng)絡(luò)功能需求會(huì)隨著時(shí)間而發(fā)生改變,因此,還需要考慮如何重組、重新映射和重新調(diào)度的問題.在NFV的VNF層,VNF通過虛擬鏈路的鏈接可以形成一個(gè)與底層物理拓?fù)洳煌奶摂M拓?fù)?在虛擬拓?fù)渲杏泻芏嗖煌愋偷腣NF,而底層的物理資源是有限的.充分合理的利用底層資源,才能為需求提供優(yōu)質(zhì)的服務(wù).并且通過一個(gè)在線算法動(dòng)態(tài)的嵌入SFC,能靈活的放置網(wǎng)絡(luò)功能,在保證QoS的同時(shí),也做到盡可能多的在物理節(jié)點(diǎn)上映射虛擬網(wǎng)絡(luò)功能.在充分發(fā)揮虛擬資源層優(yōu)勢(shì)的同時(shí),也考慮算法額外的開銷所帶來的延遲問題.
圖1 物理資源映射到虛擬資源Fig.1 Physicalresource map to virtualizedresource
本文所采用的復(fù)用方法是借鑒現(xiàn)有的復(fù)用思想,利用適當(dāng)?shù)膹?fù)用模型,配合算法對(duì)資源進(jìn)行復(fù)用.由于資源的映射過程是一個(gè)兩階段的映射過程,因此針對(duì)資源的復(fù)用也采用雙重復(fù)用的機(jī)制.資源復(fù)用不僅僅要考慮將一個(gè)單位的物理資源要映射成多少個(gè)單位的虛擬資源,同時(shí)也考慮虛擬資源與VNF之間的映射關(guān)系,進(jìn)而便于對(duì)虛擬資源利用率進(jìn)行優(yōu)化.復(fù)用的資源類型既包括節(jié)點(diǎn)資源,同時(shí)也包括鏈路資源.如圖1所示,一條端到端的服務(wù)功能鏈包含了5個(gè)VNF,底層物理網(wǎng)絡(luò)拓?fù)渲杏?個(gè)服務(wù)器節(jié)點(diǎn),不同服務(wù)器節(jié)點(diǎn)之間由帶寬資源連通.將物理資源劃分成多個(gè)相同或不同粒度的虛擬資源放置在虛擬資源池中,并且將虛擬資源池中的資源按照不同的需求分配給VNF.
3.2 系統(tǒng)模塊
本文針對(duì)資源的映射和復(fù)用設(shè)計(jì)的系統(tǒng)框架主要有3個(gè)模塊:資源初始化模塊、資源監(jiān)控模塊、資源動(dòng)態(tài)分配與調(diào)整模塊.圖2是文中研究的基于SDN和NFV的物理資源到虛擬資源映射和復(fù)用機(jī)制的系統(tǒng)框架設(shè)計(jì)圖.
圖2 系統(tǒng)框架設(shè)計(jì)圖Fig.2 System frame design drawing
從系統(tǒng)框架設(shè)計(jì)圖中可以看出,資源映射模塊包括資源初始化、虛擬資源配置和VNF放置.資源復(fù)用模塊包括可用資源搜索、虛擬拓?fù)涓暮唾Y源復(fù)用.資源監(jiān)控模塊計(jì)算資源的復(fù)用率,并且根據(jù)算法監(jiān)控測(cè)網(wǎng)絡(luò)中資源的使用情況,以及節(jié)點(diǎn)和鏈路負(fù)載情況.并且每個(gè)模塊之間相互依存、相互調(diào)用,模塊內(nèi)部的方法之間也相互調(diào)用.資源映射模塊主要是將物理資源(節(jié)點(diǎn)資源和鏈路資源)映射到虛擬資源池,再分配給VNF;資源復(fù)用模塊主要是在接續(xù)的網(wǎng)絡(luò)運(yùn)行中,根據(jù)網(wǎng)絡(luò)中資源的剩余情況和資源的監(jiān)控結(jié)果,調(diào)整資源的映射和資源的配置,并且修改虛擬拓?fù)?資源監(jiān)控模塊主要是避免網(wǎng)絡(luò)的擁塞和節(jié)點(diǎn)的過載,并且將監(jiān)測(cè)到的信息反饋給資源調(diào)整模塊.
3.3 系統(tǒng)流程
圖3是系統(tǒng)的總流程圖,隨著服務(wù)的不斷到達(dá),算法會(huì)根據(jù)網(wǎng)絡(luò)中已經(jīng)部署的VNF情況來判斷是否需要新增VNF實(shí)例.如果需要增加VNF實(shí)例,首先判斷虛擬資源池中的虛擬資源是否滿足新的VNF實(shí)例的需求,若不滿足則尋找還未映射的物理資源并將其映射到虛擬資源層,然后將虛擬資源配置給新增的VNF實(shí)例,同時(shí),在虛擬拓?fù)渲性黾庸?jié)點(diǎn)和鏈路,確保虛擬拓?fù)渑c實(shí)際情況保持一致性.如果不需要增加VNF實(shí)例,則服務(wù)正常運(yùn)行不經(jīng)過初始化階段.在網(wǎng)絡(luò)服務(wù)運(yùn)行時(shí),資源監(jiān)控模塊將持續(xù)運(yùn)行,并且計(jì)算資源復(fù)用率.當(dāng)資源復(fù)用率低于閾值時(shí),則進(jìn)行資源的復(fù)用操作.資源復(fù)用率的計(jì)算是一個(gè)循環(huán)過程,持續(xù)關(guān)注資源的復(fù)用情況.并且資源的復(fù)用操作是根據(jù)復(fù)用代價(jià)來抉擇的,當(dāng)資源復(fù)用造成的代價(jià)過高時(shí),則放棄資源的復(fù)用.不能一味的追求提供資源的復(fù)用率,因?yàn)樗惴ㄔ斐傻难舆t和其他花費(fèi)代價(jià)有可能使得網(wǎng)絡(luò)過載,或出現(xiàn)網(wǎng)絡(luò)延遲突增的情況,從而影響網(wǎng)絡(luò)的服務(wù)質(zhì)量.資源監(jiān)控模塊不僅僅用于檢測(cè)資源的復(fù)用率,同時(shí)對(duì)網(wǎng)絡(luò)中的節(jié)點(diǎn)和鏈路進(jìn)行檢測(cè),保證負(fù)載均衡.
圖3 系統(tǒng)流程圖Fig.3 System flow chart
4.1 資源監(jiān)控
4.1.1 資源復(fù)用率監(jiān)測(cè)
資源復(fù)用率監(jiān)測(cè)方法主要分為兩部分,分別是監(jiān)測(cè)時(shí)間間隔的計(jì)算方法和復(fù)用率的計(jì)算方法.資源復(fù)用率計(jì)算過程主要是通過廣度優(yōu)先遍歷的方法遍歷物理節(jié)點(diǎn),然后遍歷虛擬拓?fù)?在遍歷的過程中計(jì)算復(fù)用率.遍歷時(shí)在不同的物理節(jié)點(diǎn)處搜索虛擬資源池的對(duì)應(yīng)資源,將搜索到的結(jié)果作為條件遍歷虛擬拓?fù)?從而準(zhǔn)確計(jì)算資源的復(fù)用率.
1)監(jiān)測(cè)間隔計(jì)算
雖然通常會(huì)采用在固定時(shí)間間隔的方式進(jìn)行監(jiān)測(cè),但是本文未采用固定時(shí)間監(jiān)測(cè)的方式.本文考慮到網(wǎng)絡(luò)中的流量是一個(gè)動(dòng)態(tài)變化的過程,固定的時(shí)間間隔監(jiān)測(cè)方式可能不能適應(yīng)千變?nèi)f化的網(wǎng)絡(luò)流量.為了應(yīng)對(duì)網(wǎng)絡(luò)動(dòng)態(tài)變化的過程,本文設(shè)計(jì)了跟隨網(wǎng)絡(luò)中流量變化而變化的時(shí)間間隔方式.當(dāng)網(wǎng)絡(luò)中的流量增加時(shí),縮短時(shí)間間隔可以更敏感的檢測(cè)網(wǎng)絡(luò)中的變化,也能在網(wǎng)絡(luò)負(fù)載出現(xiàn)問題時(shí)第一時(shí)間發(fā)現(xiàn).但是設(shè)置了時(shí)間間隔的下限,不能極度的縮小時(shí)間間隔.過于頻繁的監(jiān)測(cè)增加資源開銷的同時(shí)也會(huì)為網(wǎng)絡(luò)帶來不小的壓力.當(dāng)網(wǎng)絡(luò)中的流量減少時(shí),會(huì)適當(dāng)?shù)难娱L(zhǎng)監(jiān)測(cè)的時(shí)間間隔,同時(shí)也會(huì)設(shè)置時(shí)間間隔的上限,避免過度的延長(zhǎng)時(shí)間而對(duì)網(wǎng)絡(luò)中資源的變化不敏感.
定義Tbase為初始監(jiān)測(cè)時(shí)間間隔,Tlast表示上一次設(shè)置的時(shí)間間隔,Tnext表示下一次監(jiān)測(cè)的時(shí)間間隔.在第一次監(jiān)測(cè)時(shí),有Tnext=Tlast=Tbase成立.flowlast表示上一次監(jiān)測(cè)時(shí)網(wǎng)絡(luò)中流量的數(shù)目,flownow表示現(xiàn)在網(wǎng)絡(luò)中流量的數(shù)目.α表示網(wǎng)絡(luò)中流量變化的幅度,若α為負(fù)數(shù)則表示網(wǎng)絡(luò)中的流量減少,α為正數(shù)表示網(wǎng)絡(luò)中的流量增加的計(jì)算如式(1)所示:
(1)
(2)
(3)
其中δ、a1、b1、a2、b2均為常數(shù).式(2)和式(3)分別表示網(wǎng)絡(luò)流量增加時(shí)下一次監(jiān)測(cè)的時(shí)間間隔和網(wǎng)絡(luò)流量減少時(shí)下一次監(jiān)測(cè)的時(shí)間間隔.顯然,當(dāng)流量增加時(shí)時(shí)間間隔會(huì)縮小,流量減少時(shí)時(shí)間間隔會(huì)增大.
2)資源復(fù)用率計(jì)算
(4)
(5)
(6)
(7)
本文使用傳統(tǒng)的加權(quán)方法計(jì)算單個(gè)節(jié)點(diǎn)上的物理資源的復(fù)用率和整體物理資源的復(fù)用率,分別如式(8)和式(9)所示.式(10)表示加權(quán)系數(shù)的權(quán)重和為1.
(8)
R=γRcpu+σRmemory
(9)
γ+σ=1
(10)
計(jì)算資源的復(fù)用率主要為資源的復(fù)用和資源的調(diào)整操作提供依據(jù).資源復(fù)用率監(jiān)測(cè)方法是資源監(jiān)測(cè)的一個(gè)部分,其他的監(jiān)測(cè)內(nèi)容將結(jié)合不同的操作進(jìn)行詳細(xì)介紹.全部的監(jiān)測(cè)內(nèi)容都采用統(tǒng)一的監(jiān)測(cè)時(shí)間間隔(如上述時(shí)間間隔),不同的監(jiān)測(cè)模塊為不同的資源操作服務(wù).雖然本文對(duì)鏈路也進(jìn)行了復(fù)用,但是通過算法人為提高鏈路上的資源復(fù)用會(huì)增加鏈路延遲,并且會(huì)對(duì)流量的路由產(chǎn)生影響.因此,計(jì)算鏈路資源復(fù)用率的意義并不明顯.
4.1.2 資源利用率監(jiān)測(cè)
資源利用率監(jiān)測(cè)方法通過遍歷物理拓?fù)?按照式(27)和式(28)計(jì)算每個(gè)節(jié)點(diǎn)CPU、內(nèi)存和存儲(chǔ)的利用率,并存儲(chǔ)在CPUArrayList、MemoryArrayList和StorageArrayList中.同時(shí),尋找并記錄使用頻率較低的VNF實(shí)例.根據(jù)VNF實(shí)例使用的頻率和VNF實(shí)例頻次來判定哪些VNF實(shí)例使用頻率低,當(dāng)VNF實(shí)例使用頻率低于c1(c1為常數(shù)),并且VNF實(shí)例的使用頻次排在升序排列的前1/3,則該VNF實(shí)例判定為低使用頻率,并將此VNF實(shí)例記錄在VNFresultArrayList中.這里同樣采用4.1.1節(jié)中介紹的監(jiān)測(cè)時(shí)間間隔.通過資源使用監(jiān)測(cè),最終將所需的信息存儲(chǔ)在CPUArrayList、MemoryArrayList、StorageArrayList和VNFresultArrayList中,為下文的資源復(fù)用方法提供數(shù)據(jù)支持與依據(jù).
4.2 資源映射
4.2.1 資源映射約
(11)
(12)
?ei∈E,?li∈L:bandwidthei≤Bandwidthlj
(13)
(14)
(15)
delayei=max(Delaylj,Delaylj+1,…,Delaylj+h)
(16)
從虛擬資源到VNF層,即將虛擬資源池中的資源分配給虛擬拓?fù)渲械腣NF,本文假設(shè)一個(gè)VNF為一個(gè)虛擬拓?fù)涔?jié)點(diǎn).式(17)表示虛擬拓?fù)渲械牡趈個(gè)VNF占用虛擬資源池中第i個(gè)虛擬計(jì)算資源,同理,式(18)表示虛擬拓?fù)渲械牡趈個(gè)VNF占用虛擬資源池中第i個(gè)虛擬內(nèi)存資源.對(duì)于虛擬鏈路到鏈路的映射中,式(19)表示虛擬拓?fù)渲械牡趈個(gè)VNF到第j+1個(gè)VNF之間的鏈路占用虛擬鏈路ei.
(17)
(18)
(19)
(20)
DelayT+DelayP (21) 其中,DelayT的計(jì)算方式由式(22)給出,DelayP的計(jì)算由式(23)給出,delayvi是虛擬節(jié)點(diǎn)的處理延遲. (22) (23) (24) (25) 4.2.2 資源映射流程 本文從物理資源到虛擬資源的映射過程分為兩個(gè)階段:物理資源到虛擬資源池和虛擬資源池到VNF.這兩階段映射過程均隨著網(wǎng)絡(luò)服務(wù)的到達(dá)而發(fā)生,因?yàn)楸疚牟捎玫氖窃诰€算法,所以不會(huì)提前知道網(wǎng)絡(luò)服務(wù)所需要的資源和網(wǎng)絡(luò)功能.當(dāng)網(wǎng)絡(luò)服務(wù)到達(dá)時(shí),已經(jīng)映射資源的VNF不能滿足服務(wù)所需時(shí),進(jìn)行初始化過程. 初始化過程主要是根據(jù)端到端服務(wù)的最短路徑來確定資源.本文使用k-最短路徑算法選取最短路徑.首先,計(jì)算符合服務(wù)約束的最短路徑、次短路徑和第三短路徑,優(yōu)先選取代價(jià)最小的路徑,當(dāng)出現(xiàn)特殊情況時(shí)選用次短路徑,以此類推,當(dāng)選取到第三短路徑依舊存在問題時(shí),選取最短路徑并進(jìn)行修改.為了增加資源的復(fù)用率和盡可能多的使用已經(jīng)映射的VNF實(shí)例,通過優(yōu)化最短路徑來滿足需求.然后,當(dāng)出現(xiàn)上述情況時(shí),則尋找該節(jié)點(diǎn)周圍一跳、兩跳和三條所能到達(dá)且滿足條件的節(jié)點(diǎn),計(jì)算所有滿足條件的節(jié)點(diǎn)到原有節(jié)點(diǎn)代價(jià),并選取最小代價(jià)節(jié)點(diǎn)作為代替節(jié)點(diǎn).代價(jià)的計(jì)算由式(26)給出.具體流程由算法1給出. (26) 算法1.資源映射 輸入:網(wǎng)絡(luò)服務(wù)SFC(包括SFC的兩個(gè)端點(diǎn)、SFC所需的延遲、SFC需要經(jīng)過的VNF的序列)、物理網(wǎng)絡(luò)拓?fù)洹⑻摂M網(wǎng)絡(luò)拓?fù)洹⑻摂M資源池資源列表 輸出:更新的虛擬資源池資源列表和虛擬網(wǎng)絡(luò)拓?fù)?/p> BEGIN 1.根據(jù)k-最短路徑算法求出SFC端到端前三短的路徑path1、path2和path3 2.resultPath(記錄可以使用的路徑結(jié)果 3.resultNode(記錄可以要部署VNF的節(jié)點(diǎn) 4.WHILE(i<3): 5. IF(pathi滿足SFC的需求): 6.resultPath=pathi 7.IF(resultPath≠Φ): 8. WHILE(node∈resultPath): 9. IF (∑λCPUni+βMemoryni+(1-λ-β)Storageni> ∑λCPUni+1+βMemoryni+1+(1-λ-β)Storageni+1): 10.resultNode=ni 11.FOR(j=0;j 12.IF(vnfj不在resultNode上): 13.根據(jù)VNF所需映射資源到虛擬資源池,并且更新虛擬資源池資源列表,將虛擬資源配置給VNF 14.ELSE 15.除去resultNode節(jié)點(diǎn)后執(zhí)行步驟7-9,再次尋找一個(gè)節(jié)點(diǎn)用于托管vnfj 16.ELSE 17.resultPath=path1 18.執(zhí)行步驟7-15,若出現(xiàn)其他情況,則選取resultNode周圍三跳以內(nèi)可以到達(dá)的節(jié)點(diǎn)作為備用,計(jì)算所有備用節(jié)點(diǎn)代價(jià),選擇代價(jià)最小作為代替. END 算法1主要是針對(duì)于資源的最初映射狀態(tài),隨著網(wǎng)絡(luò)服務(wù)的變化,調(diào)整模塊會(huì)對(duì)此前的映射結(jié)果進(jìn)行調(diào)整.在映射的過程中,盡量不將同類型的VNF實(shí)例放在一起,網(wǎng)絡(luò)服務(wù)所需的VNF在一個(gè)節(jié)點(diǎn)處都可以得到處理. 4.3.1 資源復(fù)用約束 (27) (28) 資源復(fù)用過程發(fā)生在資源映射過程的第2階段,即將虛擬資源池中的資源配置給VNF實(shí)例的過程.因此,資源復(fù)用當(dāng)虛擬資源池中的虛擬資源復(fù)用時(shí),盡量遵循以下3點(diǎn)原則: 1)相同類型的VNF實(shí)例不在虛擬拓?fù)涞娜詢?nèi)(包括三跳)同時(shí)出現(xiàn)兩次,這樣可以將盡可能多不同類型的VNF實(shí)例部署到相對(duì)集中的位置.因?yàn)榫W(wǎng)絡(luò)服務(wù)所需要的VNF實(shí)例是多種類型且不相同的,這樣也可以使更多的網(wǎng)絡(luò)服務(wù)共享VNF實(shí)例. 2)優(yōu)先對(duì)使用頻率低的VNF實(shí)例所占用的資源進(jìn)行復(fù)用.VNF實(shí)例的類型是多種多樣的,但是不是每一種類型的VNF都會(huì)被網(wǎng)絡(luò)服務(wù)所使用.有部分VNF只會(huì)在特定的服務(wù)請(qǐng)求到達(dá)時(shí)被使用,并且在網(wǎng)絡(luò)中只存在少量的實(shí)例. 3)優(yōu)先對(duì)資源量相對(duì)小的虛擬資源進(jìn)行復(fù)用.資源量較小的虛擬資源擁有較高的靈活性以及較好的補(bǔ)充性.在進(jìn)行資源復(fù)用的時(shí)候,小的資源能夠更好的與其他資源組合在一起,并且不會(huì)造成過度的冗余. 虛擬資源池中的虛擬資源是由物理資源映射而來,因此,對(duì)虛擬資源進(jìn)行復(fù)用即對(duì)物理資源進(jìn)行復(fù)用.并且對(duì)虛擬資源進(jìn)行操作的安全性比直接操作物理資源的安全性更高.對(duì)資源復(fù)用時(shí)需要依賴資源監(jiān)測(cè)模塊返回的數(shù)據(jù),通過對(duì)虛擬拓?fù)涞谋闅v可以獲取當(dāng)前已經(jīng)部署的VNF實(shí)例集合. 4.3.2 資源復(fù)用流程 資源的復(fù)用主要根據(jù)資源監(jiān)測(cè)模塊返回的數(shù)據(jù)進(jìn)行操作.復(fù)用最初是通信技術(shù)中的專業(yè)術(shù)語,如今在計(jì)算機(jī)領(lǐng)域中廣泛使用.本文所設(shè)計(jì)的資源復(fù)用方法借用時(shí)分復(fù)用思想,根據(jù)VNF實(shí)例需要使用的時(shí)間不同配置不同的資源,主要針對(duì)低頻率使用的VNF實(shí)例.當(dāng)網(wǎng)絡(luò)中沒有服務(wù)需要使用某些特定功能的VNF實(shí)例時(shí),關(guān)閉該VNF實(shí)例,即將分配給該實(shí)例的資源重新配置給周圍需要資源的實(shí)例.關(guān)閉該VNF實(shí)例并非卸載該實(shí)例,卸載該節(jié)點(diǎn)可能會(huì)造成部分?jǐn)?shù)據(jù)的丟失,因此僅關(guān)閉該VNF實(shí)例.在虛擬網(wǎng)絡(luò)拓?fù)渲腥源嬖谠揤NF實(shí)例,但是并不為其配置資源.當(dāng)有需要的網(wǎng)絡(luò)服務(wù)到達(dá)時(shí),仍可指定由該實(shí)例提供網(wǎng)絡(luò)功能.此時(shí),根據(jù)網(wǎng)絡(luò)服務(wù)的需求臨時(shí)調(diào)整網(wǎng)絡(luò)中的資源,使其滿足網(wǎng)絡(luò)服務(wù)需求. 資源復(fù)用率監(jiān)測(cè)模塊會(huì)按照指定的時(shí)間間隔監(jiān)測(cè)資源的復(fù)用率,當(dāng)物理節(jié)點(diǎn)的資源復(fù)用率低于閾值η(η為常數(shù))時(shí)進(jìn)行資源復(fù)用.當(dāng)物理節(jié)點(diǎn)的資源復(fù)用率低于閾值η,但是資源利用率已經(jīng)大于τ時(shí)(τ為常數(shù))則放棄資源復(fù)用過程.因?yàn)?再次對(duì)資源進(jìn)行復(fù)用操作會(huì)增加物理資源的壓力,影響已經(jīng)分配資源的使用效率,進(jìn)而影響網(wǎng)絡(luò)功能的處理能力,導(dǎo)致網(wǎng)絡(luò)服務(wù)質(zhì)量下降. 資源復(fù)用的流程如下: 1)通過4.1.2節(jié)資源利用率監(jiān)測(cè)方法獲取CPUArrayList、MemoryArrayList、StorageArrayList和VNFresultArrayList數(shù)據(jù). 2)當(dāng)?shù)趥€(gè)VNF實(shí)例屬于VNFresultArrayList時(shí),則有VNFresultArrayList[i],根據(jù)上述資源復(fù)用需要遵循的三原則,尋找該VNFresultArrayList[i]實(shí)例周圍三跳以內(nèi)的VNF實(shí)例并記錄,若存在VNF實(shí)例沒有網(wǎng)絡(luò)服務(wù)經(jīng)過,且該VNF實(shí)例所占用的資源滿足當(dāng)前所需,關(guān)閉該VNF實(shí)例,并且將該VNF實(shí)例資源配置給VNFresultArrayList[i]實(shí)例.如果找不到VNFresultArrayList[i]實(shí)例周圍三跳以內(nèi)的VNF實(shí)例,則尋找滿足要求的空閑虛擬資源并為VNFresultArrayList[i]實(shí)例配置.如果還是找不到滿足要求的空閑虛擬資源并為VNFresultArrayList[i]實(shí)例配置,則尋找未映射物理資源進(jìn)行資源映射并為VNFresultArrayList[i]實(shí)例配置. 3)遍歷虛擬資源池中的資源序列,并根據(jù)式(4)-式(9)計(jì)算出相應(yīng)的資源復(fù)用率,如果TypeArrayList[i]的復(fù)用率小于η且TypeArrayList[i]的利用率小于τ,則分析資源池資源使用情況,將始終被占用的資源設(shè)為固定資源,轉(zhuǎn)為固定的VNF實(shí)例服務(wù).將不會(huì)被始終占用的資源按照不同的使用時(shí)間組合,使同一資源在不同時(shí)間被不同VNF實(shí)例占用. 4.4.1 資源調(diào)整 資源調(diào)整過程主要避免網(wǎng)絡(luò)中出現(xiàn)擁塞的情況,其次是針對(duì)初始化資源映射不合理情況的修正.由于映射過程是一個(gè)在線算法,隨機(jī)到達(dá)網(wǎng)絡(luò)的網(wǎng)絡(luò)服務(wù)請(qǐng)求可能是常用的也可能是不常用的.隨著資源的映射,網(wǎng)絡(luò)中同種類型VNF實(shí)例的數(shù)量會(huì)遠(yuǎn)超實(shí)際所需的數(shù)量,因此,需要及時(shí)對(duì)網(wǎng)絡(luò)中已經(jīng)映射的資源進(jìn)行調(diào)整. 4.4.2 資源調(diào)整約束 (29) (30) 4.4.3 資源調(diào)整流程 資源的映射情況不是一成不變的,因?yàn)榈竭_(dá)網(wǎng)絡(luò)的服務(wù)可能是發(fā)生頻率相對(duì)比較高的,或者是少數(shù)情況下才會(huì)到達(dá)的網(wǎng)絡(luò)服務(wù).為了適應(yīng)流量的變化資源也應(yīng)當(dāng)做出適當(dāng)?shù)恼{(diào)整.當(dāng)網(wǎng)絡(luò)中VNF實(shí)例的排隊(duì)延遲過高(>A1),或處理能力過低(>A2),或兩種情況加權(quán)之后結(jié)果仍大于閾值A(chǔ)3時(shí),則認(rèn)為VNF實(shí)例出現(xiàn)擁塞情況,如式(32)所示.其中,A1、A2、A3均為常數(shù),權(quán)重ξ與權(quán)重ζ和為一.本文通過增加過載實(shí)例的資源配置和遷移的方式來解決過載問題.VNF遷移需要的付出更大的代價(jià),因此在解決過載問題時(shí)優(yōu)先考慮增加資源,沒有可增加的資源時(shí)進(jìn)行遷移操作.具體流程如下: 1)遍歷虛擬資源池中尋找未被占用且符合需求的虛擬資源,如果未找到所需的虛擬資源,則尋找VNF實(shí)例托管節(jié)點(diǎn)未映射的物理資源按需映射到虛擬資源池; 2)為過載VNF實(shí)例配置資源.若物理資源與虛擬資源均不能滿足需求時(shí),尋找VNF實(shí)例托管節(jié)點(diǎn)三跳以內(nèi)滿足需求的節(jié)點(diǎn),實(shí)例同類型VNF并配置資源.過載VNF實(shí)例上仍然有服務(wù)在運(yùn)行,因此保留舊VNF實(shí)例運(yùn)行已經(jīng)到達(dá)的服務(wù),后續(xù)的服務(wù)都將由新實(shí)例的同類型VNF執(zhí)行.當(dāng)舊VNF實(shí)例處理完所有到達(dá)的服務(wù)時(shí),將數(shù)據(jù)遷移至新的實(shí)例并卸載釋放資源. (31) (32) (33) 本文仿真實(shí)驗(yàn)利用JAVA開發(fā)語言搭建網(wǎng)絡(luò)仿真環(huán)境,通過離散事件模擬器完成對(duì)網(wǎng)絡(luò)環(huán)境的仿真,使用IntelliJ IDEA集成開發(fā)工具完成設(shè)計(jì)各個(gè)模塊的功能,并且在PyCharm開發(fā)環(huán)境中利用Python語言進(jìn)行數(shù)據(jù)分析.運(yùn)行在Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz、16GB內(nèi)存Windows 10系統(tǒng)的PC機(jī)上. 5.2.1 實(shí)驗(yàn)拓?fù)?/p> 本文選用了大小不同的兩種拓?fù)浣Y(jié)構(gòu)進(jìn)行實(shí)驗(yàn),小拓?fù)渲笓碛芯W(wǎng)絡(luò)節(jié)點(diǎn)數(shù)和鏈路數(shù)少,大拓?fù)涫侵笓碛芯W(wǎng)絡(luò)節(jié)點(diǎn)數(shù)和鏈路數(shù)多.小拓?fù)溥x用的是擁有11個(gè)節(jié)點(diǎn),14條鏈路的Abilene拓?fù)浣Y(jié)構(gòu).大拓?fù)溥x用的是擁有30個(gè)物理節(jié)點(diǎn)和57條鏈路的Chinanet網(wǎng)絡(luò)拓?fù)? 5.2.2 其他參數(shù)設(shè)置 本文所需的詳細(xì)參數(shù)設(shè)置如表1所示. 為了驗(yàn)證本文設(shè)計(jì)的物理資源到虛擬資源映射和復(fù)用機(jī)制,對(duì)網(wǎng)絡(luò)服務(wù)的數(shù)量分別使用50條、100條、200條、500條和1000條進(jìn)行實(shí)驗(yàn),并且允許網(wǎng)絡(luò)服務(wù)同時(shí)到達(dá).由于網(wǎng)絡(luò)服務(wù)是隨機(jī)生成的,因此需要控制不同網(wǎng)絡(luò)服務(wù)生成的概率,保證網(wǎng)絡(luò)中確實(shí)有部分VNF是常用的類型. 表1 實(shí)驗(yàn)參數(shù)Table 1 Experimental parameters 本文還給出了仿真實(shí)驗(yàn)中關(guān)鍵的虛擬資源粒度的參數(shù):VNF類型數(shù)量的值為15;每條網(wǎng)絡(luò)服務(wù)中所需VNF的數(shù)量范圍為2~5;單個(gè)VNF實(shí)例所需的計(jì)算資源(核數(shù))的范圍為1~5;單個(gè)VNF實(shí)例所需的內(nèi)存資源的范圍為10~40. 本文假設(shè)每條網(wǎng)絡(luò)服務(wù)包含2~5個(gè)VNF,每一個(gè)VNF實(shí)例需要1~5個(gè)計(jì)算資源(核)和10~40個(gè)內(nèi)存資源,具體數(shù)值根據(jù)VNF的類型確定.單個(gè)物理節(jié)點(diǎn)上擁有20~50個(gè)計(jì)算資源(核)和100~300個(gè)內(nèi)存資源,具體數(shù)值根據(jù)物理節(jié)點(diǎn)的級(jí)別確定. 5.3.1 資源映射實(shí)驗(yàn)結(jié)果分析 本文選用最短路徑啟發(fā)式(Shortest Path Heuristic,SPH)算法作為資源映射對(duì)比算法,本文設(shè)計(jì)的映射算法命名為ODRM.本文分別選用50、200、500、1000條網(wǎng)絡(luò)服務(wù)進(jìn)行多次實(shí)驗(yàn). 如圖4(a)所示為在Abilene拓?fù)湎虏煌W(wǎng)絡(luò)服務(wù)數(shù)量平均延遲的對(duì)比,網(wǎng)絡(luò)服務(wù)數(shù)量分別為:50、200、500、1000.僅在50條網(wǎng)絡(luò)服務(wù)時(shí),ODRM算法的平均延遲比SPH算法的平均延遲高;當(dāng)網(wǎng)絡(luò)服務(wù)數(shù)量增加到200條時(shí),兩種算法的平均延遲基本持平;在500條和1000條網(wǎng)絡(luò)服務(wù)數(shù)量的情況下ODRM算法的延遲明顯好于SPH算法.在小網(wǎng)絡(luò)拓?fù)湎?SPH算法為每條服務(wù)選擇的最短路徑很難出現(xiàn)很大差別,可選擇空間有限.而ODRM算法可以通過資源的合理配置,增大VNF的處理能力,在有限的物理資源空間,發(fā)揮物理資源的最大利用率. 圖4 不同網(wǎng)絡(luò)服務(wù)數(shù)量平均延遲Fig.4 Average delay by number of network services 如圖4(b)所示為Chinanet拓?fù)浣Y(jié)構(gòu)下不同網(wǎng)絡(luò)服務(wù)數(shù)量平均延遲的對(duì)比.無論在何種網(wǎng)絡(luò)服務(wù)數(shù)量的情況下,SPH算法的平均延遲均明顯低于ODRM算法的平均延遲.在大網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下,SPH算法在路徑上可以獲得更多的選擇,ODRM算法資源調(diào)整的過程會(huì)變長(zhǎng),并且在調(diào)整過程中,部分服務(wù)會(huì)被暫停且存在VNF遷移現(xiàn)象,同時(shí)資源調(diào)整過程中資源變化會(huì)帶來VNF處理能力上的變化,因此會(huì)造成平均延遲比SPH算法平均大的結(jié)果.增加資源的復(fù)用率和動(dòng)態(tài)調(diào)整的過程必然會(huì)出現(xiàn)延遲增加的代價(jià).與節(jié)點(diǎn)數(shù)量少的小拓?fù)浣Y(jié)構(gòu)相比,擁有更多節(jié)點(diǎn)數(shù)量的大拓?fù)湔w平均延遲較小.但是,隨著網(wǎng)絡(luò)服務(wù)數(shù)量的增加這種差距也在縮小. 圖5 同時(shí)容納網(wǎng)絡(luò)服務(wù)的數(shù)量Fig.5 Number of network services accommodated 如圖5所示為不同網(wǎng)絡(luò)服務(wù)數(shù)量情況下網(wǎng)絡(luò)中同時(shí)容納網(wǎng)絡(luò)服務(wù)的數(shù)量.網(wǎng)絡(luò)同時(shí)能容納的網(wǎng)絡(luò)服務(wù)數(shù)量與進(jìn)入網(wǎng)絡(luò)服務(wù)的總量無關(guān),僅在網(wǎng)絡(luò)服務(wù)總數(shù)量為50條時(shí)所能容納的服務(wù)數(shù)量較少.ODRM算法同時(shí)能容納的網(wǎng)絡(luò)服務(wù)數(shù)量約為SPH算法的2倍.ODRM算法通過資源調(diào)整可以為VNF分配更合理的資源,并且,通過資源調(diào)整可以在網(wǎng)絡(luò)中部署更多的VNF實(shí)例,從而增加網(wǎng)絡(luò)服務(wù)的容納量.網(wǎng)絡(luò)中可容納的服務(wù)數(shù)量受到網(wǎng)絡(luò)服務(wù)的性能和質(zhì)量要求限制,因此對(duì)于恒定的物理拓?fù)淇扇菁{的服務(wù)數(shù)量不會(huì)改變.在網(wǎng)絡(luò)中容納更多的網(wǎng)絡(luò)服務(wù)可以提高網(wǎng)絡(luò)資源的利用率. 5.3.2 資源復(fù)用實(shí)驗(yàn)結(jié)果分析 本文選用虛擬機(jī)復(fù)用貪婪算法(Greedy on VM Reuse,GVR)作為資源復(fù)用對(duì)比算法,本文設(shè)計(jì)的復(fù)用算法命名為DRR.本文選用不同網(wǎng)絡(luò)服務(wù)數(shù)量下平均復(fù)用率和資源利用率作為性能評(píng)價(jià)指標(biāo). 圖6 不同服務(wù)數(shù)量下資源的復(fù)用率(Abilene拓?fù)?Fig.6 Resource multiplexing rate under different service quantities(Abilene topology) 如圖6所示為不同服務(wù)數(shù)量下資源的復(fù)用率(Abilene拓?fù)?.資源的復(fù)用率是隨著網(wǎng)絡(luò)服務(wù)數(shù)量的增加而增加,當(dāng)網(wǎng)絡(luò)服務(wù)數(shù)量增加到1000條時(shí),復(fù)用率增加比較明顯.說明網(wǎng)絡(luò)服務(wù)的數(shù)量越多,對(duì)于資源復(fù)用的結(jié)果越好.復(fù)用率的上限受條件約束無法一直增加,當(dāng)網(wǎng)絡(luò)中延遲過大時(shí)會(huì)適當(dāng)降低復(fù)用率,或者當(dāng)資源的利用率過大時(shí)適當(dāng)放棄資源復(fù)用.因此網(wǎng)絡(luò)服務(wù)的數(shù)量比較大時(shí),也沒有得到更大的資源復(fù)用率.適當(dāng)?shù)膹?fù)用可以增加資源的利用率,提高網(wǎng)絡(luò)處理能力,但是過度增加資源利用率會(huì)導(dǎo)致網(wǎng)絡(luò)性能的降低. 圖7 不同服務(wù)數(shù)量達(dá)到最大復(fù)用率所需時(shí)間Fig.7 Time required to reach the maximum multiplexing rate for different service numbers 如圖7所示為不同服務(wù)數(shù)量達(dá)到最大復(fù)用率所需時(shí)間.對(duì)比算法GVR無論在多少網(wǎng)絡(luò)服務(wù)的數(shù)量下,所需的時(shí)間是恒定的.因?yàn)?GVR算法是一種靜態(tài)的針對(duì)虛擬機(jī)的復(fù)用機(jī)制,當(dāng)網(wǎng)絡(luò)中部署的虛擬機(jī)達(dá)到峰值時(shí)不再變化.GVR算法僅是在已經(jīng)部署的虛擬機(jī)上進(jìn)行復(fù)用.本文設(shè)計(jì)的DRR算法會(huì)隨著服務(wù)的增加而增加時(shí)間,因?yàn)镈RR算法采用動(dòng)態(tài)復(fù)用的機(jī)制,隨著網(wǎng)絡(luò)流量的變化而變化.因此需要更多的時(shí)間達(dá)到復(fù)用率的峰值. 本文從SDN和NFV技術(shù)對(duì)現(xiàn)代通信網(wǎng)絡(luò)的重要性出發(fā),針對(duì)充分發(fā)揮物理資源的效用,提高虛擬資源的利用率的問題,提出了一種基于SDN和NVF技術(shù)的在線資源映射方法并且受到通信中復(fù)用思想的啟發(fā)設(shè)計(jì)了一種在資源映射過程中對(duì)資源進(jìn)行復(fù)用的機(jī)制.從仿真結(jié)果來看,映射算法與對(duì)比實(shí)驗(yàn)相比雖然網(wǎng)絡(luò)的平均延遲略高,但是網(wǎng)絡(luò)的資源利用率有約一倍的提高,可以在網(wǎng)絡(luò)中容納更多的網(wǎng)絡(luò)服務(wù).復(fù)用算法與對(duì)比實(shí)驗(yàn)相比復(fù)用率增加了約20%,同映射算法一樣延遲有所增加.本文為通信網(wǎng)絡(luò)提高資源利用率提供了一個(gè)合理的解決方案.4.3 資源復(fù)用
4.4 資源優(yōu)化
5.1 仿真平臺(tái)
5.2 拓?fù)浼皡?shù)設(shè)置
5.3 實(shí)驗(yàn)結(jié)果