吳偉楠,陳 鳴,鄧 理
(南京航空航天大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)
網(wǎng)絡(luò)功能虛擬化(network function virtualization,NFV)技術(shù)使得部署、管理和控制網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)服務(wù)更為經(jīng)濟(jì)與靈活[1]。管理與編排(management and orchestration,MANO)是NFV系統(tǒng)管理計算節(jié)點(diǎn)、CPU、內(nèi)存、網(wǎng)絡(luò)等資源的重要功能。而高質(zhì)量的MANO決策,依賴及時有效地獲取硬件服務(wù)器、虛擬機(jī)和虛擬網(wǎng)絡(luò)功能(virtualized network function,VNF)實(shí)例等NFV對象的狀態(tài)信息并加以分析、處理和利用[2-4]。
盡管目前的NFV監(jiān)視系統(tǒng)能滿足部分NFV應(yīng)用的信息獲取需求,但隨著網(wǎng)絡(luò)流量和用戶量以驚人的速度增長,虛擬化網(wǎng)絡(luò)規(guī)模正不斷擴(kuò)大,NFV對象的數(shù)量與類型急劇增多[5]。由此,NFV監(jiān)視系統(tǒng)面臨三個關(guān)鍵挑戰(zhàn)。第一,NFV對象由于業(yè)務(wù)需求、性能瓶頸等因素,生命周期、部署位置和配置參數(shù)頻繁變動[6-7],導(dǎo)致NFV應(yīng)用的信息獲取需求變化快、動態(tài)性強(qiáng),NFV監(jiān)視系統(tǒng)難以滿足不同NFV應(yīng)用的個性化信息獲取需求,而傳統(tǒng)網(wǎng)絡(luò)硬件設(shè)備很少會移動和更改其生命周期。第二,目前存在很多監(jiān)視NFV對象的技術(shù)與方法,但這些方法的功能與性能各有千秋,導(dǎo)致NFV監(jiān)視系統(tǒng)功能復(fù)雜,無法確定哪種方法更適合。相比之下,監(jiān)視管理傳統(tǒng)網(wǎng)絡(luò)設(shè)備已有統(tǒng)一且成熟的方法[8-9]。第三,NFV縮短了新技術(shù)的引入周期。每當(dāng)研發(fā)出一種新型VNF應(yīng)用,就需要更新監(jiān)視系統(tǒng)程序以支持獲取與監(jiān)視該VNF應(yīng)用的狀態(tài)信息,開發(fā)與維護(hù)成本高。因此,研究如何根據(jù)信息獲取需求而靈活、高效地獲取各種NFV對象狀態(tài)信息并且能敏捷地能夠擴(kuò)展系統(tǒng)監(jiān)視能力,是促進(jìn)NFV技術(shù)發(fā)展的一項重要工作。
針對第一個挑戰(zhàn),該文將NFV對象劃分為3類,設(shè)計了一種結(jié)構(gòu)化描述符用于定義靈活多變的信息獲取需求。針對第二個挑戰(zhàn),提出了一種信息獲取需求與獲取技術(shù)解耦(information requirements decoupling from acquisition,IRDA)機(jī)制,該機(jī)制通過解析需求描述符即可獲取狀態(tài)信息。需求方可專注于描述需求而不用學(xué)習(xí)各種監(jiān)視技術(shù)和方法。針對第三個挑戰(zhàn),提出了一種監(jiān)視項注冊機(jī)制,無需修改程序便可擴(kuò)展IRDA系統(tǒng)的監(jiān)視能力。
一些著名的NFV MANO項目已提出相應(yīng)的解決方案。2014年ETSI組織發(fā)布的NFV標(biāo)準(zhǔn)架構(gòu)[10]通過散布的參考點(diǎn)共享組件間的狀態(tài)數(shù)據(jù),但存在監(jiān)控管理碎片化問題。OpenBaton項目[11]提出插件機(jī)制,利用成熟的監(jiān)控系統(tǒng)獲取狀態(tài)信息,消除了碎片化問題,但需要為每個監(jiān)控系統(tǒng)編寫專有的監(jiān)控插件。ONAP項目提出閉環(huán)自動化模式[12],通過DCAE模塊采集NFV環(huán)境的狀態(tài)數(shù)據(jù),并將采集的數(shù)據(jù)、消息分發(fā)給分析應(yīng)用。T-NOVA項目則提出一種集成監(jiān)控框架[13],引入獨(dú)立的監(jiān)視組件,通過OpenStack和OpenDaylight提供的API監(jiān)視、收集、合并VNF實(shí)例和基礎(chǔ)設(shè)施的狀態(tài)數(shù)據(jù),傳達(dá)給編排器。該監(jiān)控框架足夠簡單且具有一定擴(kuò)展性,但擴(kuò)展監(jiān)視能力需要由開發(fā)人員編程完成。Kim等人[14]基于NFV監(jiān)視架構(gòu),提出一種實(shí)用測量框架,能主動測量虛擬網(wǎng)絡(luò)性能且具有較好的移植性。Naik等人[15]提出了一種可定制的NFV性能監(jiān)視和瓶頸檢測工具NFVPerf,準(zhǔn)確性高且系統(tǒng)開銷較小。
OpenStack的Ceilometer[16]項目能有效地收集物理和虛擬資源的性能指標(biāo)數(shù)據(jù),既能存儲數(shù)據(jù)以供未來分析,也能實(shí)時將數(shù)據(jù)傳輸給OpenStack的核心組件使用。隨著虛擬網(wǎng)絡(luò)規(guī)模和用戶量的擴(kuò)大,虛擬資源的監(jiān)視需求是巨大、多樣且高度復(fù)雜的。Monasca項目[17]提供了一種面向多租戶、高度可擴(kuò)展、高性能和容錯的監(jiān)視即服務(wù)(monitoring-as-a-service)解決方案。Monasca采用微服務(wù)架構(gòu),可以根據(jù)運(yùn)營商/客戶的需求部署相應(yīng)的監(jiān)控服務(wù),但系統(tǒng)復(fù)雜度和資源開銷也大幅度上升。
降低NFV監(jiān)控系統(tǒng)的資源開銷也是研究熱點(diǎn)之一。江逸茗等人[18]設(shè)計了一種基于監(jiān)控代理的資源監(jiān)控策略,意在最大化降低監(jiān)控系統(tǒng)的通信開銷。劉玄[19]利用動態(tài)資源分配算法優(yōu)化了監(jiān)控代理部署的策略,在降低通信開銷方面有較好的表現(xiàn)。
綜上所述,目前主要通過開發(fā)一個融合多種監(jiān)視技術(shù)的監(jiān)視系統(tǒng)來獲取不同NFV對象的狀態(tài)信息,并盡可能地降低系統(tǒng)開銷。此外,需要重新編程才能擴(kuò)展系統(tǒng)的監(jiān)視能力。
為解決上述問題,該文提出一種信息獲取需求與獲取技術(shù)解耦(IRDA)機(jī)制。該機(jī)制的基本思路是將信息獲取需求與獲取該信息的監(jiān)視技術(shù)解耦,需求方專注于描述需求而不用學(xué)習(xí)各種監(jiān)視技術(shù)和軟件的使用方法。本節(jié)討論如何清晰地描述需求方的信息獲取需求。
定義1:NFV環(huán)境中的資源實(shí)體定義為NFV對象。根據(jù)實(shí)現(xiàn)方法與功能的不同,將NFV對象分為三類。第一類是支撐NFV系統(tǒng)以及虛擬網(wǎng)絡(luò)運(yùn)行的通用硬件服務(wù)器對象SerObject。第二類是在通用服務(wù)器上運(yùn)行的虛擬機(jī)對象VMObject。第三類是部署在虛擬機(jī)上的VNF應(yīng)用實(shí)例對象VNFObject。
定義2:描述信息獲取需求的結(jié)構(gòu)化描述符稱為需求描述符。根據(jù)合理的語法要求編寫需求描述符,能夠清晰描述多變的信息獲取需求[20]。需求方的信息獲取需求可能涉及到大量NFV對象,這些NFV對象的類型、部署位置和監(jiān)控方式可能不同。2.2節(jié)將重點(diǎn)討論需求描述符的語法格式。
定義3:獲取NFV對象的狀態(tài)信息所采用的協(xié)議和監(jiān)視技術(shù)稱為信息獲取方法。不同類型的NFV對象通常需要不同的信息獲取方法獲取狀態(tài)信息。例如,ServObject可通過簡單網(wǎng)絡(luò)管理協(xié)議(simple network management protocol,SNMP)收集狀態(tài)信息。VMObject可通過虛擬機(jī)引擎提供的RESTful API來獲取狀態(tài)信息。VNFObject可通過VNF應(yīng)用自身提供的API來收集狀態(tài)信息。而無法獲取某新型NFV對象的狀態(tài)信息時,就需要擴(kuò)展系統(tǒng)的信息獲取能力和監(jiān)視能力。
需求描述符應(yīng)方便人類的理解和編寫,利于計算機(jī)解析和執(zhí)行,能明確指定需要監(jiān)視的NFV對象和需要獲取的狀態(tài),支持多種數(shù)據(jù)交付方式,如直接存儲到數(shù)據(jù)庫中或交付消息隊列。通常,NFV系統(tǒng)中的每一個NFV對象都具有唯一的名稱標(biāo)識。因此,利用該名稱能輕松指明需要監(jiān)視的NFV對象及其部署位置。
該文采用具有良好語義的XML語法定義需求描述符。根標(biāo)簽是
第二層標(biāo)簽
表1 NFV對象的標(biāo)簽定義
第二層標(biāo)簽
該文設(shè)計的基于IRDA機(jī)制的系統(tǒng)架構(gòu)如圖1所示。該架構(gòu)主要分為三個層次:需求描述層、任務(wù)編排層和獲取執(zhí)行層。
圖1 基于IRDA的系統(tǒng)架構(gòu)
需求描述層的主要功能是為用戶提供編寫需求描述符的工具(包括RESTful API接口、Dashboard圖形化界面和CLI命令行工具),支持用戶根據(jù)其信息獲取需求快速便捷地編寫需求描述符,并提交到任務(wù)編排層。
任務(wù)編排層作為系統(tǒng)的核心,主要由IRDA解析模塊、調(diào)度執(zhí)行模塊和監(jiān)視項映射表組成。任務(wù)編排層是需求描述符的解釋調(diào)度環(huán)境,關(guān)鍵作用是理解用戶獲取NFV對象狀態(tài)信息的需求,并將其轉(zhuǎn)換為獲取狀態(tài)信息的任務(wù)。監(jiān)視項映射表存儲了監(jiān)視項與信息獲取方法的映射關(guān)系。IRDA解析模塊接收需求描述符,通過檢索監(jiān)視項映射表,將需求描述符中的監(jiān)視項轉(zhuǎn)換為具體的信息獲取方法,創(chuàng)建相應(yīng)的信息獲取任務(wù),把信息獲取任務(wù)交接給調(diào)度執(zhí)行模塊。調(diào)度執(zhí)行模塊根據(jù)時間約束調(diào)度執(zhí)行信息獲取任務(wù),調(diào)用相應(yīng)的信息獲取方法獲取所需狀態(tài)信息并交付。
獲取執(zhí)行層是系統(tǒng)的底層支撐,提供獲取所需信息的能力。獲取執(zhí)行層主要由SNMP服務(wù)、成熟的監(jiān)控軟件和虛擬機(jī)/容器引擎提供的RESTful API等監(jiān)控組件構(gòu)成。這些監(jiān)控組件所能提供的信息獲取方法均記錄在監(jiān)視項映射表中。擴(kuò)展IRDA系統(tǒng)的監(jiān)視能力時,新監(jiān)視技術(shù)通過監(jiān)視項注冊機(jī)制進(jìn)行注冊。監(jiān)視項注冊機(jī)制將在3.4節(jié)具體討論。
IRDA系統(tǒng)工作時具有“需求描述”、“解析調(diào)度”和“執(zhí)行獲取”三種狀態(tài),圖2描述了IRDA系統(tǒng)的有限狀態(tài)機(jī)。每當(dāng)有新獲取需求時,進(jìn)入“需求描述”狀態(tài),根據(jù)需求編寫并提交需求描述符。此后,向“解析調(diào)度”狀態(tài)轉(zhuǎn)移。解析執(zhí)行模塊解析描述符并創(chuàng)建信息獲取任務(wù),將信息獲取任務(wù)按時間順序插入任務(wù)隊列中。一旦任務(wù)隊列不為空且首部的任務(wù)執(zhí)行時間到了,系統(tǒng)轉(zhuǎn)入“執(zhí)行獲取”狀態(tài)。系統(tǒng)在“執(zhí)行獲取”狀態(tài)時,執(zhí)行信息獲取任務(wù),交付獲取的信息。執(zhí)行過的任務(wù)若是單次的,則執(zhí)行完成后刪除該任務(wù);若屬于周期性任務(wù),則再次插入任務(wù)隊列適當(dāng)位置,等待下次調(diào)度。任務(wù)隊列為空時,回到“需求描述”狀態(tài)等待新需求。
圖2 基于IRDA系統(tǒng)的有限狀態(tài)機(jī)
正確地理解描述的需求,把監(jiān)視項轉(zhuǎn)換為具體的信息獲取方法是一個難點(diǎn)。IRDA系統(tǒng)支持的信息獲取方法記錄在監(jiān)視項映射表中。一個信息獲取方法對應(yīng)一條表項,一條表項共包含五個字段,描述了該信息獲取方法的監(jiān)視項名稱、所需參數(shù)、調(diào)用接口、調(diào)用方式以及返回的數(shù)據(jù)格式。監(jiān)視項映射表表項示例參見表2,例如監(jiān)視項“net.if.inOctet”對應(yīng)的信息獲取方法為使用SNMP WALK操作獲取OID為“1.3.6.1.2.1.2.2.1.10”的狀態(tài)信息,支持的NFV對象類型為SerObject,不需要額外參數(shù),返回原生字符串類型的數(shù)據(jù)。
表2 監(jiān)視項映射表示例
顯然,IRDA解析模塊正常工作需要嚴(yán)格檢查需求描述符。IRDA解析模塊解析需求描述符過程如下:
(1)接收需求描述符并檢查語法。接收需求描述符,檢查需求描述符語法結(jié)構(gòu)是否正確。如果檢查未通過,則返回錯誤消息。如果檢查通過,則繼續(xù)。
(2)將監(jiān)視項轉(zhuǎn)換為具體的信息獲取方法。依次解析所有
(3)獲取需要監(jiān)視的NFV對象信息。解析
(4)提取控制信息。在需求描述符的根標(biāo)簽中提取開始時間,停止時間,時間間隔和數(shù)據(jù)交付方法。計算信息獲取任務(wù)的首次執(zhí)行時間。
(5)創(chuàng)建并交接任務(wù)對象。新建一個信息獲取任務(wù)對象,使用HashMap實(shí)例存儲上述獲取的各類信息,將其交接調(diào)度執(zhí)行模塊。
當(dāng)監(jiān)視項目映射表提供的信息獲取方法不能滿足信息獲取需求時,可通過監(jiān)視項注冊機(jī)制擴(kuò)展系統(tǒng)支持的監(jiān)視項和信息獲取方法。
目前擴(kuò)展NFV系統(tǒng)信息獲取能力的解決方案的共同點(diǎn)是,通過編程與編譯使監(jiān)視項與信息獲取方法耦合起來。而IRDA解析模塊的工作方式使得IRDA系統(tǒng)具有無需修改監(jiān)視系統(tǒng)的程序也能擴(kuò)展系統(tǒng)監(jiān)視能力。
監(jiān)視項注冊機(jī)制是用于添加、刪除和修改監(jiān)視項映射表表項的機(jī)制,進(jìn)而擴(kuò)展IRDA系統(tǒng)的監(jiān)視能力。信息獲取方法的注冊過程如下:
(1)按監(jiān)視項映射表表項的字段結(jié)構(gòu),依次定義和編寫新的監(jiān)視項名稱、支持對象類型、所需參數(shù)、信息獲取方法的調(diào)用方式和調(diào)用接口、返回數(shù)據(jù)類型,作為注冊信息;
(2)監(jiān)視項映射表提供了用于添加,修改和刪除注冊信息的API。調(diào)用對應(yīng)的API將新編寫的注冊信息提交給監(jiān)視項映射表;
(3)測試注冊信息。監(jiān)視項映射表自動調(diào)用注冊的信息獲取方法隨機(jī)獲取一個NFV對象的狀態(tài)信息,測試方法的有效性。如果能夠根據(jù)注冊信息的描述獲取到正確的NFV對象狀態(tài)信息,則將注冊信息添加到監(jiān)視項目映射表中并對外發(fā)布監(jiān)視項名稱。
相比為獲取功能編寫專門的程序并進(jìn)行編譯,監(jiān)視項注冊的方法無疑更為簡單、快捷。
調(diào)度執(zhí)行模塊本質(zhì)是一個定時任務(wù)調(diào)度框架,維護(hù)著一個線程池和任務(wù)隊列,負(fù)責(zé)調(diào)度、執(zhí)行信息獲取任務(wù)和交付狀態(tài)信息。調(diào)度執(zhí)行模塊接收新任務(wù)對象后,將新任務(wù)對象實(shí)例化,根據(jù)任務(wù)對象中的時間控制信息設(shè)置相應(yīng)的調(diào)度策略,并放入任務(wù)隊列中等待調(diào)度與執(zhí)行。
任務(wù)隊列調(diào)度過程如下:當(dāng)?shù)竭_(dá)隊首任務(wù)的調(diào)度時間時,執(zhí)行信息獲取任務(wù),否則等待。當(dāng)信息獲取任務(wù)開始執(zhí)行時,對于信息獲取任務(wù)中的每種信息獲取方法,將啟動利用線程池中的一個或多個空閑線程來執(zhí)行狀態(tài)獲取操作。按定義的交付方式傳輸狀態(tài)數(shù)據(jù)。如果信息獲取任務(wù)是周期性的,則計算下一個執(zhí)行時間,將任務(wù)插入任務(wù)隊列中的適當(dāng)位置。如果信息獲取任務(wù)是非周期性的,則在執(zhí)行后將其刪除。重復(fù)上述步驟,直到任務(wù)隊列為空。
在一臺Lenovo ThinkServer RD550服務(wù)器上利用LXD容器管理軟件和TFN2K[21]DDoS攻擊工具,搭建了一個擁有22個容器、能進(jìn)行小規(guī)模DDoS攻擊實(shí)驗(yàn)的虛擬網(wǎng)絡(luò)試驗(yàn)環(huán)境。該服務(wù)器具有一顆六核、主頻2.4 GHz的CPU,內(nèi)存為32 GB,操作系統(tǒng)版本Ubuntu Server 18.04。試驗(yàn)環(huán)境的網(wǎng)絡(luò)拓?fù)淙鐖D3所示,tfn2k節(jié)點(diǎn)為部署TFN2K主控端VNF的攻擊節(jié)點(diǎn),td1-td5為部署TFN2K代理端VNF的傀儡節(jié)點(diǎn),iperf1和iperf2為部署Iperf3 VNF的虛擬主機(jī),h1為普通虛擬主機(jī),r1-r12是部署Quagga VNF并配置了OSPF路由協(xié)議的虛擬路由器,ddosd是部署了VNFfilter的虛擬防火墻[22],VNFfilter用于過濾惡意的UDP報文。每一個LXD容器都啟動了NET-SNMP軟件以支持SNMP協(xié)議。
圖3 IRDA原型系統(tǒng)試驗(yàn)環(huán)境
在上述NFV環(huán)境中設(shè)計并實(shí)現(xiàn)了一個具有IRDA機(jī)制的原型系統(tǒng)。原型系統(tǒng)前后端分離,采用RESTful風(fēng)格的API與HTTP協(xié)議進(jìn)行前后端和模塊間的通信。
原型系統(tǒng)的需求描述層作為系統(tǒng)前端,使用C#語言基于.NET框架開發(fā),實(shí)現(xiàn)了能根據(jù)獲取的狀態(tài)信息實(shí)時顯示虛擬網(wǎng)絡(luò)的狀態(tài)、性能數(shù)據(jù)的圖形化界面,能呈現(xiàn)監(jiān)視項映射表已注冊的監(jiān)視項名稱,并提供了需求描述符編寫工具。
任務(wù)編排層作為系統(tǒng)后端,由IRDA解析模塊、監(jiān)視項映射表和調(diào)度執(zhí)行模塊組成。IRDA解析模塊和監(jiān)視項映射表的基本邏輯基于SpringBoot框架編程實(shí)現(xiàn)。調(diào)度執(zhí)行模塊的基本邏輯基于Quartz定時任務(wù)調(diào)度框架實(shí)現(xiàn)。獲取執(zhí)行層部署了SNMP客戶端、Zabbix軟件和基于LXD管理API開發(fā)的容器監(jiān)控程序。
為了驗(yàn)證基于IRDA機(jī)制的監(jiān)視系統(tǒng)是否具有根據(jù)需求描述符獲取NFV對象相關(guān)狀態(tài)信息的能力和系統(tǒng)擴(kuò)展監(jiān)視能力的能力,在虛擬網(wǎng)絡(luò)中進(jìn)行DDoS攻擊試驗(yàn),并利用IRDA原型系統(tǒng)獲取試驗(yàn)過程中虛擬網(wǎng)絡(luò)的各類相關(guān)狀態(tài)信息。試驗(yàn)開始前,監(jiān)視項映射表中注冊了LXD容器監(jiān)控程序和SNMP常用的監(jiān)控OID,以支持獲取宿主服務(wù)器、LXD容器、Quagga VNF等NFV對象的狀態(tài)信息。
試驗(yàn)步驟如下:
(1)運(yùn)行圖3中的虛擬網(wǎng)絡(luò),讓iperf1節(jié)點(diǎn)向iperf2節(jié)點(diǎn)發(fā)起速率為100 Mbps的UDP流,測試網(wǎng)絡(luò)連通性。此時,編寫需求描述符獲取r1節(jié)點(diǎn)的3個端口的輸入流量。圖4為前端系統(tǒng)顯示r1的端口流量統(tǒng)計情況??梢?,IRDA系統(tǒng)準(zhǔn)確獲取了所需的狀態(tài)信息。
圖4 r1的端口輸入流量統(tǒng)計
(2)輸入命令使得tfn2k節(jié)點(diǎn)同時控制傀儡節(jié)點(diǎn)td1-td5向h1節(jié)點(diǎn)發(fā)起UDP Flood攻擊。此時,編寫新的需求描述符獲取60秒內(nèi)所有傀儡節(jié)點(diǎn)的UDP攻擊報文發(fā)送速率。圖5為前端系統(tǒng)獲取各傀儡節(jié)點(diǎn)的實(shí)時UDP攻擊報文發(fā)送速率后,計算得出的各個時刻UDP攻擊報文最大、最低和平均發(fā)送速率。
圖5 傀儡節(jié)點(diǎn)UDP攻擊報文發(fā)送速率統(tǒng)計
(3)啟動ddosd上的VNFfilter,過濾發(fā)往h1的惡意UDP流。VNFfilter提供了獲取丟棄報文數(shù)量的RESTful API,但I(xiàn)RDA系統(tǒng)未注冊該信息獲取方法,無法使用該接口。編寫該接口的注冊信息,并為其定義新監(jiān)視項名稱“filter.drop.pkts”,提交到監(jiān)視項映射表。測試通過后,使用“filter.drop.pkts”編寫需求描述符監(jiān)視60秒內(nèi)ddosd的報文丟棄情況。圖6為VNFfilter的UDP報文丟棄數(shù)量變化情況。
圖6 VNFfilter丟棄報文數(shù)統(tǒng)計情況
試驗(yàn)小結(jié):通過解釋執(zhí)行需求描述符,IRDA原型系統(tǒng)能分別獲取指定NFV對象的狀態(tài)信息,并將其傳遞到前端程序。監(jiān)視項注冊機(jī)制能快速地擴(kuò)展IRDA系統(tǒng)不支持的監(jiān)視能力。同時,使用可視化工具可以幫助用戶快速正確地編寫需求描述符。
本節(jié)主要對IRDA原型系統(tǒng)性能與資源利用率進(jìn)行試驗(yàn)與分析。定義從用戶向IRDA解釋器提交需求描述符到交接狀態(tài)信息的過程所需的時間為信息獲取時延。圖7顯示了增加IRDA原型系統(tǒng)同時運(yùn)行的信息獲取任務(wù)數(shù)量與信息獲取時延的平均值。
圖7 獲取時延與信息獲取任務(wù)數(shù)的關(guān)系
可見,信息獲取時延隨系統(tǒng)中信息獲取任務(wù)數(shù)量增加而呈大致的線性增長,每個任務(wù)的平均狀態(tài)獲取時延約為30 ms~53 ms。如果其中周期性信息獲取任務(wù)占的比例高,非首次執(zhí)行不需解析需求描述符,信息獲取時延會較短。
IRDA原型系統(tǒng)運(yùn)行在宿主服務(wù)器上,需要占用系統(tǒng)資源,考察考察IRDA原型系統(tǒng)對宿主服務(wù)器資源具有何種影響很重要。在具有相同配置的服務(wù)器上部署了OpenStack。然后,使用IRDA原型系統(tǒng)和Ceilometer連續(xù)獲取多個虛擬機(jī)的相同狀態(tài)信息與性能指標(biāo),并逐步增加信息獲取任務(wù)數(shù)量。測量結(jié)果如圖8所示,可以看出,即使IRDA原型系統(tǒng)同時運(yùn)行500個獲取任務(wù),CPU利用率也低于6%,內(nèi)存利用率小于3%。但是Ceilometer在類似的情況下占用的服務(wù)器資源要大得多。
(a)CPU占用率與信息獲取任務(wù)數(shù)量關(guān)系
(b)內(nèi)存占用率與信息獲取任務(wù)數(shù)量關(guān)系圖8 宿主服務(wù)器CPU、內(nèi)存與信息獲取任務(wù)數(shù)關(guān)系
為滿足NFV應(yīng)用和NFV系統(tǒng)管理的信息獲取需求,如何按需靈活獲取NFV對象的狀態(tài)信息是NFV技術(shù)迫切需要解決的技術(shù)問題。文中提出了一種信息需求與獲取技術(shù)解耦(IRDA)機(jī)制,使用需求描述符定義獲取信息的需求,系統(tǒng)可以有效地獲取所需的狀態(tài)數(shù)據(jù)。文中提出的監(jiān)視項注冊機(jī)制可以擴(kuò)展IRDA系統(tǒng)支持的監(jiān)控軟件或監(jiān)控技術(shù),從而進(jìn)一步增強(qiáng)IRDA系統(tǒng)的可擴(kuò)展性和靈活性。原型系統(tǒng)的測試和評估結(jié)果顯示了IRDA相關(guān)機(jī)制的可用性和有效性。下一步,將在更大規(guī)模的NFV網(wǎng)絡(luò)對IRDA機(jī)制及其相關(guān)技術(shù)進(jìn)行測試,為NFV管理與編排提供一種實(shí)用的信息獲取技術(shù)。