劉世芳,孫艷秋,張柯欣
(遼寧中醫(yī)藥大學(xué)信息工程學(xué)院,遼寧 沈陽 110847)
虛擬化網(wǎng)絡(luò)能夠滿足新興網(wǎng)絡(luò)服務(wù)需求,用戶在虛擬化網(wǎng)絡(luò)中,能夠部署特定的網(wǎng)絡(luò)服務(wù),如互聯(lián)網(wǎng)接入服務(wù)、移動(dòng)語音服務(wù)等[1]。而一個(gè)服務(wù)包含多個(gè)網(wǎng)絡(luò)功能,這些功能需要按照既定的邏輯順序,使承載服務(wù)的網(wǎng)絡(luò)流有序通過,因此,對虛擬化網(wǎng)絡(luò)的功能鏈進(jìn)行編排,將功能按照要求整合到序列中,為用戶提供穩(wěn)定的網(wǎng)絡(luò)服務(wù),具有重要意義[2]。
國外虛擬化網(wǎng)絡(luò)功能編排研究較為成熟,讓多個(gè)虛擬化網(wǎng)絡(luò),使用不同的網(wǎng)絡(luò)技術(shù)與架構(gòu),隔離網(wǎng)絡(luò)的數(shù)據(jù)平面和控制平面。在控制平面中,結(jié)合SDN技術(shù)對數(shù)據(jù)層業(yè)務(wù)流進(jìn)行靈活配置,將底層網(wǎng)絡(luò)抽象為多個(gè)邏輯隔離的虛擬網(wǎng)絡(luò),從網(wǎng)絡(luò)帶寬、設(shè)備CPU、拓?fù)洹⒘鞅眄?xiàng)等維度出發(fā),劃分并部署虛擬網(wǎng)絡(luò)資源。國內(nèi)虛擬化網(wǎng)絡(luò)功能的編排同樣取得了較大的進(jìn)展,使用OpenFlow協(xié)議和一種抽象機(jī)制對物理網(wǎng)絡(luò)進(jìn)行抽象處理,為互聯(lián)網(wǎng)用戶提供網(wǎng)絡(luò)拓?fù)洌诰W(wǎng)絡(luò)中透明地遷移虛擬節(jié)點(diǎn),為不同虛擬化網(wǎng)絡(luò)功能提供相應(yīng)的虛擬地址空間,在虛擬網(wǎng)絡(luò)和物理網(wǎng)絡(luò)之間,地址映射服務(wù)功能鏈,拼接不同基礎(chǔ)設(shè)施的虛擬資源,并使用額外的數(shù)據(jù)庫存儲(chǔ)功能地址映射的結(jié)果[3]。
雖然上述研究能夠在一定程度上滿足網(wǎng)絡(luò)服務(wù)需求,但是存在帶寬資源開銷較大、節(jié)點(diǎn)資源利用率較低、網(wǎng)絡(luò)服務(wù)響應(yīng)時(shí)間較長以及網(wǎng)絡(luò)服務(wù)接收率較低的問題,為此提出基于人工智能的虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排算法,部署網(wǎng)絡(luò)虛擬化環(huán)境,使功能編排由人工化向智能化轉(zhuǎn)變,實(shí)現(xiàn)高效穩(wěn)定的業(yè)務(wù)部署。
從網(wǎng)絡(luò)服務(wù)質(zhì)量出發(fā),設(shè)計(jì)虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排約束條件。將底層物理網(wǎng)絡(luò)看作一個(gè)有權(quán)無向的網(wǎng)絡(luò)拓?fù)鋱D,得到物理節(jié)點(diǎn)的集合和鏈路集合,忽略節(jié)點(diǎn)內(nèi)存與存儲(chǔ)等資源,將計(jì)算資源作為節(jié)點(diǎn)資源,將鏈路集合作為多帶寬資源[4]。明確虛擬化網(wǎng)絡(luò)功能鏈的動(dòng)態(tài)需求,引入需求向量概念,表示功能鏈的需求特征,定義公式為

