李同標(biāo) 張曉哲 高先明 鄧文平 馬世聰
(國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院 湖南 長沙 410073)
?
基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移機(jī)制研究
李同標(biāo) 張曉哲 高先明 鄧文平 馬世聰
(國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院 湖南 長沙 410073)
虛擬路由器平臺是支撐網(wǎng)絡(luò)虛擬化技術(shù)的關(guān)鍵網(wǎng)絡(luò)設(shè)備。傳統(tǒng)的虛擬路由器平臺存在著物理資源利用率低,能耗損失嚴(yán)重等問題?,F(xiàn)有的節(jié)能機(jī)制大多是通過虛擬路由器平臺間的虛擬路由器實(shí)例動態(tài)遷移來降低能耗,并未有學(xué)者研究平臺內(nèi)部虛擬路由器實(shí)例動態(tài)遷移對能耗的影響。提出一種基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移算法。該算法將轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移到更少的物理服務(wù)器,調(diào)整平臺內(nèi)部的轉(zhuǎn)發(fā)實(shí)例與物理服務(wù)器之間的映射關(guān)系,關(guān)閉空閑服務(wù)器。實(shí)驗(yàn)表明,該算法能夠提高虛擬路由器平臺的物理資源利用率,降低平臺總能耗。
網(wǎng)絡(luò)虛擬化 虛擬路由器 轉(zhuǎn)發(fā)實(shí)例 動態(tài)遷移 資源利用率 能耗
互聯(lián)網(wǎng)的爆炸式發(fā)展使得現(xiàn)有的網(wǎng)絡(luò)體系架構(gòu)難以滿足層出不窮的網(wǎng)絡(luò)應(yīng)用和業(yè)務(wù)模型的部署需求,網(wǎng)絡(luò)本身的僵化現(xiàn)象越發(fā)明顯。其中的主要原因是當(dāng)前互聯(lián)網(wǎng)由不同的網(wǎng)絡(luò)服務(wù)提供商所創(chuàng)建和維護(hù),網(wǎng)絡(luò)服務(wù)提供商之間的目標(biāo)和利益沖突使得實(shí)施新的網(wǎng)絡(luò)技術(shù)或者升級現(xiàn)有的網(wǎng)絡(luò)體系架構(gòu)變得異常困難。傳統(tǒng)的“打補(bǔ)丁”的方式解決遇到的難題,反而使得現(xiàn)有的網(wǎng)絡(luò)架構(gòu)變的更加“臃腫”,并不能從根本上解決網(wǎng)絡(luò)僵化現(xiàn)象,并且一定程度上阻礙了部署新型網(wǎng)絡(luò)體系架構(gòu)[1]。
網(wǎng)絡(luò)虛擬化,被認(rèn)為是解決網(wǎng)絡(luò)僵化現(xiàn)象的一種重要手段,并且被作為構(gòu)建下一代新型網(wǎng)絡(luò)架構(gòu)的重要技術(shù)[2]。其主要思想是在同一套共享物理網(wǎng)絡(luò)設(shè)施(包括物理鏈路、物理節(jié)點(diǎn))來構(gòu)建一個(gè)健壯、可信、可控的虛擬化環(huán)境,支持這些同構(gòu)或異構(gòu)的虛擬網(wǎng)絡(luò)并行運(yùn)行、互不干擾[3]。
盡管網(wǎng)絡(luò)虛擬化技術(shù)對于未來網(wǎng)絡(luò)的發(fā)展起著非常大的促進(jìn)作用,但是傳統(tǒng)虛擬路由器轉(zhuǎn)發(fā)能力低。如果數(shù)據(jù)流帶寬過大,只能通過增加轉(zhuǎn)發(fā)板的數(shù)量,提高轉(zhuǎn)發(fā)能力。當(dāng)數(shù)據(jù)流帶寬較小時(shí),大量的轉(zhuǎn)發(fā)板將處于空閑狀態(tài),資源利用率低,能耗損耗較大,特別是在大規(guī)模網(wǎng)絡(luò)環(huán)境下能量損耗將會很嚴(yán)重。根據(jù)相關(guān)材料顯示,美國2012年網(wǎng)絡(luò)能源消耗量占了整個(gè)美國能源消耗量的9.8%[4]。隨著Internet網(wǎng)絡(luò)的用戶持續(xù)增加,網(wǎng)絡(luò)能源消耗量勢必會越來越多。因此,如何減少網(wǎng)絡(luò)能源消耗量是一個(gè)未來網(wǎng)絡(luò)研究領(lǐng)域里重要的研究熱點(diǎn)。
為了減少虛擬網(wǎng)絡(luò)的能源消耗,我們可以通過將虛擬路由器實(shí)例動態(tài)遷移集中到更少的物理服務(wù)器來改變虛擬路由器實(shí)例和物理服務(wù)器之間的映射關(guān)系,使用更少的物理服務(wù)器可以降低整個(gè)虛擬網(wǎng)絡(luò)的能耗[5]。但是現(xiàn)有的虛擬路由器實(shí)例動態(tài)遷移降低虛擬網(wǎng)絡(luò)能耗研究大多集中在虛擬路由器平臺間,并未有學(xué)者研究平臺內(nèi)部虛擬路由器實(shí)例動態(tài)遷移對能耗的影響。本文提出了一種基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移算法,通過動態(tài)調(diào)整平臺內(nèi)部的轉(zhuǎn)發(fā)實(shí)例與物理服務(wù)器之間的映射關(guān)系,將轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移到更少的物理服務(wù)器,關(guān)閉空閑的物理服務(wù)器。實(shí)驗(yàn)表明,該算法能夠提高虛擬路由器平臺的物理資源利用率,降低平臺總能耗。
虛擬路由器實(shí)例動態(tài)遷移可以分為控制實(shí)例遷移和轉(zhuǎn)發(fā)實(shí)例遷移,由于虛擬路由器的控制實(shí)例一般利用虛擬機(jī)運(yùn)行相應(yīng)的路由套件來實(shí)現(xiàn)[6],目前很多虛擬機(jī)都支持實(shí)時(shí)遷移,例如KVM[7]、XEN[8]和OpenVZ[9],因此控制實(shí)例的遷移可以利用虛擬機(jī)的自身遷移能力來實(shí)現(xiàn)。利用虛擬機(jī)動態(tài)遷移來降低能耗的方法在數(shù)據(jù)中心網(wǎng)絡(luò)很多,故主控實(shí)例的節(jié)能優(yōu)化不在本文的研究范圍。在文獻(xiàn)[10]中作者提出了一種支持轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移的虛擬路由器架構(gòu)VRSM,實(shí)驗(yàn)表明該架構(gòu)在轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移的過程中可以為用戶提供無感知的網(wǎng)絡(luò)服務(wù)。這說明在轉(zhuǎn)發(fā)實(shí)例的遷移過程中遷移時(shí)間和丟包率在一定的允許范圍內(nèi)。VRSM架構(gòu)如圖1所示,包括資源管理平面、主控平面和轉(zhuǎn)發(fā)平面。
圖1 VRSM架構(gòu)圖
其中資源管理平面負(fù)責(zé)管理虛擬路由器平臺中所有的物理資源(例如控制板和轉(zhuǎn)發(fā)板),并為網(wǎng)絡(luò)管理員提供一個(gè)交互式圖形界面來管理虛擬路由器平臺。利用資源管理平面,可以方便地創(chuàng)建或者刪除虛擬路由器實(shí)例和虛鏈路。網(wǎng)絡(luò)管理員也可以通過添加物理服務(wù)器到相應(yīng)的資源池來提高虛擬路由器平臺的性能,被添加的物理資源板只需要向資源管理平面通知其物理資源信息(如接口個(gè)數(shù),鏈路帶寬,CPU核心數(shù)和內(nèi)存大小)。同時(shí)資源管理平面的全局資源監(jiān)控模塊負(fù)責(zé)收集控制板和轉(zhuǎn)發(fā)板的物理資源利用率信息,包括CPU、內(nèi)存和帶寬資源等,為虛擬路由器實(shí)例的創(chuàng)建以及轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移提供決策基礎(chǔ)。
控制平面的功能實(shí)現(xiàn)是采用系統(tǒng)虛擬化技術(shù),如KVM、XEN和OpenVZ,在相同的物理基礎(chǔ)設(shè)施上運(yùn)行多個(gè)相互隔離的邏輯控制實(shí)例。每個(gè)邏輯控制實(shí)例運(yùn)行特定的路由套件,可以是Quagga[11]、XORP[12]或按需要自定義的新型網(wǎng)絡(luò)協(xié)議??刂瓢宓谋镜刭Y源監(jiān)控模塊負(fù)責(zé)收集本地服務(wù)器的實(shí)時(shí)物理資源利用率信息,包括CPU、內(nèi)存和帶寬等。并且將本地的物理資源利用率上傳至資源管理平面的全局資源監(jiān)控模塊,為資源管理平面創(chuàng)建虛擬路由器實(shí)例決策提供信息基礎(chǔ)。
轉(zhuǎn)發(fā)平面起著運(yùn)行多個(gè)并發(fā)且隔離的邏輯轉(zhuǎn)發(fā)實(shí)例,每個(gè)邏輯轉(zhuǎn)發(fā)實(shí)例從相應(yīng)的接口接收數(shù)據(jù)包并將其轉(zhuǎn)發(fā)到正確接口,功能類似于傳統(tǒng)路由器中的轉(zhuǎn)發(fā)平面。轉(zhuǎn)發(fā)板的本地資源監(jiān)控模塊負(fù)責(zé)收集本地服務(wù)器的實(shí)時(shí)物理資源利用率信息,包括CPU、內(nèi)存和帶寬等,其目的是為虛擬路由器實(shí)例的創(chuàng)建以及轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移決策提供信息基礎(chǔ)。
考慮到擴(kuò)展性,主控板和轉(zhuǎn)發(fā)板的設(shè)計(jì)也采用了“池化”的思想,網(wǎng)絡(luò)管理員可以通過添加物理服務(wù)器到主控池或者轉(zhuǎn)發(fā)池以擴(kuò)展提高虛擬路由器平臺的性能。
在VRSM架構(gòu)中,轉(zhuǎn)發(fā)實(shí)例的動態(tài)遷移包括四步:a)選擇遷移目標(biāo)轉(zhuǎn)發(fā)板;b)在目標(biāo)轉(zhuǎn)發(fā)板上創(chuàng)建新的轉(zhuǎn)發(fā)實(shí)例;c)從新的控制實(shí)例請求轉(zhuǎn)發(fā)信息;d)刪除源轉(zhuǎn)發(fā)板上的舊轉(zhuǎn)發(fā)實(shí)例。
轉(zhuǎn)發(fā)實(shí)例遷移條件被觸發(fā)后,資源管理平面在步驟a)中根據(jù)貪婪算法來選擇目標(biāo)轉(zhuǎn)發(fā)板,其目的是為了利用最少的轉(zhuǎn)發(fā)板,從而提高物理資源利用率。當(dāng)然,目的轉(zhuǎn)發(fā)板應(yīng)滿足創(chuàng)建新的轉(zhuǎn)發(fā)實(shí)例的物理資源請求,新的轉(zhuǎn)發(fā)實(shí)例要求有和舊轉(zhuǎn)發(fā)實(shí)例相同的物理資源。在步驟b)中,一個(gè)新的轉(zhuǎn)發(fā)實(shí)例在目標(biāo)轉(zhuǎn)發(fā)板上被創(chuàng)建,然后將新的轉(zhuǎn)發(fā)實(shí)例迭代向控制實(shí)例請求轉(zhuǎn)發(fā)信息,然后安裝。轉(zhuǎn)發(fā)信息包含RIB,RIB用于重新生成FIB,還有些用于恢復(fù)ACL和轉(zhuǎn)發(fā)實(shí)例狀態(tài)實(shí)例的配置文件。一旦步驟c)完成,舊的轉(zhuǎn)發(fā)實(shí)例將在步驟d)被刪除。為了避免數(shù)據(jù)包丟包丟失,在步驟c)和步驟d)之間,存在著新舊兩個(gè)轉(zhuǎn)發(fā)實(shí)例,并且都在轉(zhuǎn)發(fā)數(shù)據(jù)流量。步驟d)后,新的轉(zhuǎn)發(fā)實(shí)例完全取代舊的轉(zhuǎn)發(fā)實(shí)例。
2.1 服務(wù)器能耗模型
VRSM虛擬路由器平臺是由一組通用服務(wù)器集群組成的,集群中的服務(wù)器可以是異構(gòu)或同構(gòu),功耗大小不一,同一時(shí)間內(nèi)消耗的總能量也不一樣。一臺服務(wù)器消耗的能量主要由靜態(tài)功耗和動態(tài)功耗組成。靜態(tài)功耗一般是個(gè)常量,比較穩(wěn)定;動態(tài)功耗主要由物理資源消耗,像CPU、RAM、網(wǎng)卡和磁盤,與物理服務(wù)器的負(fù)載有關(guān)。其中,與其他系統(tǒng)資源相比,動態(tài)功耗主要來自于CPU[13]。研究表明,物理服務(wù)器的功率和CPU的利用率呈現(xiàn)出線性關(guān)系,CPU的利用率越高,服務(wù)器的功率呈線性增長[14]。因此虛擬路由器平臺中服務(wù)器i的能耗模型可以定義如下:
Pi(t)=k×Pmax+(1-k)×Pmax×u
(1)
其中服務(wù)器i的功率用Pi(t)表示;k為滿負(fù)載與沒有滿負(fù)載的時(shí)間比例;Pmax為滿負(fù)載時(shí)的最大功率,是個(gè)常數(shù);u為CPU利用率。
當(dāng)一個(gè)轉(zhuǎn)發(fā)實(shí)例j創(chuàng)建請求分配到一個(gè)服務(wù)器時(shí),該服務(wù)器的CPU利用率會上升,同時(shí)服務(wù)器的功率也會相應(yīng)地增加,增加的功率為新創(chuàng)建的轉(zhuǎn)發(fā)實(shí)例的功率。增加的功率ΔPFj可以如下面的公式表示:
ΔPFj=Pe-Ps=
(Pmax-k×Pmax)(ue-us)
(2)
其中Pe為新轉(zhuǎn)發(fā)實(shí)例創(chuàng)建后,CPU利用率為ue時(shí)服務(wù)器的功率,Ps為新轉(zhuǎn)發(fā)實(shí)例創(chuàng)建前,CPU利用率為us時(shí)服務(wù)器的功率。值得注意的是,轉(zhuǎn)發(fā)實(shí)例的功率并不是一個(gè)常數(shù),因?yàn)榫W(wǎng)絡(luò)管理員會根據(jù)用戶的需要?jiǎng)?chuàng)建具有不同轉(zhuǎn)發(fā)能力的轉(zhuǎn)發(fā)實(shí)例,如轉(zhuǎn)發(fā)能力1 GB的轉(zhuǎn)發(fā)實(shí)例、轉(zhuǎn)發(fā)能力2 GB的轉(zhuǎn)發(fā)實(shí)例等。這些轉(zhuǎn)發(fā)實(shí)例由于轉(zhuǎn)發(fā)能力各異,需求的CPU、內(nèi)存和帶寬資源也不一樣,因此功率也不同。在轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移過程中,資源管理平面選擇轉(zhuǎn)發(fā)實(shí)例后增加的功率ΔPFj最小的服務(wù)器作為遷移的目標(biāo)服務(wù)器,從而使得轉(zhuǎn)發(fā)實(shí)例遷移完成后虛擬路由器平臺的能耗最小。
2.2 轉(zhuǎn)發(fā)實(shí)例遷移開銷
在虛擬路由器平臺中,過量的轉(zhuǎn)發(fā)實(shí)例遷移最終可能會讓整個(gè)虛擬路由器平臺功耗值降到最低,但是整個(gè)遷移過程能耗可能會太大,而且過量的轉(zhuǎn)發(fā)實(shí)例遷移會造成整個(gè)平臺系統(tǒng)性能的降低。因此在遷移過程中,轉(zhuǎn)發(fā)實(shí)例遷移能耗是不容忽視的[15]。當(dāng)遷移過程代價(jià)太大,資源管理平面將調(diào)整遷移策略,重新選擇遷移代價(jià)較小的轉(zhuǎn)發(fā)實(shí)例,然后執(zhí)行遷移策略。
和虛擬機(jī)遷移不同的是,DMVR虛擬路由器中的轉(zhuǎn)發(fā)實(shí)例遷移不涉及到虛擬機(jī)內(nèi)存鏡像的拷貝[16],但是需要從被遷移的轉(zhuǎn)發(fā)實(shí)例對應(yīng)的控制實(shí)例重新下發(fā)路由表。由于在遷移過程中,主控實(shí)例需要將路由表項(xiàng)下發(fā)至新轉(zhuǎn)發(fā)實(shí)例,新轉(zhuǎn)發(fā)實(shí)例安裝路由表項(xiàng)需要時(shí)間,同時(shí)CPU的利用率會增加,導(dǎo)致服務(wù)器的耗能增加。根據(jù)以上分析,轉(zhuǎn)發(fā)實(shí)例對應(yīng)的主控實(shí)例路由表項(xiàng)越多,遷移時(shí)間越多,導(dǎo)致服務(wù)器增加的耗能也會越大。轉(zhuǎn)發(fā)實(shí)例j的遷移能耗模型可以如下表示:
(3)
其中ΔEj為轉(zhuǎn)發(fā)實(shí)例j遷移過程中造成的耗能增加,ts為轉(zhuǎn)發(fā)實(shí)例遷移開始的時(shí)間,te為轉(zhuǎn)發(fā)實(shí)例遷移結(jié)束的時(shí)間,te-ts即轉(zhuǎn)發(fā)實(shí)例遷移時(shí)間。在遷移過程中,資源管理平面將優(yōu)先選擇ΔEj最小的轉(zhuǎn)發(fā)實(shí)例作為遷移對象,從而使得整個(gè)遷移過程的代價(jià)最小。
3.1 遷移觸發(fā)機(jī)制
轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移的觸發(fā)機(jī)制采用雙閾值策略,目的是為了提高物理服務(wù)器的物理資源利用率以及提高網(wǎng)絡(luò)服務(wù)質(zhì)量。網(wǎng)絡(luò)管理員通過資源管理平面設(shè)置服務(wù)器的資源利用率的上限和下限要求,包括服務(wù)器的CPU、內(nèi)存和帶寬資的資源利用率。為了方便說明,作如下定義:RCMin是指CPU利用率的下限負(fù)載值;RCMax是指CPU利用率的上限負(fù)載值;RMMin是指內(nèi)存利用率的下限負(fù)載值;RMMax是指內(nèi)存利用率的上限負(fù)載值;RBMin是指帶寬資源利用率的下限負(fù)載值;RBMax是指帶寬資源利用率的上限負(fù)載值。
轉(zhuǎn)發(fā)板服務(wù)器的本地資源監(jiān)控模塊會時(shí)刻監(jiān)控本地的資源利用情況,包括實(shí)時(shí)的CPU資源利用率RCcur、內(nèi)存利用率RMcur和帶寬資源利用率RBcur,如果這三者都處于設(shè)定的最高閾值和最低閾值之間,那么不會觸發(fā)遷移;否則出現(xiàn)異常,也就是RCcur、RMcur和RBcur三者任意一個(gè)不處于設(shè)定的最高閾值和最低閾值之間,那么該服務(wù)器將被標(biāo)記為異常。為了避免服務(wù)器負(fù)載的波動影響數(shù)據(jù)的準(zhǔn)確性,以采集周期T對服務(wù)器的各個(gè)資源使用情況進(jìn)行采集,當(dāng)服務(wù)器連續(xù)三個(gè)周期都是異常時(shí),那么觸發(fā)轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移機(jī)制。當(dāng)RCcur、RMcur和RBcur任意一個(gè)或多個(gè)超過RCMax、RMMax和RBMax之間的任意一個(gè),且異常持續(xù)時(shí)間超過三個(gè)數(shù)據(jù)采集周期,那么為了提高虛擬路由器平臺的服務(wù)質(zhì)量,觸發(fā)高負(fù)載遷移;當(dāng)RCcur、RMcur和RBcur三者均低于RCMax、RMMax和RBMax,且異常的持續(xù)時(shí)間超過了三個(gè)數(shù)據(jù)采集周期,那么為了提高服務(wù)器的資源利用率,觸發(fā)低負(fù)載遷移。
3.2 遷移對象選擇
遷移對象的選擇是指遷移觸發(fā)機(jī)制被觸發(fā)以后,如何從異常的服務(wù)器里面選擇轉(zhuǎn)發(fā)實(shí)例作為遷移對象,使得整個(gè)遷移過程的開銷最小。因此需要對物理服務(wù)器上的轉(zhuǎn)發(fā)實(shí)例進(jìn)行綜合評估,從而找出最佳的遷移對象。其中遷移對象的選擇可以分成兩種情況:(1) 物理服務(wù)器的資源利用率低于最低閾值時(shí),轉(zhuǎn)發(fā)實(shí)例全部遷出,即低負(fù)載遷移;(2) 物理服務(wù)器的資源利用率高于最高閾值時(shí),選擇部分轉(zhuǎn)發(fā)實(shí)例遷移,使得遷移后的物理服務(wù)器資源利用率低于最高閾值,即高負(fù)載遷移。其中第一種情況較簡單,只需要將低于最低閥值的物理服務(wù)器上的轉(zhuǎn)發(fā)實(shí)例全部遷出,然后使該服務(wù)器休眠或者關(guān)掉。第二種情況是本節(jié)討論的重點(diǎn),其選擇過程涉及到最小代價(jià)的貪心算法。VRSM虛擬路由器轉(zhuǎn)實(shí)例的遷移過程是首先在目標(biāo)服務(wù)器上創(chuàng)建一個(gè)新的轉(zhuǎn)發(fā)實(shí)例。然后主控實(shí)例下發(fā)路由表項(xiàng)至新的轉(zhuǎn)發(fā)實(shí)例,新轉(zhuǎn)發(fā)實(shí)例獲取所有的路由表項(xiàng)并且安裝完畢之后,舊轉(zhuǎn)發(fā)實(shí)例將從源服務(wù)器被刪除。從上述過程可以推斷,路由表項(xiàng)越多,主控實(shí)例下發(fā)路由表項(xiàng)的時(shí)間越長,路由表選項(xiàng)安裝的時(shí)間越長,遷移時(shí)間越大,根據(jù)轉(zhuǎn)發(fā)實(shí)例遷移開銷模型可以知道,虛擬路由器平臺整個(gè)能耗增加值也會更多。
為了證明上述推斷的正確性,我們在虛擬路由器架構(gòu)VRSM的基礎(chǔ)上研究了轉(zhuǎn)發(fā)實(shí)例遷移時(shí)間與路由表項(xiàng)數(shù)目之間的關(guān)系。轉(zhuǎn)發(fā)實(shí)例遷移時(shí)間是資源管理平面的遷移時(shí)間統(tǒng)計(jì)模塊負(fù)責(zé)計(jì)算,遷移被觸發(fā)時(shí),遷移時(shí)間統(tǒng)計(jì)模塊記錄遷移開始的時(shí)間,并且在目標(biāo)服務(wù)器創(chuàng)建新的轉(zhuǎn)發(fā)實(shí)例;當(dāng)主控實(shí)例全部下發(fā),并且新的轉(zhuǎn)發(fā)實(shí)例全部安裝成功,資源管理平面會刪除舊的轉(zhuǎn)發(fā)實(shí)例,然后遷移時(shí)間統(tǒng)計(jì)模塊才記錄遷移結(jié)束時(shí)間。兩者時(shí)間之差就是轉(zhuǎn)發(fā)實(shí)例遷移時(shí)間。表1為轉(zhuǎn)發(fā)實(shí)例遷移時(shí)間和路由表項(xiàng)數(shù)目之間的關(guān)系。
表1 遷移時(shí)間與路由表數(shù)目關(guān)系
可以看出,轉(zhuǎn)發(fā)實(shí)例的遷移時(shí)間與路由表數(shù)目呈線性增長關(guān)系。因此為了降低轉(zhuǎn)發(fā)實(shí)例遷移過程的代價(jià),可以選擇對應(yīng)主控實(shí)例路由表項(xiàng)較少的那些轉(zhuǎn)發(fā)實(shí)例作為遷移對象。遷移對象選擇算法可以描述如下:
1) 遷移觸發(fā)機(jī)制被觸發(fā)之后,資源管理平面定位到異常服務(wù)器;
2) 統(tǒng)計(jì)異常服務(wù)器上各個(gè)轉(zhuǎn)發(fā)實(shí)例對應(yīng)主控實(shí)例的路由表路由總條數(shù);
3) 根據(jù)轉(zhuǎn)發(fā)實(shí)例對應(yīng)的主控實(shí)例的路由表項(xiàng)數(shù)目按照從小到大的順序以<轉(zhuǎn)發(fā)實(shí)例號,路由表項(xiàng)數(shù)目>的二元組形式存入轉(zhuǎn)發(fā)實(shí)例路由表項(xiàng)信息鏈表;
4) 將路由表路由總條數(shù)最小對應(yīng)的轉(zhuǎn)發(fā)實(shí)例標(biāo)記,調(diào)用轉(zhuǎn)發(fā)實(shí)例遷移算法遷出,并且更新轉(zhuǎn)發(fā)實(shí)例路由表項(xiàng)信息鏈表;
5) 檢查異常服務(wù)器的物理資源是否大于最高閾值,如果是,那么進(jìn)入過程3),如果否,那么進(jìn)入過程6);
6) 遷移對象選擇過程結(jié)束。
3.3 目標(biāo)服務(wù)器選擇
為了讓目標(biāo)服務(wù)器能夠正常運(yùn)轉(zhuǎn)接收的轉(zhuǎn)發(fā)實(shí)例,目標(biāo)服務(wù)器的選擇應(yīng)該滿足資源匹配規(guī)則。
該規(guī)則是指選擇的目標(biāo)服務(wù)器應(yīng)該能滿足轉(zhuǎn)發(fā)實(shí)例對物理資源的最低要求,包括CPU、內(nèi)存和帶寬等。具體說來,資源匹配規(guī)則應(yīng)該滿足以下幾個(gè)條件:
CRequire≤CAvailable
(4)
BRequire≤BAvailable
(5)
MRequire≤MAvailable
(6)
其中,CRequire為轉(zhuǎn)發(fā)實(shí)例的CPU資源大小要求,MRequire為轉(zhuǎn)發(fā)實(shí)例的物理內(nèi)存大小要求,BRequire為轉(zhuǎn)發(fā)實(shí)例的帶寬資源大小要求。
當(dāng)有多個(gè)物理服務(wù)器同時(shí)滿足條件時(shí),全局資源管理模塊會計(jì)算對每個(gè)符合條件的物理服務(wù)器進(jìn)行能耗評估,即計(jì)算這些物理服務(wù)器在接收轉(zhuǎn)發(fā)實(shí)例前后的能耗之差。然后從中選擇選出產(chǎn)生能耗之差最小的物理服務(wù)器作為目標(biāo)服務(wù)器,從而使得遷移后的虛擬路由器平臺產(chǎn)生的能耗最小。
3.4 算法描述
基于上述闡述的遷移觸發(fā)機(jī)制、遷移對象選擇和目標(biāo)服務(wù)器選擇方法,本文提出了一個(gè)基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移的算法。該算法在服務(wù)器處于閾值之外的低負(fù)載時(shí),為了提高虛擬路由器平臺的物理資源利用率,執(zhí)行低負(fù)載遷移;處于閾值之外的高負(fù)載時(shí),為了提升用戶網(wǎng)絡(luò)體驗(yàn),執(zhí)行高負(fù)載遷移。
同時(shí)考慮到在轉(zhuǎn)發(fā)實(shí)例遷移過程中,頻繁的遷移抖動將對虛擬路由器平臺的整體性能造成影響,為了盡量減少轉(zhuǎn)發(fā)實(shí)例的遷移次數(shù),資源管理平面規(guī)定只有在遷移后,虛擬路由器平臺總能耗降低10%以上,才真正地執(zhí)行轉(zhuǎn)發(fā)實(shí)例遷移,否則不執(zhí)行遷移。
算法大致思想如下闡述:
1) 根據(jù)具體情況設(shè)定轉(zhuǎn)發(fā)池中各個(gè)轉(zhuǎn)發(fā)板的資源利用率上限閾值和下限閾值以及全局監(jiān)控的資源利用率采集周期T。
2) 本地監(jiān)控按照采集周期T周期性采集轉(zhuǎn)發(fā)板的資源利用率情況,并且將資源利用率信息,包括CPU、內(nèi)存和帶寬利用率發(fā)送給全局監(jiān)控。
3) 全局監(jiān)控檢查收到的資源利用率信息是否在設(shè)置的上限閾值和下限閾值之間;如果是,標(biāo)記服務(wù)器正常,否則標(biāo)記服務(wù)器異常,將異常信息存入異常信息表,并且檢查是否連續(xù)三個(gè)采集周期都出現(xiàn)異常且遷移之后,總能耗降低10%以上,如果否,不作任何處理;如果是,那么進(jìn)入步驟4)。
4) 查看異常信息,如果異常節(jié)點(diǎn)資源利用率過高,執(zhí)行高負(fù)載遷移,進(jìn)入步驟5);如果異常節(jié)點(diǎn)資源利用率過低,執(zhí)行低負(fù)載遷移,進(jìn)入步驟6)。
5) 根據(jù)遷移對象選擇算法和目標(biāo)服務(wù)器選擇規(guī)則選擇遷移代價(jià)最小的轉(zhuǎn)發(fā)實(shí)例和合適的目標(biāo)服務(wù)器,將該轉(zhuǎn)發(fā)實(shí)例遷移到目標(biāo)服務(wù)器,迭代步驟5)直到異常節(jié)點(diǎn)的資源利用率在閾值之間。
6) 根據(jù)目標(biāo)服務(wù)器選擇規(guī)則選擇合適的目標(biāo)服務(wù)器,將轉(zhuǎn)發(fā)實(shí)例編號最小的轉(zhuǎn)發(fā)實(shí)例遷移到目標(biāo)服務(wù)器,迭代步驟6)直到異常節(jié)點(diǎn)轉(zhuǎn)發(fā)實(shí)例數(shù)量為零,然后關(guān)閉該異常節(jié)點(diǎn)。
轉(zhuǎn)發(fā)資源池和控制資源池都采用IBM nx360服務(wù)器,該服務(wù)器配置為Intel Xeon CPU E5-2620、64 GB內(nèi)存、2個(gè)萬兆網(wǎng)卡和2個(gè)千兆網(wǎng)卡以及Linux CentOS 6.5系統(tǒng);資源管理平面采用IBM x3650服務(wù)器,該服務(wù)器配置為Intel Xeon CPU E5-2680、64 GB內(nèi)存、1個(gè)千兆網(wǎng)卡以及Linux CentOS6.5系統(tǒng)。另外,轉(zhuǎn)發(fā)資源池、控制資源池以及資源管理平面相互之間連接采用通用交換機(jī),具有24個(gè)千兆網(wǎng)卡。其中所有的轉(zhuǎn)發(fā)板服務(wù)器和主控板服務(wù)器都向資源管理平面注冊。
實(shí)驗(yàn)過程中,在資源管理平面上運(yùn)行模擬程序,該模擬程序會調(diào)用資源管理平面的接口隨機(jī)創(chuàng)建、刪除需求物理資源不同的轉(zhuǎn)發(fā)實(shí)例,以此模擬虛擬網(wǎng)絡(luò)中轉(zhuǎn)發(fā)板服務(wù)器的物理資源利用率不斷變化的情況,其中轉(zhuǎn)發(fā)實(shí)例的參數(shù)以及對應(yīng)的主控實(shí)例中的路由表項(xiàng)為模擬器隨機(jī)生成。為了對基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移算法中的三個(gè)預(yù)定義閾值(CPU閾值、內(nèi)存閾值和帶寬閾值)進(jìn)行選擇。本文進(jìn)行了多組實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示算法在CPU利用率的下限負(fù)載值范圍為(0.20~0.25),上限負(fù)載值范圍為(0.85~0.95);內(nèi)存利用率的下限負(fù)載值范圍為(0.25~0.30),上限負(fù)載值范圍為(0.85~0.90),帶寬利用率的下限負(fù)載值范圍為(0.20~0.25),上限負(fù)載值范圍為(0.85~0.95) 的情況下節(jié)能效果較佳。
4.1 資源利用率
為了驗(yàn)證基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移算法能夠有效地提高虛擬路由器平臺的資源利用率,在上述實(shí)驗(yàn)的基礎(chǔ)上,選擇并設(shè)定適宜的閾值。在實(shí)驗(yàn)過程中,每次轉(zhuǎn)發(fā)實(shí)例遷移完成后,計(jì)算整個(gè)平臺的資源利用率,其中資源利用率等于平臺內(nèi)所有轉(zhuǎn)發(fā)實(shí)例占用的資源之和除以所有運(yùn)行的服務(wù)器資源之和,實(shí)驗(yàn)結(jié)果如圖2所示。從圖中可以看出,轉(zhuǎn)發(fā)實(shí)例的遷移次數(shù)由0增長到30的過程中,CPU的利用率從34.46%提高到64.62%,內(nèi)存利用率從22.25%提高到50.68%,寬帶的利用率從30.23%提高到58.29%。實(shí)驗(yàn)結(jié)果表明本文算法可以有效地提高虛擬路由器平臺內(nèi)部的物理資源利用率。
圖2 資源利用率與遷移次數(shù)
4.2 能耗節(jié)約測試
在上述實(shí)驗(yàn)的基礎(chǔ)上,在資源管理平面加入能耗統(tǒng)計(jì)模塊,其中能耗統(tǒng)計(jì)模塊是根據(jù)服務(wù)器能耗模型實(shí)現(xiàn)的,可以利用2.1節(jié)中的式(1)計(jì)算,其大小和CPU的利用率呈線性關(guān)系,然后設(shè)置合理的閾值,每次轉(zhuǎn)發(fā)實(shí)例遷移完成后,計(jì)算整個(gè)虛擬路由器平臺的功率,其中功率的計(jì)算是基于能耗統(tǒng)計(jì)模塊,實(shí)驗(yàn)結(jié)果如圖3所示。從圖中可以看出,轉(zhuǎn)發(fā)實(shí)例的遷移次數(shù)由0增長到30的過程中,虛擬路由器平臺的總功耗由2.35 kW下降到1.27 kW,這表明通過轉(zhuǎn)發(fā)實(shí)例的動態(tài)遷移可以降低平臺的總能耗。
圖3 總能耗與遷移次數(shù)
本文提出了一種基于能耗的虛擬路由器轉(zhuǎn)發(fā)實(shí)例動態(tài)遷移算法,旨在通過轉(zhuǎn)發(fā)實(shí)例的動態(tài)遷移提高轉(zhuǎn)發(fā)板的物理資源利用率,降低虛擬路由器平臺能耗。在該算法中,資源管理平面的全局資源監(jiān)控模塊周期性地采集物理轉(zhuǎn)發(fā)板的資源利用率,包括CPU、內(nèi)存和帶寬資源利用率。通過將獲取的實(shí)時(shí)資源利用率與設(shè)定好的最高閾值和最低閾值進(jìn)行比較,從而為轉(zhuǎn)發(fā)實(shí)例的動態(tài)遷移提供信息決策。通過遷移調(diào)整平臺內(nèi)部的轉(zhuǎn)發(fā)實(shí)例與物理服務(wù)器之間的映射關(guān)系,從而利用更少的服務(wù)器。仿真實(shí)驗(yàn)表明,該算法能夠有效地提高虛擬路由器平臺的物理資源利用率,降低虛擬路由器平臺能耗。
[1] 謝高崗,張玉軍,李振宇,等.未來互聯(lián)網(wǎng)體系結(jié)構(gòu)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2012,35(6):1109-1119.
[2] Gao X,Wang B,Zhang X.VR-Cluster:Dynamic Migration for Resource Fragmentation Problem in Virtual Router Platform[J].Scientific Programming,2016(4):1-14.
[3] Chowdhury N M M K,Boutaba R.A survey of network virtualization[J].Computer Networks,2010,54(5):862-876.
[4] Bianzino A P,Chaudet C,Rossi D,et al.A survey of green networking research[J].Communications Surveys & Tutorials,IEEE,2012,14(1):3-20.
[5] Eramo V,Miucci E,Ammar M.Study of Migration Policies in Energy-Aware Virtual Router Networks[J].IEEE Communications Letters,2014,18(11):1919-1922.
[6] Xianming G,Baosheng W,Xiaozhe Z,et al.A high-elasticity router architecture with software data plane and flow switching plane separation[J].China Communications,2016,13(3):37-52.
[7] KVM[OL].http://www.linux-kvm.org/.
[8] XEN[OL].http://www.xenproject.org/.
[9] OpenVZ[OL].http://openvz.org/Main_Page.
[10] Li T,Zhang X,Gao X,et al.On dynamic migration of virtual router[C]//IEEE International Conference on Communication Software and Networks.IEEE,2016:493-499.
[11] Quagga[OL].http://www.nongnu.org/quagga/.
[12] XORP[OL].http://www.xorp.org/.
[13] Fan X,Weber W D,Barroso L A.Power provisioning for a warehouse-sized computer[M]//ACM SIGARCH Computer Architecture News.ACM,2007:13-23.
[14] Hameed A,Khoshkbarforoushha A,Ranjan R,et al.A survey and taxonomy on energy efficient resource allocation techniques for cloud computing systems[J].Computing,2014,98(7):1-24.
[15] Eramo V,Cianfrani A,Miucci E,et al.Virtualization and virtual router migration: Application and experimental validation[C]//Teletraffic Congress (ITC),2014 26th International.IEEE,2014:1-6.
[16] Kansal N J,Chana I.Energy-aware Virtual Machine Migration for Cloud Computing-A Firefly Optimization Approach[J].Journal of Grid Computing,2016:1-19.
STUDYOFDYNAMICMIGRATIONMECHANISMOFVIRTUALROUTERFORWARDINGINSTANCEBASEDONENERGYCONSUMPTION
Li Tongbiao Zhang Xiaozhe Gao Xianming Deng Wenping Ma Shicong
(SchoolofComputer,NationalUniversityofDefenseTechnology,Changsha410073,Hunan,China)
Virtual router platform is the key network equipment to support network virtualization technology. Traditional virtual router platform is criticized low physical resource utilization and serious loss of energy consumption problems. Most of the existing energy-saving mechanism is achieved through live dynamic migration of virtual router instance between virtual router platforms, few scholars study the dynamic migration of virtual router instances inside the platform. This paper presents a dynamic migration algorithm of virtual router forwarding instance inside the virtual router platform based on power saving. The algorithm dynamically migrates forwarding instance to fewer physical servers, adjust mapping between forwarding instance and physical servers inside platform, and close down idle physical servers. Our experiment results show that the algorithm can effectively improve resource utilization of physical servers and reduce the energy consumption of the virtual router platform.
Network virtualization Virtual router Forwarding instance Dynamic migration Resource utilization Energy consumption
2016-10-08。國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃項(xiàng)目(2012CB315906)。李同標(biāo),碩士生,主研領(lǐng)域:網(wǎng)絡(luò)虛擬化。張曉哲,副研究員。高先明,博士生。鄧文平,助理研究員。馬世聰,博士生。
TP393
A
10.3969/j.issn.1000-386x.2017.08.027