本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,具體涉及一種基于sdn的服務(wù)器增量在線升級(jí)方法及系統(tǒng)。
背景技術(shù):
指數(shù)級(jí)增長(zhǎng)的互聯(lián)網(wǎng)服務(wù)使得數(shù)據(jù)中心網(wǎng)絡(luò)作為不可替代的且非常重要的存儲(chǔ)傳輸處理大數(shù)據(jù)的基礎(chǔ)設(shè)施,成為支撐快速發(fā)展的互聯(lián)網(wǎng)服務(wù)和應(yīng)用的重要保障。這些以前所未有的速度增長(zhǎng)的互聯(lián)網(wǎng)的服務(wù)和應(yīng)用需要大量的計(jì)算和存儲(chǔ)資源,為了應(yīng)對(duì)這個(gè)迫切的需求,數(shù)據(jù)中心網(wǎng)絡(luò)以集中控制的方式覆蓋了大規(guī)模的計(jì)算網(wǎng)絡(luò)。在一個(gè)數(shù)據(jù)中心中,大量的計(jì)算和存儲(chǔ)的節(jié)點(diǎn)被一個(gè)特別設(shè)計(jì)的網(wǎng)絡(luò)相互連接著,這個(gè)特別的網(wǎng)絡(luò)就是數(shù)據(jù)中心網(wǎng)絡(luò)。
各式各樣的服務(wù)向數(shù)據(jù)中心網(wǎng)絡(luò)請(qǐng)求各種資源,數(shù)據(jù)中心網(wǎng)絡(luò)也積極的響應(yīng)各種服務(wù)請(qǐng)求,比如web搜索,存儲(chǔ),還有大規(guī)模的計(jì)算集群,hadoop等。因?yàn)椴煌姆?wù)對(duì)完成時(shí)間的要求是有很大的區(qū)別的,有的服務(wù)對(duì)服務(wù)完成時(shí)間有嚴(yán)格的限制,對(duì)應(yīng)到網(wǎng)絡(luò)中即對(duì)流的完成時(shí)間有嚴(yán)格的要求,而有的服務(wù)則對(duì)帶寬有要求,對(duì)時(shí)間的要求不嚴(yán)格。正因?yàn)閿?shù)據(jù)網(wǎng)絡(luò)中同時(shí)存在不同的服務(wù),對(duì)服務(wù)的完成時(shí)間也有不同的要求,如何滿足各式不同的服務(wù)的需求是學(xué)術(shù)界和工業(yè)界一直追求的目標(biāo)。其中,對(duì)于有嚴(yán)格完成時(shí)間限制的服務(wù)的需求更為迫切,所以如何最小化數(shù)據(jù)網(wǎng)絡(luò)中任務(wù)的完成時(shí)間是學(xué)者們一直關(guān)心并研究的問題并且提出了一系列的解決方案。這些解決方案基本都有升級(jí)服務(wù)器的需求,但是目前升級(jí)服務(wù)器的方案均是需要在斷電條件下才能夠?qū)嵤瑪嚯娚?jí)服務(wù)器,嚴(yán)重影響了企業(yè)的收益和用戶的體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中的關(guān)于服務(wù)器升級(jí)的問題,提出一種基于sdn的服務(wù)器增量在線升級(jí)方法及系統(tǒng)。
本發(fā)明提出的基于sdn的服務(wù)器增量在線升級(jí)方法,包括以下步驟:
s1:根據(jù)網(wǎng)絡(luò)的拓?fù)淝闆r,選擇升級(jí)的服務(wù)器;
s2:在升級(jí)服務(wù)器的過程中,對(duì)數(shù)據(jù)流的大小進(jìn)行區(qū)分,并對(duì)大流進(jìn)行重路由計(jì)算;
s3:選擇大流的重路由路徑,并從中選擇調(diào)度開銷最小的路徑;
s4:下發(fā)路徑,升級(jí)服務(wù)器。
優(yōu)選地,所述步驟s1包括:首先選擇影響因子最大的服務(wù)器,然后根據(jù)最小生成樹算法逐步升級(jí)剩余的服務(wù)器。
優(yōu)選地,所述步驟s2中對(duì)大流進(jìn)行重路由計(jì)算,是指根據(jù)鏈路的負(fù)載情況對(duì)調(diào)度的大流進(jìn)行路徑重路由計(jì)算,使得每條大流的流速均小于該流的新路徑中的可用帶寬最小的鏈路的帶寬,并且鏈路的實(shí)時(shí)帶寬利用率小于該鏈路利用率的閾值。
優(yōu)選地,所述步驟s3中選擇調(diào)度開銷最小的路徑,是指對(duì)大流的各條重路由備用路徑進(jìn)行調(diào)度開銷的計(jì)算,最終選擇與原路徑相比開銷最小的路徑作為可用的調(diào)度路徑。
優(yōu)選地,所述對(duì)大流的各條重路由備用路徑進(jìn)行調(diào)度開銷的計(jì)算,具體為
w(p′m)=w(p′m)+μ(p′m),
其中,w(p′m)為第m條大流fm的重路由備用路徑p′m的調(diào)度開銷,w(p′m)為所述備用路徑的固有開銷,μ(p′m)為所述備用路徑的可變開銷。
優(yōu)選地,所述w(p′m)為所述備用路徑中每條鏈路的固有開銷之和,即
其中,wj是指作為所述備用路徑p′m之前鏈路emj的固有開銷。
優(yōu)選地,所述μ(p′m)為所述備用路徑的可變開銷,
其中,θwj為所述備用路徑p′m在重路由后引起的鏈路emj的可變開銷,
優(yōu)選地,對(duì)第m條大流fm的各條重路由備用路徑進(jìn)行調(diào)度開銷的計(jì)算,最終選擇開銷最小的路徑作為可用的調(diào)度路徑,
其中,
本發(fā)明還提出一種基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng),包括sdn控制器和mininet平臺(tái),所述sdn控制器通過ryu管理器仿真實(shí)現(xiàn),所述ryu管理器中包含流量監(jiān)測(cè)裝置、拓?fù)浒l(fā)現(xiàn)裝置、服務(wù)器選擇裝置、路由計(jì)算裝置和流表項(xiàng)管理裝置;所述流量監(jiān)測(cè)裝置用于統(tǒng)計(jì)流量信息,同時(shí)也和所述拓?fù)浒l(fā)現(xiàn)裝置通訊,促進(jìn)網(wǎng)絡(luò)拓?fù)涞男纬?;所述拓?fù)浒l(fā)現(xiàn)裝置用于獲知網(wǎng)絡(luò)各鏈路的流量狀況,生成網(wǎng)絡(luò)的拓?fù)?;所述服?wù)器選擇裝置用于選擇出影響因子最大的服務(wù)器,從而確定優(yōu)先升級(jí)的服務(wù)器;路由計(jì)算裝置用于對(duì)大流的重路由代價(jià)進(jìn)行計(jì)算,選出調(diào)度開銷最小的重路由鏈路,傳遞給所述流表項(xiàng)管理裝置;流表項(xiàng)管理裝置用于將大流的路徑的變化做成新的流表的形式,下發(fā)到影響到的交換機(jī)中;所述mininet平臺(tái)中可以模擬出openflow交換機(jī)和host服務(wù)器,用于形成數(shù)據(jù)中心網(wǎng)絡(luò),所述sdn控制器控制所述mininet平臺(tái)執(zhí)行上述的方法。
本發(fā)明還提出一種包含計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)程序可操作來使計(jì)算機(jī)執(zhí)行上述的基于sdn的服務(wù)器增量在線升級(jí)方法。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果有:
本發(fā)明的基于sdn的服務(wù)器增量在線升級(jí)方法及系統(tǒng),不僅可以在線快速提升網(wǎng)絡(luò)性能,還實(shí)時(shí)的考慮流量的影響,利用sdn架構(gòu)下網(wǎng)絡(luò)狀態(tài)透明的條件,實(shí)時(shí)區(qū)分大小流,在部署服務(wù)器時(shí)對(duì)大流進(jìn)行動(dòng)態(tài)重路由,并且在大流重路由的備用路徑中,考慮鏈路利用率和調(diào)度的開銷情況,選擇調(diào)度開銷最小的路徑,可以最小化網(wǎng)絡(luò)延遲,最大程度地確保服務(wù)器增量在線升級(jí)的有效性和快捷性。
附圖說明
圖1是本發(fā)明實(shí)施例1中sdn構(gòu)架數(shù)據(jù)中心網(wǎng)絡(luò)示意圖。
圖2是本發(fā)明實(shí)施例1中基于sdn的服務(wù)器增量在線升級(jí)方法流程圖。
圖3是本發(fā)明實(shí)施例1中數(shù)據(jù)中心網(wǎng)絡(luò)節(jié)點(diǎn)連接示意圖。
圖4是本發(fā)明實(shí)施例1中具體的服務(wù)器升級(jí)及流量調(diào)度機(jī)制流程圖。
圖5是本發(fā)明實(shí)施例1中基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施方式并對(duì)照附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。
本發(fā)明的基于sdn的服務(wù)器增量在線升級(jí)方法及系統(tǒng),是在數(shù)據(jù)中心網(wǎng)絡(luò)中運(yùn)用sdn,數(shù)據(jù)中心網(wǎng)絡(luò)一般是一個(gè)企業(yè)實(shí)體在統(tǒng)一管理的,而sdn將數(shù)據(jù)的傳輸和控制相分離,集中控制數(shù)據(jù)的傳輸邏輯,如圖1所示,sdn控制器與sdn交換機(jī)通過openflow協(xié)議進(jìn)行交互。通過集中式的sdn控制器(controller)以標(biāo)準(zhǔn)化的接口對(duì)各種網(wǎng)絡(luò)設(shè)備進(jìn)行管理和配置,這種架構(gòu)為網(wǎng)絡(luò)帶來的可編程的特性,使得網(wǎng)絡(luò)資源的設(shè)計(jì)、管理和使用提供更多的可能性,從而更容易推動(dòng)網(wǎng)絡(luò)的革新與發(fā)展。傳統(tǒng)的數(shù)據(jù)傳輸協(xié)議tcp是在傳統(tǒng)的廣域網(wǎng)中產(chǎn)生的。對(duì)下層網(wǎng)絡(luò)和流量特別一無所知,通過增加和減小擁塞窗口大小來應(yīng)對(duì)網(wǎng)絡(luò)和流量的變化。而sdn可以動(dòng)態(tài)地根據(jù)網(wǎng)絡(luò)和流量的狀況來進(jìn)行擁塞控制,能對(duì)網(wǎng)絡(luò)的性能得到較大的提高,對(duì)全網(wǎng)的流量和網(wǎng)絡(luò)情況有著全局的視野。
基于sdn構(gòu)架下數(shù)據(jù)中心網(wǎng)絡(luò)的全局性和高效性,和數(shù)據(jù)中心網(wǎng)絡(luò)迫切的升級(jí)終端服務(wù)器以提高網(wǎng)絡(luò)性能的需求,本發(fā)明重點(diǎn)討論如何進(jìn)行對(duì)sdn管理的數(shù)據(jù)中心網(wǎng)絡(luò)中的服務(wù)器在線升級(jí),從而提高網(wǎng)絡(luò)的性能,提高企業(yè)收益與用戶體驗(yàn)。
數(shù)據(jù)中心網(wǎng)絡(luò)覆蓋范圍廣,服務(wù)器分布在全世界多個(gè)地方,想要對(duì)數(shù)據(jù)中心的服務(wù)器進(jìn)行部署,則必須增量異步進(jìn)行部署,保證數(shù)據(jù)網(wǎng)絡(luò)的正常運(yùn)行同時(shí)也要較快的提升網(wǎng)絡(luò)性能,而且調(diào)度的策略不對(duì)網(wǎng)絡(luò)形成搶占或退讓。如何在保證網(wǎng)絡(luò)公平性的前提下異步對(duì)數(shù)據(jù)網(wǎng)絡(luò)進(jìn)行升級(jí)是本發(fā)明解決的一個(gè)問題。小到某個(gè)機(jī)房?jī)?nèi)機(jī)架上服務(wù)器的選擇,大到整個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)中區(qū)域的選擇都具有重要意義。要升級(jí)數(shù)據(jù)中心網(wǎng)絡(luò)的話必須要保證以下幾點(diǎn):
有效性:升級(jí)網(wǎng)絡(luò)的過程中,其他網(wǎng)絡(luò)要正常運(yùn)行,保證網(wǎng)絡(luò)的有效性;
公平性:已經(jīng)升級(jí)的網(wǎng)絡(luò)和還沒升級(jí)的網(wǎng)絡(luò)要和平共存,即已經(jīng)升級(jí)的網(wǎng)絡(luò)不能在流量上形成侵占,保證網(wǎng)絡(luò)的公平性;
便利性:升級(jí)服務(wù)器時(shí)應(yīng)該考慮便利性,即升級(jí)了某個(gè)服務(wù)器后應(yīng)該盡可能升級(jí)其臨近的服務(wù)器,減少升級(jí)成本。
首先,針對(duì)同一個(gè)區(qū)域的數(shù)據(jù)中心網(wǎng)絡(luò)的升級(jí)優(yōu)化問題,如果把服務(wù)器看成一個(gè)點(diǎn)v,則數(shù)據(jù)中心中的流量則可以看成一個(gè)矩陣m。m中的每個(gè)點(diǎn)都是兩個(gè)點(diǎn)之間交互的流量。
其中
同理,應(yīng)該優(yōu)先升級(jí)鏈路利用率較高的服務(wù)器對(duì),這樣可以優(yōu)先升級(jí)鏈路利用率較高的最短路徑,以盡快地提高網(wǎng)絡(luò)性能。網(wǎng)絡(luò)中的鏈路是一些服務(wù)器共同使用的,一條鏈路可能對(duì)應(yīng)好幾個(gè)服務(wù)器,那應(yīng)該優(yōu)先升級(jí)哪個(gè)服務(wù)器呢?涉及到了服務(wù)器的選擇問題。
根據(jù)有效性原則,升級(jí)服務(wù)器時(shí)應(yīng)該保證服務(wù)器正常運(yùn)行,而升級(jí)服務(wù)器時(shí)會(huì)導(dǎo)致服務(wù)器不可用,造成某些鏈路斷開,部分鏈路的負(fù)載會(huì)增加,增加流量阻塞和增加服務(wù)延遲的風(fēng)險(xiǎn),此時(shí)應(yīng)該檢測(cè)鏈路的負(fù)載,進(jìn)行必要的流量調(diào)度,涉及到流量的調(diào)度開銷代價(jià)。
服務(wù)器的升級(jí)涉及到的開銷,包括鏈路變化開銷和流量調(diào)度產(chǎn)生的額外的開銷。在升級(jí)服務(wù)器時(shí),可以先計(jì)算服務(wù)器之間的路徑開銷,在選擇服務(wù)器時(shí),可以先生成最小生成樹,選擇開銷最小的鏈路相連的服務(wù)器,因?yàn)殚_銷小,更容易被重復(fù)利用,及早升級(jí),對(duì)降低延遲更有效果。升級(jí)鏈路開銷小的鏈路時(shí),流量會(huì)重新調(diào)度到另外的路徑,增加其他路徑的開銷和調(diào)度開銷,如果出現(xiàn)了鏈路擁塞情況,則會(huì)增加遲延,降低服務(wù)質(zhì)量。
鏈路的路徑開銷變化和具體的調(diào)度的路徑有關(guān),流量的調(diào)度開銷包括重新計(jì)算最優(yōu)路徑的開銷,和增加的流量給路徑帶來的開銷。當(dāng)重新承載流量的路徑的最高鏈路利用率不超過90%時(shí),增加的流量不會(huì)給此路徑帶來擁塞。
在流量的公平性方面,可以假設(shè)其他服務(wù)器的流量是隨機(jī)分散到sdn交換機(jī)的隊(duì)列中,可以證明,其完成的時(shí)間并沒有增加。于是,可以保證網(wǎng)絡(luò)升級(jí)過程中,沒有升級(jí)的節(jié)點(diǎn)和升級(jí)的節(jié)點(diǎn)之間流量的公平性。
本發(fā)明實(shí)施例提出一種基于sdn的服務(wù)器增量在線升級(jí)方法,即是在sdn架構(gòu)下的數(shù)據(jù)中心網(wǎng)絡(luò)中,根據(jù)實(shí)時(shí)的網(wǎng)絡(luò)狀況,通過服務(wù)器篩選機(jī)制來確定優(yōu)先升級(jí)的服務(wù)器,通過大流重路由從而使得網(wǎng)絡(luò)可以平穩(wěn)安全的進(jìn)行增量部署升級(jí)。具體地,本實(shí)施例基于sdn的服務(wù)器增量在線升級(jí)方法,如圖2所示,包括以下步驟:s1:根據(jù)網(wǎng)絡(luò)的拓?fù)淝闆r,選擇升級(jí)的服務(wù)器;s2:在升級(jí)服務(wù)器的過程中,對(duì)數(shù)據(jù)流的大小進(jìn)行區(qū)分,并對(duì)大數(shù)據(jù)流進(jìn)行重路由計(jì)算;s3:選擇大數(shù)據(jù)流的重路由路徑,并從中選擇調(diào)度開銷最小的路徑;s4:下發(fā)路徑,升級(jí)服務(wù)器。其中步驟s1中根據(jù)網(wǎng)絡(luò)的拓?fù)淝闆r,選擇升級(jí)的服務(wù)器,首先選擇影響因子最大的服務(wù)器,然后根據(jù)最小生成樹算法逐步升級(jí)剩余的服務(wù)器。以下將對(duì)上述步驟進(jìn)行詳細(xì)說明。
s1:根據(jù)網(wǎng)絡(luò)的拓?fù)淝闆r,選擇升級(jí)的服務(wù)器
sdn控制器根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況,收到升級(jí)服務(wù)器的指令后,首先根據(jù)網(wǎng)絡(luò)的拓?fù)淝闆r,選擇影響因子最大的服務(wù)器進(jìn)行部署或升級(jí),然后根據(jù)最小生成樹算法逐步升級(jí)剩余的服務(wù)器。
按照服務(wù)器的影響因子進(jìn)行排序,選擇影響因子最大的服務(wù)器,升級(jí)影響因子最大的服務(wù)器,在服務(wù)器上部署減少延遲的方案后,可以最快的提高數(shù)據(jù)中心網(wǎng)絡(luò)的性能。當(dāng)控制器收到升級(jí)服務(wù)器的指令時(shí),啟動(dòng)選擇服務(wù)器算法,在未升級(jí)的服務(wù)器中選擇當(dāng)前應(yīng)該升級(jí)的服務(wù)器。
在篩選網(wǎng)絡(luò)中的即將被升級(jí)的服務(wù)器時(shí),應(yīng)該升級(jí)鏈路開銷最小的鏈路兩端連接的服務(wù)器,因?yàn)橐来紊?jí)最小鏈路端的服務(wù)器,可以使升級(jí)的代價(jià)最小。然而根據(jù)最小生成樹算法,應(yīng)該選擇任意服務(wù)器作為首先升級(jí)的服務(wù)器,然后根據(jù)升級(jí)代價(jià)最小的原則,依次升級(jí)其他服務(wù)器。但是選擇不同的服務(wù)器作為第一個(gè)升級(jí)的服務(wù)器的升級(jí)開銷是不一樣的,如何選擇首先升級(jí)的服務(wù)器從而使總體升級(jí)代價(jià)最小呢?
基于總升級(jí)代價(jià)最小的最小生成樹算法是逐個(gè)升級(jí)與已升級(jí)服務(wù)器相連的最短路徑的服務(wù)器,所以在升級(jí)服務(wù)器時(shí)優(yōu)先選擇與其他服務(wù)器有最多連接路徑的服務(wù)器。在本實(shí)施例中,定義服務(wù)器的影響度或影響因子,即服務(wù)器與其他服務(wù)器相連的路徑數(shù),為α。α越大,即通過該服務(wù)器的路徑越多,說明該服務(wù)器與其他服務(wù)器的聯(lián)系越緊密,其對(duì)網(wǎng)絡(luò)的影響就越大。
將網(wǎng)絡(luò)中的服務(wù)器看成一個(gè)個(gè)互相連接的節(jié)點(diǎn)。節(jié)點(diǎn)之間的連接是他們之間的路徑長(zhǎng)度,也代表路徑的固有開銷。圖3是一個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)的示例圖,可以看出8個(gè)服務(wù)器之間有多條路徑,且有固定的開銷。比如,a服務(wù)器和b的固有開銷為2,a和d之間的固有開銷為5。且a、b、f、d的影響度為3,c、h為2,而e、g的影響度為1。當(dāng)一條路徑的固有開銷比較低,那么這條路徑往往會(huì)受到其他服務(wù)器的青睞,成為其他服務(wù)器的中間路徑。假設(shè)圖中的路徑都是雙向的,初始的服務(wù)器應(yīng)該選擇與其他服務(wù)器連接最多的,以圖3為例,由于a、b、f、d的影響度均為3,可以隨機(jī)選擇其中之一作為初始升級(jí)的服務(wù)器,比如,隨機(jī)選擇a作為初始升級(jí)的服務(wù)器,然后選擇與a相連的鏈路開銷最小的服務(wù)器,由于b和a的之間固有開銷為2,f和a的之間固有開銷為3,d和a的之間固有開銷為5,因此,b和a的之間的鏈路開銷最小,可以將b服務(wù)器作為第二升級(jí)的服務(wù)器。
選擇初始服務(wù)器,然后以初始服務(wù)器為根,將網(wǎng)絡(luò)中的其他服務(wù)器節(jié)點(diǎn)按照最小生成樹方法,生成最小生成樹,根據(jù)依次加入的服務(wù)器節(jié)點(diǎn)來升級(jí)服務(wù)器。這種單純的考慮路徑固有開銷的方法雖然可行,但是弊端就是在升級(jí)某個(gè)服務(wù)器的時(shí)候,相關(guān)的服務(wù)就會(huì)被影響甚至被取消。根據(jù)有效性原則,升級(jí)服務(wù)器時(shí)應(yīng)該保證服務(wù)器正常運(yùn)行,而升級(jí)服務(wù)器時(shí)會(huì)導(dǎo)致服務(wù)器不可用,造成某些鏈路斷開,部分鏈路的負(fù)載會(huì)增加,增加流量阻塞和增加服務(wù)延遲的風(fēng)險(xiǎn),此時(shí)應(yīng)該檢測(cè)鏈路的負(fù)載,進(jìn)行必要的流量調(diào)度,涉及到流量的調(diào)度開銷代價(jià)。本實(shí)施例通過考慮流量的影響,來盡可能減小升級(jí)服務(wù)器的開銷。
s2:在升級(jí)服務(wù)器的過程中,對(duì)數(shù)據(jù)流的大小進(jìn)行區(qū)分,并對(duì)大數(shù)據(jù)流進(jìn)行重路由計(jì)算
在升級(jí)服務(wù)器的過程中,考慮到服務(wù)器負(fù)載的數(shù)據(jù)流量特點(diǎn),即大數(shù)據(jù)流(簡(jiǎn)稱大流)持續(xù)時(shí)間長(zhǎng),時(shí)間延遲不太敏感,小數(shù)據(jù)流(簡(jiǎn)稱小流)持續(xù)時(shí)間短,對(duì)時(shí)間延遲敏感等特點(diǎn),對(duì)流量進(jìn)行區(qū)別處理,尤其對(duì)大流進(jìn)行重路由計(jì)算。
數(shù)據(jù)流的大小取決于其包含的字節(jié)的多少,數(shù)據(jù)流越大,網(wǎng)絡(luò)中持續(xù)的時(shí)間越長(zhǎng),所以可以通過周期性的監(jiān)測(cè)流傳輸?shù)淖止?jié)變化量來區(qū)分流的大小。sdn架構(gòu)下,利用sdn交換機(jī)內(nèi)計(jì)數(shù)器的統(tǒng)計(jì)信息實(shí)現(xiàn)sdn控制器對(duì)流量的監(jiān)測(cè),并按照
給定數(shù)據(jù)中心網(wǎng)絡(luò)g=(v,e),其中,v為非空節(jié)點(diǎn)集,代表網(wǎng)絡(luò)的節(jié)點(diǎn)組合;而e為邊集,代表網(wǎng)絡(luò)所有節(jié)點(diǎn)的鏈路集合,而每一鏈路e∈e有固有開銷w。另外,定義p是從起點(diǎn)s∈v與d∈v的路徑集,其中第i條路徑用pi來表示。pi=ei1→ei2→…→eik代表第i條路徑上的k條鏈路,其中eij|j=1,2,...k指的是第i條路徑的第k條鏈路。
鏈路利用率,鏈路eij∈e的實(shí)時(shí)帶寬利用率,ηij定義為鏈路已用帶寬與該鏈路的總帶寬之比,如式(1)所示:
其中bij代表鏈路的總帶寬,即最大傳輸速率,而loadij代表的是已經(jīng)占用的鏈路帶寬,即鏈路上的負(fù)載大小。
根據(jù)鏈路負(fù)載情況對(duì)調(diào)度的大流進(jìn)行路徑重路由計(jì)算。假設(shè)重路由前,服務(wù)器經(jīng)過n條數(shù)據(jù)流,其中m條為大數(shù)據(jù)流,用f={f1,f2,...,fm,...,fm}來表示。第m條數(shù)據(jù)流用fm表示,其流速用vm來表示,fm的其中一條路徑用pm來表示,而pm=em1→em2→…→emk,表示該路徑由k條鏈路組成,emk表示該路徑的第k條鏈路,ηk表示該鏈路的實(shí)時(shí)帶寬利用率。另外,定義bj為該鏈路的可用帶寬,則bj=bthj-loadj,其中,bthj代表第j條鏈路的擁塞閾值,loadj代表的是該鏈路的負(fù)載。
在進(jìn)行重路由的時(shí)候,首先在拓?fù)錁渲袑⒁?jí)的服務(wù)器給刪去,與之直接相連的鏈路也刪除。另外,鏈路中可用帶寬不足的鏈路也需要?jiǎng)h除,即每條數(shù)據(jù)流的流速必須小于該流的新路徑中的可用帶寬最小的鏈路的帶寬。因此,fm的重路由的備用路徑p′m=em1→em2→…→eml,則其emj|j=1,2,l都滿足bj>vm,且鏈路的實(shí)時(shí)帶寬利用率ηj小于該鏈路利用率的閾值,其中,bj為鏈路的可用帶寬,vm為數(shù)據(jù)流的流速。
s3:選擇大數(shù)據(jù)流的重路由路徑,并從中選擇調(diào)度開銷最小的路徑
在進(jìn)行流量調(diào)度的時(shí)候,結(jié)合路徑固有開銷的變化量和調(diào)度開銷的變化,來考慮將流量如何調(diào)度到哪條路徑上。由此,引入調(diào)度算法機(jī)制,具體如下:
首先對(duì)要升級(jí)的服務(wù)器按照影響度進(jìn)行選擇,將影響度或影響因子最大的服務(wù)器為首服務(wù)器,對(duì)經(jīng)過該首服務(wù)器的大流的各條調(diào)度路徑進(jìn)行路徑開銷的計(jì)算,最終選擇與原路徑相比開銷最小的路徑作為可用的調(diào)度路徑,而且要保證調(diào)度路徑上的每一條鏈路都具有充足的帶寬,實(shí)現(xiàn)最優(yōu)調(diào)度路徑的選擇。之后,按照最小生成樹的原則確定第二個(gè)要升級(jí)的服務(wù)器。
具體的服務(wù)器升級(jí)及流量調(diào)度機(jī)制如圖4所示,該算法是基于現(xiàn)有路由器的控制功能實(shí)現(xiàn)的,為了與其兼容,并在不升級(jí)服務(wù)器進(jìn)行流量調(diào)度的時(shí)候,原有的路由器仍然能發(fā)揮較好的作用,所以保留了路由初始化這個(gè)環(huán)節(jié)。
當(dāng)sdn控制器收到升級(jí)服務(wù)器的請(qǐng)求時(shí),會(huì)進(jìn)行路由初始化計(jì)算,按照最短路徑為路由,并向相關(guān)sdn交換機(jī)下發(fā)流表項(xiàng)。然后sdn控制器通過周期性的發(fā)送state-request消息問詢sdn交換機(jī)及其端口狀態(tài)來對(duì)所有的鏈路進(jìn)行流量監(jiān)控,同時(shí)也進(jìn)行擁塞的判斷。sdn控制器根據(jù)網(wǎng)絡(luò)狀況進(jìn)行判斷后,選出優(yōu)先升級(jí)的服務(wù)器,然后判斷經(jīng)過該服務(wù)器的最短路徑上是否有大流通過,如果發(fā)現(xiàn)有大流通過,則進(jìn)行重路由計(jì)算。
動(dòng)態(tài)重路由計(jì)算,需要首先對(duì)該路徑上的大小流進(jìn)行分類,考慮到小流占用帶寬小,延續(xù)時(shí)間短和對(duì)時(shí)延敏感的特性,不宜對(duì)其進(jìn)行調(diào)度。所以,選擇大數(shù)據(jù)流進(jìn)行重路由計(jì)算,并且選擇路徑開銷和調(diào)度開銷最小的路徑。
定義重路由的備用路徑p′m的開銷w(p′m)=w(p′m)+μ(p′m),其中w(p′m)為重路由的備用路徑的固有開銷,即每條鏈路的固有開銷之和,如式(2)所示:
其中wj代表的是作為備用路徑p′m之前鏈路emj的固有開銷。
μ(p′m)為其可變開銷,因?yàn)楸贿x為調(diào)度的最終路徑后會(huì)在該路徑上增加流量,增加路徑的開銷,可以用式(3)來表示,
其中,θwj為備用路徑p′m在重路由后引起的鏈路emj的可變開銷,因?yàn)殒溌返目勺冮_銷會(huì)受到鏈路增加的負(fù)載而引起的鏈路開銷變化和對(duì)全網(wǎng)的影響,故可以用式(4)來表示,
其中,
之后,對(duì)第m條數(shù)據(jù)流fm進(jìn)行所有路徑的重路由開銷計(jì)算,選擇重路由開銷最小的路徑,即可以用式(5)來表示,
由此可以選出大數(shù)據(jù)流重路由開銷最小的路徑。
s4:下發(fā)路徑,升級(jí)服務(wù)器
控制器制定并下發(fā)新的路由規(guī)則,將服務(wù)器上的大流進(jìn)行重路由,升級(jí)服務(wù)器。
本實(shí)施例還提出一種基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng),包括sdn控制器和mininet平臺(tái),所述mininet平臺(tái)中可以模擬出openflow交換機(jī)和host服務(wù)器,用于形成數(shù)據(jù)中心網(wǎng)絡(luò),所述sdn控制器控制所述mininet平臺(tái)執(zhí)行所述的服務(wù)器增量在線升級(jí)方法。所述sdn控制器通過ryu管理器仿真實(shí)現(xiàn),所述ryu管理器,如圖5所示,包含流量監(jiān)測(cè)裝置、拓?fù)浒l(fā)現(xiàn)裝置、服務(wù)器選擇裝置、路由計(jì)算裝置和流表項(xiàng)管理裝置。下面具體的介紹每一個(gè)裝置的功能和實(shí)現(xiàn)。
(1)流量監(jiān)測(cè)裝置
流量監(jiān)測(cè)裝置使用openflow協(xié)議的協(xié)議報(bào)文(packet-in操作,packet-out操作)可以獲取交換機(jī)的信息(吞吐量、網(wǎng)絡(luò)負(fù)載)。同時(shí)交互機(jī)也會(huì)在發(fā)生網(wǎng)絡(luò)異常時(shí)及時(shí)通知(of-config)管理進(jìn)程??刂破骺梢酝ㄟ^這個(gè)裝置統(tǒng)計(jì)流量信息,同時(shí)也和拓?fù)浒l(fā)現(xiàn)裝置通訊促進(jìn)網(wǎng)絡(luò)拓?fù)涞男纬伞?/p>
(2)拓?fù)浒l(fā)現(xiàn)裝置
拓?fù)浒l(fā)現(xiàn)裝置與流量監(jiān)測(cè)裝置進(jìn)行交互,從而知道當(dāng)前的網(wǎng)絡(luò)各鏈路的流量狀況。生成網(wǎng)絡(luò)的拓?fù)洌梢詭椭?wù)器選擇出影響因子最大的服務(wù)器,從而確定優(yōu)先升級(jí)的服務(wù)器。
控制器在執(zhí)行鏈路發(fā)現(xiàn)過程時(shí),會(huì)首先通過一個(gè)packet-out消息向所有與之連接的交換機(jī)發(fā)送lldp數(shù)據(jù)包,該消息命令交換機(jī)將lldp數(shù)據(jù)包發(fā)送給所有端口,一旦交換機(jī)接收到packet-out消息,就會(huì)把lldp數(shù)據(jù)包通過其所有的端口發(fā)送給與之連接的設(shè)備,如果其鄰居交換機(jī)是一臺(tái)openflow交換機(jī),那么該交換機(jī)將自行相應(yīng)的流表查找操作。因?yàn)榻粨Q機(jī)中并沒有專門的流表項(xiàng)用于處理lldp消息,所有它將通過一個(gè)packet-in消息將數(shù)據(jù)包發(fā)送給控制器。而控制器在收到packet-in消息后,會(huì)對(duì)數(shù)據(jù)包進(jìn)行分析并在其保存的鏈路發(fā)現(xiàn)表中創(chuàng)建兩臺(tái)交換機(jī)之間的鏈接記錄。網(wǎng)絡(luò)中其他交換機(jī)也都采用相同的方式向控制器發(fā)送packet-in消息,因此控制器就能夠創(chuàng)建完整的網(wǎng)絡(luò)拓?fù)湟晥D,基于這樣的視圖,控制器可以每臺(tái)交換機(jī)推送下發(fā)不同的流表項(xiàng)。
(3)服務(wù)器選擇裝置
服務(wù)器選擇裝置拿到最新網(wǎng)絡(luò)拓?fù)渲?,按照服?wù)器選擇算法選出優(yōu)先升級(jí)的服務(wù)器。因?yàn)槊總€(gè)終端所處的網(wǎng)絡(luò)狀況不同,升級(jí)服務(wù)器的難度也不盡相同??紤]升級(jí)代價(jià)時(shí),本實(shí)施例不僅考慮了鏈路固有開銷的影響,也將動(dòng)態(tài)的流量變化考慮到其中,而且考慮到了流量本身的特點(diǎn)。選擇了要升級(jí)的服務(wù)器后,利用of-config消息將服務(wù)器的端口設(shè)置為disable.然后將目前流信息反饋給路由計(jì)算裝置,得到大流的重路由的開銷大小。
(4)路由計(jì)算裝置
路由計(jì)算裝置從服務(wù)器選擇裝置得到下一步要升級(jí)的服務(wù)器,并且和流量監(jiān)測(cè)裝置配合,得到將要升級(jí)的服務(wù)器的流量狀況,因?yàn)榇罅骱托×鞯谋旧硖攸c(diǎn),小流持續(xù)時(shí)間短且時(shí)延敏感,大流持續(xù)時(shí)間長(zhǎng)且時(shí)延不敏感,所以在升級(jí)服務(wù)器時(shí),可以等待小流完成然后對(duì)大流進(jìn)行重路由。
重路由即將大流重新路由到其他路徑,重路由包括路由路徑本身的固定的開銷代價(jià),還有流量給新鏈路帶來的負(fù)載,所以,路由計(jì)算裝置對(duì)大流的重路由代價(jià)進(jìn)行計(jì)算,選出調(diào)度開銷最小、最合適的重路由鏈路,傳遞給流表項(xiàng)管理裝置。
(5)流表項(xiàng)管理裝置
流表項(xiàng)管理裝置將大流的路徑的變化做成新的流表的形式,下發(fā)到影響到的交換機(jī)中。交換機(jī)完成新流表項(xiàng)的安裝后,即可對(duì)原來的流進(jìn)行調(diào)度。sdn控制器通過下發(fā)流表項(xiàng)來實(shí)現(xiàn)對(duì)sdn交換機(jī)設(shè)備的控制。
本實(shí)施例的基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng),采取的是主動(dòng)的流表項(xiàng)下發(fā)。在路由計(jì)算裝置選出重路由的路徑后,將這些路徑信息傳給流表項(xiàng)管理裝置,流表項(xiàng)管理裝置制定相應(yīng)的流表項(xiàng)規(guī)則并且下發(fā)給有關(guān)的交換機(jī),實(shí)現(xiàn)流量的快速轉(zhuǎn)移,最大化的減小網(wǎng)絡(luò)的延遲。
實(shí)施例2
在本發(fā)明的基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng)中,sdn控制器下發(fā)流表分為主動(dòng)下發(fā)和被動(dòng)下發(fā)兩種。主動(dòng)下發(fā)是指數(shù)據(jù)包達(dá)到openflow交換機(jī)之前就進(jìn)行流表的配置,在數(shù)據(jù)包達(dá)到交換機(jī)后,交換機(jī)可以直接安裝配置好的流表項(xiàng)進(jìn)行轉(zhuǎn)發(fā)。這種做法提升了交換機(jī)處理數(shù)據(jù)包的效率,但是對(duì)控制器增加了壓力。被動(dòng)的流表配置是指數(shù)據(jù)包到達(dá)交換機(jī)之后,交換機(jī)沒有發(fā)現(xiàn)與之匹配的流表項(xiàng),只好將其送給控制器處理??刂破靼l(fā)現(xiàn)了流相關(guān)的信息之后就會(huì)將其路徑返回給交換機(jī)并且緩存在交換機(jī)里。被動(dòng)的流表項(xiàng)管理能更有效的利用交換機(jī)上的存儲(chǔ)資源,但是會(huì)增加流表設(shè)置時(shí)間。本發(fā)明對(duì)sdn控制器下發(fā)流表項(xiàng)的方式不進(jìn)行限定。
在本實(shí)施例中,基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng),流表項(xiàng)管理裝置采取被動(dòng)的流表項(xiàng)下發(fā),控制器發(fā)現(xiàn)了流相關(guān)的信息之后就會(huì)將其路徑返回給交換機(jī)并且緩存在交換機(jī)里,能更有效的利用交換機(jī)上的存儲(chǔ)資源。
實(shí)施例3
在本實(shí)施例中,基于sdn的服務(wù)器增量在線升級(jí)系統(tǒng),為一種包含計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)程序可操作來使計(jì)算機(jī)執(zhí)行上述的基于sdn的服務(wù)器增量在線升級(jí)方法。
本發(fā)明的基于sdn的服務(wù)器增量在線升級(jí)方法及系統(tǒng),不僅可以在線快速提升網(wǎng)絡(luò)性能,還實(shí)時(shí)的考慮流量的影響,利用sdn架構(gòu)下網(wǎng)絡(luò)狀態(tài)透明的條件,實(shí)時(shí)區(qū)分大小流,在部署服務(wù)器時(shí)對(duì)大流進(jìn)行動(dòng)態(tài)重路由,并且在大流重路由的備用路徑中,考慮鏈路利用率和調(diào)度的開銷情況,選擇調(diào)度開銷最小的路徑,可以最小化網(wǎng)絡(luò)延遲,最大程度地確保服務(wù)器增量在線升級(jí)的有效性和快捷性。
以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施例對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干等同替代或明顯變型,而且性能或用途相同,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。