(1)


(2)
其中,Cf為第f個(gè)網(wǎng)絡(luò)功能的資源容量;F為網(wǎng)絡(luò)功能類型集合。G的值越大,說明該功能類型對服務(wù)功能鏈越重要,應(yīng)優(yōu)先得到滿足[7]。按照式(2)的比例關(guān)系,確定不同功能類型的重要程度,進(jìn)而排序網(wǎng)絡(luò)功能的分配優(yōu)先級(jí)。按照順序?qū)W(wǎng)絡(luò)功能進(jìn)行分配,計(jì)算功能分配的第一個(gè)決策變量,當(dāng)功能分配到節(jié)點(diǎn)上,定義決策變量為1,未分配到節(jié)點(diǎn)上,則定義為0。當(dāng)功能鏈s分配第f個(gè)網(wǎng)絡(luò)功能時(shí),第一個(gè)決策變量公式表示為

(3)


(4)
其中,bs為服務(wù)功能鏈s端到端的帶寬資源。通過式(4),確定分配第f個(gè)網(wǎng)絡(luò)功能時(shí),給功能鏈s安排資源大小[9]。定義第三個(gè)決策變量,使第f個(gè)網(wǎng)絡(luò)功能與下一個(gè)網(wǎng)絡(luò)功能產(chǎn)生通信,確定通信時(shí)需要經(jīng)過的物理鏈路。三個(gè)決策變量編排完畢后,從節(jié)點(diǎn)和鏈路兩部分出發(fā),計(jì)算物理網(wǎng)絡(luò)的資源容量約束條件,公式為

(5)
其中,S為服務(wù)功能鏈請求集合;B第f個(gè)網(wǎng)絡(luò)功能在節(jié)點(diǎn)v上的資源容量;Qf,f+1為第三個(gè)決策變量,當(dāng)?shù)趂個(gè)和第f+1個(gè)網(wǎng)絡(luò)功能,兩者通信經(jīng)過物理鏈路時(shí),取值為1,否則取值為0;E為通信經(jīng)過鏈路的帶寬資源容量[10]。當(dāng)相鄰網(wǎng)絡(luò)功能分配到同一節(jié)點(diǎn)時(shí),使兩者直接在節(jié)點(diǎn)內(nèi)完成通信,計(jì)算功能鏈端到端時(shí)延的約束條件,公式為

(6)
其中,l為服務(wù)功能鏈s的長度;J為決策變量Qf,f+1經(jīng)過鏈路時(shí)的通信時(shí)延;qs為s能接受的最大端到端通信時(shí)延[11]。通過式(6)保證功能編排時(shí)延的合理性,至此完成虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排約束條件的設(shè)置。
將網(wǎng)絡(luò)功能放置到物理節(jié)點(diǎn)上后,針對有序的網(wǎng)絡(luò)功能建立虛擬化鏈路與物理鏈路之間的映射關(guān)系,形成特定的路由實(shí)現(xiàn)數(shù)據(jù)通路。從時(shí)延感知和資源分配兩方面出發(fā),計(jì)算數(shù)據(jù)通路的目標(biāo)函數(shù)。在資源分配方面,計(jì)算瓶頸資源G的最小瓶頸資源比例值,公式為

(7)
其中,I為分配第f個(gè)網(wǎng)絡(luò)功能時(shí)優(yōu)化安排資源的直接相關(guān)系數(shù)[12]。在時(shí)延感知方面,計(jì)算網(wǎng)絡(luò)功能在物理節(jié)點(diǎn)的處理時(shí)延H,公式為

(8)
其中,vf為節(jié)點(diǎn)v分配的第f個(gè)網(wǎng)絡(luò)功能;Kf為該網(wǎng)絡(luò)功能在節(jié)點(diǎn)v上的處理時(shí)延。數(shù)據(jù)流量在物理鏈路的傳播時(shí)延L計(jì)算公式為

