亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        OpenFlow網(wǎng)絡(luò)中虛擬網(wǎng)絡(luò)分片的動態(tài)遷移

        2013-07-23 01:37:34許逸飛
        關(guān)鍵詞:表項分片調(diào)用

        許逸飛

        (中國電信系統(tǒng)集成公司 北京 100035)

        0 引言

        在近年來飛速發(fā)展的數(shù)據(jù)中心技術(shù)中,虛擬化技術(shù)是一種底層的重要支撐技術(shù)。通過虛擬化,系統(tǒng)資源可以得到隔離,并且能夠彈性和動態(tài)分配。然而,很多年來虛擬化技術(shù)的熱點一直都在于計算機虛擬化,直到這兩年數(shù)據(jù)中心規(guī)模急劇增大,多租戶的問題更加嚴(yán)重,網(wǎng)絡(luò)虛擬化才得到足夠的重視。

        傳統(tǒng)TCP/IP網(wǎng)絡(luò)經(jīng)過30多年的發(fā)展已經(jīng)過度僵化。同時,TCP/IP網(wǎng)絡(luò)也無法提供很好的資源劃分方法,這在當(dāng)前的數(shù)據(jù)中心應(yīng)用中都是十分嚴(yán)重的缺陷?!?】為了應(yīng)對TCP/IP網(wǎng)絡(luò)的挑戰(zhàn),學(xué)術(shù)界與工業(yè)界紛紛推出自己的標(biāo)準(zhǔn)來構(gòu)建一種具備彈性、可操作的新型網(wǎng)絡(luò),如可編程ASIC技術(shù)【2】,juniper公司提出的QFabric架構(gòu)【3】等。

        OpenFlow網(wǎng)絡(luò)是一種對于傳統(tǒng)TCP/IP網(wǎng)絡(luò)的升級與補充,是一種重要的SDN(軟件定義網(wǎng)絡(luò))的解決方案【4】。它的基本思想是將網(wǎng)絡(luò)的控制平面與數(shù)據(jù)平面互相分離,來實現(xiàn)集中的轉(zhuǎn)發(fā)規(guī)則與網(wǎng)絡(luò)拓?fù)涞目刂啤?/p>

        由于該特性,OpenFlow被廣泛用于網(wǎng)絡(luò)虛擬化技術(shù)。然而,目前的OpenFlow虛擬化網(wǎng)絡(luò)仍然面臨很多問題。如同計算機虛擬化一樣,網(wǎng)絡(luò)虛擬化應(yīng)當(dāng)具備伸縮性、彈性地分配資源的能力,實現(xiàn)這種能力,一個必備的機制是遷移機制。本文接下來的部分就會介紹通過修改一種主流的OpenFlow虛擬化層模塊FlowVisor【5】來實現(xiàn)一種虛擬網(wǎng)絡(luò)的遷移機制。

        OpenFlow在2008年由斯坦福大學(xué)的clean slate項目組提出,是當(dāng)今主流的SDN解決方案。傳統(tǒng)的TCP/IP網(wǎng)絡(luò)將進(jìn)入交換設(shè)備的包在交換設(shè)備上確定轉(zhuǎn)發(fā)規(guī)則。而OpenFlow由一個控制器決定轉(zhuǎn)發(fā)規(guī)則,所有交換設(shè)備都連接到這個控制器上,并且部署控制器所確定的轉(zhuǎn)發(fā)規(guī)則。

        OpenFlow網(wǎng)絡(luò)將進(jìn)入交換設(shè)備的包的所有的包頭進(jìn)行通配。滿足一系列特定要求的包為一個流,區(qū)別一個流可以通過一到四層網(wǎng)絡(luò)的任何包頭項,即:mac地址、IP地址、TCP端口號等。對于一個流,控制器可以在交換設(shè)備上部署一條規(guī)則來決定它的轉(zhuǎn)發(fā)規(guī)則。此規(guī)則包含三部分:通配規(guī)則、轉(zhuǎn)發(fā)規(guī)則和統(tǒng)計數(shù)據(jù)?!?】

        FlowVisor是一種OpenFlow網(wǎng)絡(luò)中的網(wǎng)絡(luò)虛擬化層實現(xiàn)。在IaaS云平臺中,不同租戶的隔離與資源分配問題一直是一個重要課題。租戶之間需要劃分的資源不僅僅是計算和存儲資源,也包括網(wǎng)絡(luò)資源。通過FlowVisor,一個完整的OpenFlow網(wǎng)絡(luò)可以劃分成多個邏輯網(wǎng)絡(luò),每一個邏輯網(wǎng)絡(luò)被稱為一個分片(slice)。

        FlowVisor對OpenFlow網(wǎng)絡(luò)進(jìn)行分片的主要資源包括:帶寬,拓?fù)洌鞅眄椀膫€數(shù),設(shè)備CPU。目前在系統(tǒng)中主要體現(xiàn)的是流表項個數(shù)和帶寬。

        對分片的區(qū)別是用流空間的概念來實現(xiàn)的,每一個流空間是一系列統(tǒng)配規(guī)則。與流表項不同的是它并沒有轉(zhuǎn)發(fā)規(guī)則。

        對于進(jìn)入交換設(shè)備的數(shù)據(jù)包,F(xiàn)lowVisor首先要將其攔截并且確定它屬于哪一個分片。每一個分片都有其可見范圍和權(quán)限,這需要交換設(shè)備對每個分片內(nèi)的包進(jìn)行改寫。比如,一個分片內(nèi)進(jìn)行廣播的包,離開交換設(shè)備時需要將廣播域從整個網(wǎng)絡(luò)改為該分片。

        1 虛擬網(wǎng)絡(luò)分片遷移機制設(shè)計

        正如虛擬機的遷移,虛擬網(wǎng)絡(luò)分片的遷移其本質(zhì)是在透明與平滑的過程中,將在一定的物理設(shè)備上運行的系統(tǒng)遷移到新的設(shè)備上運行。在虛擬機的遷移過程中,我們需要遷移的包括CPU、虛擬內(nèi)存、虛擬網(wǎng)卡等等資源【7】,與此類似,在進(jìn)行更深入的研究之前,首先要明確需要遷移的資源包括哪些。

        如前所述,F(xiàn)lowVisor對一個網(wǎng)絡(luò)的如下幾種資源進(jìn)行了劃分:①帶寬。②最大流表項個數(shù)。③拓?fù)浣Y(jié)構(gòu)。④設(shè)備CPU占有率。

        其中,帶寬和最大流表項個數(shù)是通過一個叫做sliceLimits的數(shù)據(jù)結(jié)構(gòu)規(guī)定的,拓?fù)浣Y(jié)構(gòu)是自然的,設(shè)備CPU的限制在當(dāng)前版本中體現(xiàn)得并不明顯。

        我們的目標(biāo)就是將一個虛擬網(wǎng)絡(luò)分片在不修改其流量帶寬和最大流表項個數(shù)的情況下,從原本的物理拓?fù)溥w移到新的物理拓?fù)渖稀?/p>

        另外,我們的遷移機制必須滿足一些要求,包括:①遷移對每個網(wǎng)絡(luò)分片的管理員必須是透明的。②遷移過程必須是安全的,保證遷移前后拓?fù)浣Y(jié)構(gòu)和物理帶寬相同。③必須判斷哪些節(jié)點是可遷移的,哪些節(jié)點是不可遷移的。

        對于第一個要求,我們通過擴(kuò)展FlowVisor的API來實現(xiàn)。只有FlowVisor管理員有權(quán)限進(jìn)行遷移。遷移過程中,需要重寫流空間,而不要求修改每個網(wǎng)絡(luò)分片上運行的網(wǎng)絡(luò)操作系統(tǒng)(NOX,floodlight等)的轉(zhuǎn)發(fā)規(guī)則。

        對于第二個和第三個要求,自動選擇一個合法的網(wǎng)絡(luò)分片進(jìn)行遷移需要非常復(fù)雜的算法。當(dāng)前我們采用比較簡單的手工指定的方法,如果選擇的新的分片無法滿足要求則拋出異常。

        2 虛擬網(wǎng)絡(luò)分片遷移的實現(xiàn)

        FlowVisor是一個事件驅(qū)動的系統(tǒng),它對交換機和控制器之間的消息進(jìn)行攔截和處理,分為兩個模塊,F(xiàn)VSlicer負(fù)責(zé)對進(jìn)出控制器的消息進(jìn)行處理,F(xiàn)VClassifier對進(jìn)出交換設(shè)備的消息進(jìn)行處理。他們的目的是讓一個對用戶來說全局可見的消息最終精確改寫并發(fā)送到特定的分片交換機二元組上。

        FVClassifier和FVSlicer都實現(xiàn)了兩個函數(shù),handleIOEvent和sendMsg。handleIOEvent是每次收到一條消息時觸發(fā),在進(jìn)行改寫之前,由它來確定如何改寫,往往是調(diào)用調(diào)用classifyFromSwitch和sliceFromController兩個函數(shù)進(jìn)行改寫,返回后調(diào)用sendMsg發(fā)送到交換設(shè)備或控制器上。FlowVisor對事件的處理流程如下:

        圖1 FlowVisor控制器與交換設(shè)備的事件處理邏輯

        我們通過修改FlowVisor的代碼來擴(kuò)展出虛擬分片的遷移規(guī)則。需要實現(xiàn)兩個功能:

        1、把一個slice上的所有已經(jīng)部署的規(guī)則遷移到另一個slice上。

        2、保證新的分片可以與控制器交互,也就是說,控制器對自己原有拓?fù)浣Y(jié)構(gòu)的所有操作,都會被透明地重新定向到新的分片上。

        由以上,虛擬分片遷移主要經(jīng)過如下步驟:

        1、新建一個分片,資源分配與之前的分片相同。

        2、將新建的分片與原有分片各個交換設(shè)備一一匹配(也包括端口號和flow space的匹配),建立三個哈希表,key和value分別是源分片的所有交換設(shè)備和與之對應(yīng)的新分片的資源。這一步驟主要是為之后復(fù)制流表項和鏈接提供條件。

        3、將原有分片上所有的流表項復(fù)制到新分片上。在這里,需要實現(xiàn)一個通過FVClassifier和FVSlicer來獲取一個交換機上屬于一個分片的所有流表項的函數(shù),我們在FVClassifier中實現(xiàn),它返回一個FVFlowStatisticsReply列表,表示所有的流表項。在將源分片的流表項復(fù)制到新分片的過程中,需要檢查所有匹配規(guī)則和操作所對應(yīng)的資源是否需要用映射中的目的資源來取代。比如,在源分片中存在流表項:

        在目的分片中要修改成:

        其中,IPAddr_1和IPAddr_2是源分片與目的分片中對應(yīng)的兩個IP地址。

        4、需要在虛擬化層將底層新分片的交換設(shè)備對上層暴露的信息修改為源分片的信息,并且對控制器發(fā)送到源分片的信息進(jìn)行IP地址和端口的改寫使他們對應(yīng)到新分片的對應(yīng)物理資源上。如之前的分析,在每一個message從源發(fā)送到目的地的過程中首先會被FVClassifier或FVSlicer攔截,并且調(diào)用handleIOEvent來確定是否需要進(jìn)行改寫與如何改寫。所以,在我們的系統(tǒng)中,借鑒這種方法,在handleIOEvent中加入一個功能,判斷是否需要對目的地進(jìn)行改寫。為了實現(xiàn)這個目的,設(shè)計了如下機制:

        (1)在遷移完成后,不刪除源分片,而是刪除上面所有的流表項和流空間,并且在FVSlicer這一數(shù)據(jù)結(jié)構(gòu)內(nèi)加入一個字段,叫做isZombie。如果一個分片被遷移,則它所對應(yīng)的所有FVSlicer將isZombie設(shè)置為true。另外加入一個字段redirection,指向在遷移過程中與其對應(yīng)的新的FVSlicer。此外,我們還需要建立在該FVSlicer和遷移后的FVSlicer中的具體端口和兩個分片的對應(yīng)關(guān)系。如之前所述建立三個哈希表,將規(guī)則按照哈希表中的對應(yīng)關(guān)系復(fù)制到新的FVSlicer中。需要指出的是,這是一種暫行的低效方法,未來需要有一種徹底的改寫方式,而非僅僅依靠這種偽裝方法。

        (2)在FVSlicer的handleIOEvent中加入代碼判斷它是否為zombie slicer,如果是,則需要調(diào)用其redirection的handleIOEvent。在調(diào)用之前對該信息進(jìn)行改寫,改寫邏輯與之前的復(fù)制邏輯相同。改寫結(jié)束后調(diào)用其redirection的handleIOEvent。

        (3)與FVSlicer類似,在FVClassifier中也設(shè)置一個isRedirectable字段,與FVSlicer中的isZombie對應(yīng)。收到控制器發(fā)送的消息時處理過程與FVSlicer互逆,不再贅述。

        3 實驗與分析

        為了驗證這套機制是否有效,本文設(shè)計了如下實驗:

        首先,建立了一個簡單的OpenFlow網(wǎng)絡(luò),其拓?fù)浣Y(jié)構(gòu)如下:

        圖2 虛擬網(wǎng)絡(luò)分片遷移實驗拓?fù)?/p>

        拓?fù)浣Y(jié)構(gòu)如上圖的網(wǎng)絡(luò)中,定義兩個分片,slice1包括S1,S2,S3,S6,slice2包括S1,S4,S5,S6。首先,S1向S6發(fā)送一個無終止的ping命令,我們在S1中預(yù)設(shè)一個流,并且關(guān)閉S4與S1的連接,保證ICMP包的鏈路路徑為:S1-S2-S3-S6,遷移后為S1-S4-S5-S6。在實驗過程中,我們用S1發(fā)送ping命令到S6,然后發(fā)送遷移指令,節(jié)點的對應(yīng)關(guān)系為(S2,S4)和(S3,S5)。在S1上運行tcpdump,觀察遷移前后ICMP包的轉(zhuǎn)發(fā)路徑。此外,為了驗證新的規(guī)則能否正確部署到遷移后的分片上,在控制器端給S6增加一條規(guī)則,丟棄所有的源地址為S1的IP地址的包,驗證ping的ICMP流量是否停止。結(jié)果證明我們設(shè)計的遷移機制沒有停機時間,并且所有遷移都成功進(jìn)行。并且新增丟棄原地址為S1的包的命令后,發(fā)現(xiàn)ping命令的流量停止。

        4 結(jié)論

        通過上述方法,本文成功實現(xiàn)了OpenFlow網(wǎng)絡(luò)中基于FlowVisor網(wǎng)絡(luò)虛擬化層的虛擬網(wǎng)絡(luò)分片遷移。

        在成文過程中,對于遷移后的廢棄分片,本文采用了對其進(jìn)行標(biāo)示并且進(jìn)行重定向的方法,這是一種不完全并且相對低效的方法,在接下來的工作中,可以通過修改FlowVisor底層代碼實現(xiàn)對交換設(shè)備端口虛擬化的方式,來實現(xiàn)一種根本的重定向機制。

        此外,由于缺少實際物理環(huán)境,本文的測試都在虛擬環(huán)境中完成,希望在未來的相關(guān)工作中能夠在生產(chǎn)環(huán)境下部署該應(yīng)用并且測試結(jié)果。

        在虛擬化數(shù)據(jù)中心中,網(wǎng)絡(luò)的劃分問題一直是一個十分關(guān)鍵的核心問題。SDN技術(shù)能夠給虛擬化數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)的部署提供彈性,對每一個用戶提供可自定義的安全可控的網(wǎng)絡(luò)。但是目前的數(shù)據(jù)中心中網(wǎng)絡(luò)架構(gòu)一旦確定很難動態(tài)更改。如同虛擬機的動態(tài)遷移一樣,虛擬網(wǎng)絡(luò)的動態(tài)遷移可以帶來一系列好處,包括:物理資源升級無宕機時間、收到攻擊時保證業(yè)務(wù)連續(xù)性、新用戶加入時可以動態(tài)擴(kuò)容等。本文中所討論的虛擬網(wǎng)絡(luò)遷移技術(shù),在未來的數(shù)據(jù)中心組網(wǎng)中可以提供一種更加動態(tài)、安全的思路。

        [1]Rodrigues H,Santos J R,Turner Y,et al.Gatekeeper: Supporting bandwidth guarantees for multi-tenant datacenter networks[J].USENIX WIOV,2011.

        [2]Watkins D.Programmable ASIC: U.S.Patent 6,588,006[P].2003-7-1.

        [3]Poellabauer C.Q-fabric: system support for continuous online quality management[J].2004.

        [4]McKeown N,Anderson T,Balakrishnan H,et al.OpenFlow:enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2): 69-74.

        [5]Sherwood R,Gibb G,Yap K K,et al.FlowVisor: A network virtualization layer[J].OpenFlow Switch Consortium,Tech.Rep,2009.

        [6]OpenFlow Switch Consortium.OpenFlow Switch Specification Version 1.3.0[J].2012.

        [7]Clark C,Fraser K,Hand S,et al.Live migration of virtual machines[C]//Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation-Volume 2.USENIX Association,2005: 273-286.

        猜你喜歡
        表項分片調(diào)用
        上下分片與詞的時空佈局
        詞學(xué)(2022年1期)2022-10-27 08:06:12
        一種改進(jìn)的TCAM路由表項管理算法及實現(xiàn)
        分片光滑邊值問題的再生核方法
        CDN存量MP4視頻播放優(yōu)化方法
        基于ARMA模型預(yù)測的交換機流表更新算法
        核電項目物項調(diào)用管理的應(yīng)用研究
        基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項轉(zhuǎn)換的流表調(diào)度優(yōu)化
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        欧美内射深喉中文字幕| av一区二区三区亚洲| 无码一区二区三区在线在看| 国产麻豆一区二区三区在线播放 | a级毛片100部免费看| 97精品伊人久久大香线蕉app| 久久久亚洲欧洲日产国产成人无码| 国产91熟女高潮一曲区| 在线观看日本一区二区三区四区| 国产精品无码素人福利不卡| 日韩成人无码| 亚洲AV无码一区二区三区ba| 一区二区三区少妇熟女高潮 | 影视av久久久噜噜噜噜噜三级| 亚洲精品国产精品国自产观看| 久久久国产精品樱花网站| av在线手机中文字幕| 日韩中文字幕不卡在线| 老女老肥熟女一区二区| 中国农村熟妇性视频| 亚洲人成电影在线无码| 国产精品一区2区三区| 视频国产一区二区在线| 91中文人妻熟女乱又乱| 国产精品无圣光一区二区| 日韩成人无码v清免费| 一区二区三区四区四色av| 国产免费操美女逼视频| 精品国产免费一区二区三区| 亚洲国产中文在线二区三区免| 亚洲av成人一区二区三区色| 二区三区三区视频在线观看| 国产精品泄火熟女| 日本精品a在线观看| 精品专区一区二区三区| 精品香蕉99久久久久网站| 久久人人爽人人爽人人片亞洲| 国产精品无码专区综合网| 精品久久日产国产一区| 一二三四区中文字幕在线| 天天爽天天爽夜夜爽毛片|