一種二層分布式多控制器架構(gòu)及構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及SDN (Software Defined Network,軟件定義網(wǎng)絡(luò))控制器領(lǐng)域,具體 涉及一種二層分布式多控制器架構(gòu)及構(gòu)建方法。
【背景技術(shù)】
[0002] 用于SDN的分布式控制器已經(jīng)被提出用于解決控制器中的可擴(kuò)展性和可靠性問(wèn) 題。這些分布式控制器將控制邏輯相關(guān)的數(shù)據(jù)包處理架構(gòu)移動(dòng)到外部控制器。然而,他們 的性能特點(diǎn)在很大程度上未得到研究。控制器(Controller)是整個(gè)SDN的核心,它負(fù)責(zé)對(duì) 底層轉(zhuǎn)發(fā)設(shè)備進(jìn)行監(jiān)測(cè)與控制的同時(shí),向上層應(yīng)用提供接口,因此它是連接底層網(wǎng)絡(luò)設(shè)備 與上層應(yīng)用的橋梁。
[0003] Ethane和OpenFlow為互聯(lián)網(wǎng)的創(chuàng)新提供了一個(gè)完全成熟的可編程平臺(tái)。在SDN 中,邏輯上集中的控制器簡(jiǎn)化了網(wǎng)絡(luò)控制邏輯的修改,并使得數(shù)據(jù)平臺(tái)和控制平臺(tái)可以獨(dú) 立發(fā)展,與此同時(shí),也帶來(lái)了可擴(kuò)展性和可靠性方面的問(wèn)題。SDN多控制器能較好地解決 SDN集中化的網(wǎng)絡(luò)控制平臺(tái)中網(wǎng)絡(luò)可擴(kuò)展性和可靠性方面的問(wèn)題。本發(fā)明研究集中在二層 結(jié)構(gòu)控制器上,當(dāng)前對(duì)于控制器的研究分為以下幾類。
[0004] (1)根據(jù)多控制器研究中控制器是否具有全網(wǎng)視圖,可以將控制器研究分為全網(wǎng) 視圖控制器及局部網(wǎng)絡(luò)視圖控制器研究。全網(wǎng)視圖控制器是指一個(gè)網(wǎng)絡(luò)中的每個(gè)控制器 都具有整個(gè)網(wǎng)絡(luò)的全局視圖,如HyperFlow和D-ZENIC。HyperFlow中每個(gè)控制器中的應(yīng) 用程序?qū)嵗ㄟ^(guò)一個(gè)全局的發(fā)布或訂閱系統(tǒng),有選擇地發(fā)布改變系統(tǒng)狀態(tài)事件,其他控制 器復(fù)制已發(fā)布的事件來(lái)更新自身狀態(tài),這樣HyperFlow中每個(gè)控制器都具有了全局網(wǎng)絡(luò)視 圖。局部網(wǎng)絡(luò)視圖控制器研究是指網(wǎng)絡(luò)中控制器都不具有整個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)的完整信息, 如 Devolved。
[0005] (2)根據(jù)控制器之間管理的網(wǎng)絡(luò)設(shè)備之間是否有交叉,可以將多控制器的研究分 為有交叉管理和無(wú)交叉管理。有交叉管理是指多控制器研究中,單個(gè)網(wǎng)絡(luò)設(shè)備可以受到多 于一個(gè)的控制器管理,如DevolvecUElastiCon。無(wú)交叉管理是指每個(gè)控制器節(jié)點(diǎn)管理網(wǎng)絡(luò) 的一部分,且單個(gè)網(wǎng)絡(luò)設(shè)備僅受一個(gè)控制器管理,如HyperFlow。有交叉管理的多控制器之 間可以進(jìn)行載荷均衡,且對(duì)于網(wǎng)絡(luò)設(shè)備而言,具有更好的控制可靠性,但是會(huì)帶來(lái)更多的通 信量。
[0006] (3)根據(jù)網(wǎng)絡(luò)中控制器層級(jí)數(shù)可以將多控制器研究分為一級(jí)控制器和兩級(jí)控制器 研究。兩級(jí)控制器是指網(wǎng)絡(luò)中有一個(gè)控制器作為控制器協(xié)調(diào)者來(lái)控制管理其他控制器的操 作,如Kandoo、D-ZENIC。Kandoo構(gòu)建了兩層的控制器:直接控制器和間接控制器。直接控 制器是一群既不互聯(lián)又無(wú)全局網(wǎng)絡(luò)狀態(tài)的控制器,直接控制器盡可能地接近網(wǎng)絡(luò)設(shè)備處理 本地應(yīng)用。間接控制器是管理全局網(wǎng)絡(luò)狀態(tài)的邏輯上集中的控制器。間接控制器在負(fù)責(zé) 全網(wǎng)狀態(tài)的應(yīng)用的同時(shí),負(fù)責(zé)直接控制器之間的協(xié)調(diào)工作。一級(jí)控制器是指,在網(wǎng)絡(luò)中不 存在控制器的單一協(xié)調(diào)者,網(wǎng)絡(luò)中所有控制器協(xié)同合作完成整個(gè)網(wǎng)絡(luò)的控制,如Devolved、 HyperFlow。
[0007] (4)多控制器研究中還可以分為靜態(tài)管理和動(dòng)態(tài)管理等兩類。靜態(tài)管理是指在整 個(gè)網(wǎng)絡(luò)運(yùn)行中,網(wǎng)絡(luò)設(shè)備與控制器之間的管理關(guān)系不再改變,如Onix、HyperFlow。動(dòng)態(tài)管 理是指,在整個(gè)網(wǎng)絡(luò)運(yùn)行中,網(wǎng)絡(luò)設(shè)備可以變更它的控制器,如ElastiCon。ElastiCon中網(wǎng) 絡(luò)設(shè)備可以根據(jù)控制器負(fù)載量的變化,從一個(gè)負(fù)載量較多的控制器轉(zhuǎn)移到一個(gè)負(fù)載量較少 的控制器。
【發(fā)明內(nèi)容】
[0008] 為了克服現(xiàn)有技術(shù)的不足,為了提高SDN控制器控制效率并使其更具有現(xiàn)實(shí)可操 作性,本發(fā)明提供一種二層分布式多控制器架構(gòu)及構(gòu)建方法。
[0009] 本發(fā)明在多控制器交叉管理(即單網(wǎng)絡(luò)可以受多控制器管理)的基礎(chǔ)上,提出了控 制器松弛管理思想,以提高控制器與網(wǎng)絡(luò)設(shè)備之間的通信效率和控制器的管理效率。本發(fā) 明的二層分布式多控制器架構(gòu),直接控制器與網(wǎng)絡(luò)設(shè)備交互比較頻繁,距離比較近,互動(dòng)效 率比較高;間接控制器承擔(dān)需要全網(wǎng)信息的控制任務(wù),數(shù)量較少,在保證網(wǎng)絡(luò)狀態(tài)一致性上 效率較高。間接控制器下發(fā)全網(wǎng)命令,具體實(shí)施由不需要全網(wǎng)狀態(tài)的直接控制器進(jìn)行,這樣 大大提高了布置網(wǎng)絡(luò)的效率。
[0010] 本發(fā)明提出的二層結(jié)構(gòu)與【背景技術(shù)】中的Kandoo不同,在Kandoo中,間接控制器與 網(wǎng)絡(luò)設(shè)備是一對(duì)多的關(guān)系,而本發(fā)明中是多對(duì)多的關(guān)系,即一個(gè)網(wǎng)絡(luò)設(shè)備的行為可能受多 個(gè)間接控制器影響。這樣一來(lái),各個(gè)間接控制器之間實(shí)現(xiàn)網(wǎng)絡(luò)了資源共享,從而提高了整個(gè) 網(wǎng)絡(luò)的可靠性。同時(shí)各個(gè)間接控制器容量約束的設(shè)定,使得每個(gè)間接控制器能工作在最佳 狀態(tài),最大化的利用了設(shè)備資源。
[0011] 技術(shù)方案如下所述。
[0012] -種二層分布式多控制器架構(gòu),在該架構(gòu)中,控制器分為直接控制器和間接控制 器,其中: 1-1)直接控制器與網(wǎng)絡(luò)設(shè)備直接通信,承擔(dān)鏈路發(fā)現(xiàn)、拓?fù)涔芾?、策略制定、表?xiàng)下發(fā) 功能; 1-2)間接控制器具有全網(wǎng)的、實(shí)時(shí)的資源狀態(tài)信息,根據(jù)網(wǎng)絡(luò)應(yīng)用要求構(gòu)建虛擬網(wǎng),然 后進(jìn)行虛擬網(wǎng)絡(luò)映射的計(jì)算,并通過(guò)直接控制器對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行虛擬網(wǎng)的部署; 1- 3)每個(gè)網(wǎng)絡(luò)設(shè)備只受單個(gè)直接控制器控制,每個(gè)直接控制器受多個(gè)間接控制器控 制,從而每個(gè)網(wǎng)絡(luò)設(shè)備受多個(gè)間接控制器的間接控制。
[0013] 所述每個(gè)網(wǎng)絡(luò)設(shè)備受多個(gè)間接控制器的間接控制,其具體實(shí)現(xiàn)方法為: 2- 1)直接控制器定時(shí)向間接控制器發(fā)送其所直接控制的網(wǎng)絡(luò)設(shè)備的實(shí)時(shí)資源狀態(tài)信 息; 2-2)間接控制器根據(jù)全網(wǎng)實(shí)時(shí)資源狀態(tài)信息以及網(wǎng)絡(luò)應(yīng)用需求進(jìn)行虛擬網(wǎng)絡(luò)映射的 計(jì)算并將結(jié)果下發(fā)到相關(guān)的直接控制器; 2-3)直接控制器進(jìn)行虛擬網(wǎng)絡(luò)部署,如果部署不成功,把當(dāng)前的網(wǎng)絡(luò)設(shè)備的實(shí)時(shí)資源 狀態(tài)信息反饋給間接控制器并執(zhí)行2-2); 2-4)直接控制器把網(wǎng)絡(luò)資源使用狀況反饋給所有間接控制器。
[0014] -種實(shí)現(xiàn)所述二層分布式多控制器架構(gòu)的方法,每個(gè)直接控制器受多個(gè)間接控制 器控制,間接控制器通過(guò)以下的松散管理辦法來(lái)管理直接控制器: 3-1)如果一個(gè)直接控制器執(zhí)行某個(gè)間接控制器所下發(fā)的虛擬網(wǎng)絡(luò)部署任務(wù)的不成功 次數(shù)累計(jì)達(dá)到一個(gè)預(yù)設(shè)閥值,該間接控制器將暫停與該直接控制器的通信,暫停通信期間, 該間接控制器不會(huì)向該直接控制器發(fā)送虛擬網(wǎng)部署任務(wù); 3- 2)在預(yù)設(shè)的一定時(shí)間之后,該間接控制器恢復(fù)與該直接控制器的通信,失敗次數(shù)被 重置為〇,該間接控制器可以繼續(xù)向該直接控制器發(fā)送虛擬網(wǎng)部署任務(wù)。
[0015] -種實(shí)現(xiàn)所述二層分布式多控制器架構(gòu)的方法,間接控制器的位置計(jì)算方法包 括: 4- 1)設(shè)定兩個(gè)約束,分別是:每個(gè)間接控制器同時(shí)能管理的直接控制器個(gè)數(shù)的上限,每 個(gè)直接控制器能接受管理的間接控制器的個(gè)數(shù); 4-2)設(shè)定一個(gè)目標(biāo):使拓?fù)淇傮w時(shí)延最小,所述總體時(shí)延是指各間接控制器到所管理 的各直接控制器的數(shù)據(jù)包傳輸時(shí)延之和; 4-3)在給定直接控制器節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和間接控制器個(gè)數(shù)的前提下,根據(jù)約束和目標(biāo) 得出各間接控制器的最佳擺放位置。
[0016] 本發(fā)明中的一種二層分布式多控制器架構(gòu)及構(gòu)建方法,為構(gòu)建一個(gè)新型的分布式 多控制器架構(gòu)提出了一種可靠的方案,已經(jīng)通過(guò)仿真驗(yàn)證是確實(shí)可行的。二層結(jié)構(gòu)使得網(wǎng) 絡(luò)設(shè)備接收的命令少了很多匹配表項(xiàng),使得網(wǎng)絡(luò)構(gòu)建更加的便捷有效率,多控制器使得整 個(gè)網(wǎng)絡(luò)的可靠性顯著增強(qiáng),在一個(gè)間接控制器宕機(jī)的情況下,網(wǎng)絡(luò)設(shè)備仍能根據(jù)與之連接 的別的間接控制器發(fā)出的指令進(jìn)行網(wǎng)絡(luò)操作,此外,本發(fā)明考慮了控制器的容量,在保證每 個(gè)控制器都不會(huì)過(guò)載的情況下,網(wǎng)