(9)
其中,R為第f個(gè)和第f+1個(gè)網(wǎng)絡(luò)功能的數(shù)據(jù)流量在該物理鏈路上的傳播時(shí)延。最大化瓶頸資源的最小瓶頸資源比例值,同時(shí)最小化服務(wù)功能鏈請求的端到端時(shí)延,將其作為功能編排的目標(biāo)函數(shù)T,計(jì)算公式為

(10)
至此完成虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排目標(biāo)函數(shù)的計(jì)算。
通過人工智能技術(shù)訓(xùn)練出目標(biāo)函數(shù)最優(yōu)解,得到最優(yōu)路由實(shí)現(xiàn)數(shù)據(jù)通路。選取人工智能技術(shù)中的遺傳算法,將功能編排轉(zhuǎn)換為最優(yōu)染色體求解過程,輸入功能編排目標(biāo)函數(shù),使染色體的種群索引值與服務(wù)功能鏈節(jié)點(diǎn)相對應(yīng)。通過種群中的一個(gè)染色體表示物理節(jié)點(diǎn)與網(wǎng)絡(luò)功能序列的部署關(guān)系,即服務(wù)功能鏈中編排網(wǎng)絡(luò)功能的放置步驟,使其能夠表示服務(wù)功能鏈的編排方案。功能鏈s對應(yīng)染色體的遺傳算子適應(yīng)度Us
(11)
利用最優(yōu)染色體的選擇算子提高適應(yīng)度U的染色體選中概率,避免遺傳算法過早收斂。將染色體適應(yīng)度除以總適應(yīng)度,計(jì)算每個(gè)染色體被選擇的概率V

(12)
通過式(12)計(jì)算單個(gè)染色體的累積選擇概率。統(tǒng)計(jì)染色體在[0,1]區(qū)間內(nèi)產(chǎn)生的隨機(jī)數(shù),當(dāng)隨機(jī)數(shù)小于或等于累積概率,將該染色體遺傳到子代種群。針對子代種群,在保證基因數(shù)量與服務(wù)功能鏈長度一致的基礎(chǔ)上,隨機(jī)選擇兩個(gè)染色體的基因節(jié)點(diǎn),采取次序交叉法交換染色體的基因節(jié)點(diǎn),同時(shí)在染色體內(nèi)部對基因進(jìn)行插入和倒位等變異,產(chǎn)生新的子代。當(dāng)目標(biāo)函數(shù)滿足約束條件時(shí),停止迭代更新,輸出最優(yōu)解的染色體,得到服務(wù)功能鏈的最佳編排方案。其中最小瓶頸資源比例值的約束條件為式(5),服務(wù)功能鏈請求時(shí)延的約束條件為式(6),至此完成基于人工智能的虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排算法設(shè)計(jì)。
為了驗(yàn)證所提算法的有效性進(jìn)行實(shí)驗(yàn)驗(yàn)證,將此次設(shè)計(jì)算法記為實(shí)驗(yàn)A組,基于SDN技術(shù)的虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排算法記為實(shí)驗(yàn)B組,基于OpenFlow協(xié)議的虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排算法記為實(shí)驗(yàn)C組。運(yùn)用三種算法對虛擬化網(wǎng)絡(luò)功能進(jìn)行動(dòng)態(tài)編排,比較不同算法下的網(wǎng)絡(luò)服務(wù)質(zhì)量。
實(shí)驗(yàn)環(huán)境搭建在Core-i7物理主機(jī)上,啟動(dòng)兩臺(tái)虛擬交換機(jī)連接到主機(jī)控制器,主機(jī)服務(wù)器配備了267GB內(nèi)存、2 × 4 Intel Xeon 3.00 GHz 處理器,服務(wù)器運(yùn)行內(nèi)核為Linux4.4.0-31,將Web應(yīng)用防火墻、流量生成設(shè)備Tester、流量清洗設(shè)備ADS等功能設(shè)備,均部署在物理網(wǎng)絡(luò)中,通過流量生成器生成數(shù)據(jù)流,模擬訪問者和被訪問者,主機(jī)和設(shè)備之間通過直接的物理鏈路相連。通過拓?fù)渖善鱃T-ITM在100×100的二維坐標(biāo)系中,生成胖樹結(jié)構(gòu)數(shù)據(jù)中心物理網(wǎng)絡(luò)拓?fù)洌鐖D1所示。

