• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      許逸飛

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

      0 引言

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

      傳統(tǒng)TCP/IP網(wǎng)絡(luò)經(jīng)過30多年的發(fā)展已經(jīng)過度僵化。同時(shí),TCP/IP網(wǎng)絡(luò)也無法提供很好的資源劃分方法,這在當(dāng)前的數(shù)據(jù)中心應(yīng)用中都是十分嚴(yán)重的缺陷。【1】為了應(yīng)對(duì)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ò)是一種對(duì)于傳統(tǒng)TCP/IP網(wǎng)絡(luò)的升級(jí)與補(bǔ)充,是一種重要的SDN(軟件定義網(wǎng)絡(luò))的解決方案【4】。它的基本思想是將網(wǎng)絡(luò)的控制平面與數(shù)據(jù)平面互相分離,來實(shí)現(xiàn)集中的轉(zhuǎn)發(fā)規(guī)則與網(wǎng)絡(luò)拓?fù)涞目刂啤?/p>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      在目的分片中要修改成:

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

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

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

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

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

      3 實(shí)驗(yàn)與分析

      為了驗(yàn)證這套機(jī)制是否有效,本文設(shè)計(jì)了如下實(shí)驗(yàn):

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

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

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

      4 結(jié)論

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

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

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

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

      猜你喜歡
      表項(xiàng)分片調(diào)用
      上下分片與詞的時(shí)空佈局
      詞學(xué)(2022年1期)2022-10-27 08:06:12
      一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
      分片光滑邊值問題的再生核方法
      CDN存量MP4視頻播放優(yōu)化方法
      基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      治县。| 龙山县| 澄迈县| 庐江县| 浮梁县| 台北县| 新营市| 治县。| 柳江县| 司法| 阳江市| 蓬安县| 滨海县| 同仁县| 安丘市| 阜新| 瑞安市| 浦北县| 五河县| 固始县| 株洲市| 镇远县| 永靖县| 调兵山市| 商水县| 宝兴县| 德令哈市| 天台县| 云安县| 仁寿县| 铜川市| 延川县| 玉溪市| 台江县| 和林格尔县| 永吉县| 定襄县| 兴国县| 嘉义县| 读书| 甘泉县|