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

(1)


(2)
其中,Cf為第f個網絡功能的資源容量;F為網絡功能類型集合。G的值越大,說明該功能類型對服務功能鏈越重要,應優先得到滿足[7]。按照式(2)的比例關系,確定不同功能類型的重要程度,進而排序網絡功能的分配優先級。按照順序對網絡功能進行分配,計算功能分配的第一個決策變量,當功能分配到節點上,定義決策變量為1,未分配到節點上,則定義為0。當功能鏈s分配第f個網絡功能時,第一個決策變量公式表示為

(3)


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

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

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

(7)
其中,I為分配第f個網絡功能時優化安排資源的直接相關系數[12]。在時延感知方面,計算網絡功能在物理節點的處理時延H,公式為

(8)
其中,vf為節點v分配的第f個網絡功能;Kf為該網絡功能在節點v上的處理時延。數據流量在物理鏈路的傳播時延L計算公式為

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

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

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

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

圖2 帶寬資源開銷對比結果
由圖2可知,實驗A組的帶寬資源開銷始終低于130bps,而實驗B組的帶寬資源開銷最大值達到了160bps以上,實驗C組的帶寬資源開銷更高,最大值達到了200bps。相比實驗B組和C組,A組帶寬資源開銷具有明顯的優勢性。
帶寬資源開銷比較完畢后,統計三種算法的虛擬化網絡功能成本開銷,實驗對比結果如圖3所示。

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

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

圖5 網絡服務響應時間對比結果
由上圖5可知,實驗A組的平均響應時間低于實驗B組和C組的平均響應時間。網絡服務接收率對比結果如圖6所示。

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