圖1 物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
虛擬化網(wǎng)路在上圖1所示的物理網(wǎng)絡(luò)中運(yùn)行,包含12個(gè)可部署的物理節(jié)點(diǎn),各鏈路傳輸能力不同,每個(gè)節(jié)點(diǎn)虛擬化出四個(gè)節(jié)點(diǎn)資源為100的虛擬機(jī),每個(gè)虛擬機(jī)僅能部署一個(gè)功能,以此承載虛擬化網(wǎng)絡(luò)功能,節(jié)點(diǎn)鏈路帶寬由SNDlib 給出,節(jié)點(diǎn)度數(shù)呈power law分布。
使用Python語言編排虛擬化網(wǎng)絡(luò)功能,使業(yè)務(wù)請求的到達(dá)速率滿足泊松分布,當(dāng)網(wǎng)絡(luò)滿足服務(wù)請求時(shí),持續(xù)處理服務(wù)業(yè)務(wù)數(shù)據(jù)包,直至用戶請求撤銷。在該物理網(wǎng)絡(luò)中,網(wǎng)絡(luò)功能初始化時(shí),固定資源開銷服從[10,30],處理時(shí)延服從[10,30],映射時(shí)的帶寬資源開銷服從[10,20],網(wǎng)絡(luò)功能的計(jì)算能力服從[1,4],在每條物理鏈路的傳播時(shí)延服從[1,5],物理節(jié)點(diǎn)的計(jì)算資源負(fù)載閾值在區(qū)間[0.4,0.9]隨機(jī)選擇。
3.2.1 帶寬資源開銷實(shí)驗(yàn)結(jié)果
三種算法分別對虛擬化網(wǎng)絡(luò)功能進(jìn)行編排,每個(gè)服務(wù)請求用一條虛擬化網(wǎng)絡(luò)功能服務(wù)鏈表示,統(tǒng)計(jì)不同服務(wù)請求下帶寬資源開銷的變化情況,增加服務(wù)功能鏈請求數(shù)量,比較帶寬在功能編排中造成的開銷大小,實(shí)驗(yàn)對比結(jié)果如圖2所示。

圖2 帶寬資源開銷對比結(jié)果
由圖2可知,實(shí)驗(yàn)A組的帶寬資源開銷始終低于130bps,而實(shí)驗(yàn)B組的帶寬資源開銷最大值達(dá)到了160bps以上,實(shí)驗(yàn)C組的帶寬資源開銷更高,最大值達(dá)到了200bps。相比實(shí)驗(yàn)B組和C組,A組帶寬資源開銷具有明顯的優(yōu)勢性。
帶寬資源開銷比較完畢后,統(tǒng)計(jì)三種算法的虛擬化網(wǎng)絡(luò)功能成本開銷,實(shí)驗(yàn)對比結(jié)果如圖3所示。

圖3 網(wǎng)絡(luò)功能成本開銷對比結(jié)果
由上圖3可知,實(shí)驗(yàn)A組虛擬化網(wǎng)絡(luò)功能成本開銷始終低于實(shí)驗(yàn)B組和實(shí)驗(yàn)C組的開銷。虛擬化網(wǎng)絡(luò)資源的總體編排開銷為網(wǎng)絡(luò)功能成本開銷與帶寬開銷之和,由此可知,實(shí)驗(yàn)A組總體編排開銷低于實(shí)驗(yàn)B組和C組的總體編排開銷,說明所提算法具有更高的實(shí)際應(yīng)用價(jià)值。
3.2.2 節(jié)點(diǎn)資源利用率實(shí)驗(yàn)結(jié)果
比較不同算法網(wǎng)絡(luò)功能動(dòng)態(tài)編排時(shí)的節(jié)點(diǎn)資源利用率,實(shí)驗(yàn)對比結(jié)果如圖4所示。

圖4 節(jié)點(diǎn)資源利用率對比結(jié)果
由上圖4可知,實(shí)驗(yàn)A組節(jié)點(diǎn)資源的利用率始終高于實(shí)驗(yàn)B組和實(shí)驗(yàn)C組的利用率。實(shí)驗(yàn)A組節(jié)點(diǎn)資源利用率最高值為52%,而實(shí)驗(yàn)B組和實(shí)驗(yàn)C組的節(jié)點(diǎn)資源利用率最高值分別為45%和40%,實(shí)驗(yàn)A組的優(yōu)勢明顯,這是由于該算法在設(shè)置資源容量、功能鏈時(shí)延的約束條件和目標(biāo)函數(shù)的基礎(chǔ)上,通過人工智能技術(shù)得出了目標(biāo)函數(shù)的最優(yōu)解,從而得到了網(wǎng)絡(luò)功能在物理鏈路的最優(yōu)編排方案。
3.2.3 網(wǎng)絡(luò)服務(wù)響應(yīng)時(shí)間實(shí)驗(yàn)結(jié)果
將500個(gè)網(wǎng)絡(luò)服務(wù)導(dǎo)入三種算法的編排環(huán)境中,服務(wù)包含網(wǎng)絡(luò)功能數(shù)量不同,每種服務(wù)各生成100個(gè)。從服務(wù)接收率和響應(yīng)時(shí)間兩方面出發(fā),比較網(wǎng)絡(luò)功能編排服務(wù)質(zhì)量,網(wǎng)絡(luò)服務(wù)響應(yīng)時(shí)間對比結(jié)果如圖5所示。

圖5 網(wǎng)絡(luò)服務(wù)響應(yīng)時(shí)間對比結(jié)果
由上圖5可知,實(shí)驗(yàn)A組的平均響應(yīng)時(shí)間低于實(shí)驗(yàn)B組和C組的平均響應(yīng)時(shí)間。網(wǎng)絡(luò)服務(wù)接收率對比結(jié)果如圖6所示。

圖6 網(wǎng)絡(luò)服務(wù)接收率對比結(jié)果
由上圖6可知,實(shí)驗(yàn)A組的網(wǎng)絡(luò)服務(wù)接收率雖然在網(wǎng)絡(luò)功能數(shù)量為5個(gè)時(shí),與實(shí)驗(yàn)B組和C組的接收率相同,但是除此之外,實(shí)驗(yàn)A組的網(wǎng)絡(luò)服務(wù)接收率均具有一定的優(yōu)勢。
綜上所述,此次設(shè)計(jì)算法降低了網(wǎng)絡(luò)功能編排的總體開銷,增加了節(jié)點(diǎn)資源利用率,能夠充分保證網(wǎng)絡(luò)負(fù)載的均衡性,同時(shí)縮短了服務(wù)響應(yīng)時(shí)間,提高了網(wǎng)絡(luò)服務(wù)接收率,其網(wǎng)絡(luò)服務(wù)的處理能力和服務(wù)質(zhì)量明顯優(yōu)于傳統(tǒng)編排算法。
為了解決傳統(tǒng)算法存在的網(wǎng)絡(luò)服務(wù)質(zhì)量不高的問題,提出了基于人工智能的虛擬化網(wǎng)絡(luò)功能動(dòng)態(tài)編排算法。此次設(shè)計(jì)算法結(jié)合人工智能技術(shù)對虛擬化網(wǎng)絡(luò)功能進(jìn)行編排,降低了編排過程的資源開銷,提高了網(wǎng)絡(luò)服務(wù)質(zhì)量。但此次研究仍存在一定不足,在今后的研究中,會(huì)對服務(wù)功能鏈的備份機(jī)制進(jìn)行深入分析,有效解決服務(wù)功能鏈自身的故障問題。