本發(fā)明涉及云計算虛擬化網(wǎng)絡(luò)領(lǐng)域,特別涉及一種基于控制器代理的故障切換系統(tǒng)。
背景技術(shù):
計算機技術(shù)之所以能夠迅速發(fā)展,是因為找到了通用的硬件底層架構(gòu),在此基礎(chǔ)上,操作系統(tǒng)和應(yīng)用程序都得到了飛速的發(fā)展?;谟嬎銠C領(lǐng)域的這種思想和模式,人們在網(wǎng)絡(luò)領(lǐng)域提出了類似的概念,即在網(wǎng)絡(luò)中使用通用的底層數(shù)據(jù)平面,通過接口向上層平面提供網(wǎng)絡(luò)資源的自由調(diào)用,這就是軟件定義網(wǎng)絡(luò)(sdn,softwaredefinednetwork)思想的起源。sdn概念引起了學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注,sdn通過把原有的封閉體系解耦為數(shù)據(jù)層、控制層和應(yīng)用層,將網(wǎng)絡(luò)控制功能獨立出來,并為網(wǎng)絡(luò)應(yīng)用提供可編程的接口,從而顛覆傳統(tǒng)網(wǎng)絡(luò)架構(gòu)。它是一種網(wǎng)絡(luò)實現(xiàn)技術(shù),與ipv6,ipv4不同,sdn不改變主機可見的轉(zhuǎn)發(fā)面封裝,它是現(xiàn)有網(wǎng)絡(luò)協(xié)議/架構(gòu)和未來網(wǎng)絡(luò)的一種支持平臺,某種意義上說更像一種高級語言+編譯器,可以用來實現(xiàn)應(yīng)用軟件,而不是另外一種新的功能性軟件.對于采用sdn架構(gòu)的網(wǎng)絡(luò),可方便地提高網(wǎng)絡(luò)設(shè)備利用率、降低網(wǎng)絡(luò)維護代價,優(yōu)化路由路徑及增加網(wǎng)絡(luò)設(shè)備的管理性和靈活性。目前典型的開源控制器主要有業(yè)界首個sdn控制器nox、首個具有商業(yè)級應(yīng)用能力的控制器floodlight、應(yīng)用最廣泛的控制器opendaylight、由運營商研發(fā)的控制器ryu以及最新發(fā)布的針對運營商網(wǎng)絡(luò)研發(fā)的控制器onos。
openflow是目前sdn最成熟和應(yīng)用最廣的實現(xiàn)方式?;趏penflow的sdn技術(shù)使用戶可以更
靈活地管控網(wǎng)絡(luò)、更高效地利用網(wǎng)絡(luò)資源、更合理性地分配網(wǎng)絡(luò)資源。openflow由openflow交換機、flowvisor和controller三部分組成。openflow技術(shù)最大的特點是openflow交換機將原來完全由交換機和路由器控制的報文轉(zhuǎn)發(fā)過程轉(zhuǎn)化為由openflow交換機和controller,來共同完成,實現(xiàn)了數(shù)據(jù)轉(zhuǎn)發(fā)和路由控制的分離。其中openflow交換機進行數(shù)據(jù)層轉(zhuǎn)發(fā);flowvisor對網(wǎng)絡(luò)進行虛擬化;controller對網(wǎng)絡(luò)進行集中控制。controller可以通過事先規(guī)定好的接口操作控制openflow交換機中的流表,從而達到控制數(shù)據(jù)轉(zhuǎn)發(fā)的目的。
sdn的發(fā)展面臨很多安全問題,隨著sdn架構(gòu)的普及和推廣,安全問題越來越受到重視。
現(xiàn)有技術(shù)下,當(dāng)發(fā)生控制器故障時,其切換速度受到局限,從而影響了整個系統(tǒng)的運行速度。隨著網(wǎng)絡(luò)規(guī)模不斷擴大,越來越多的功能和協(xié)議在網(wǎng)絡(luò)上進行疊加,網(wǎng)絡(luò)設(shè)備日益封閉,網(wǎng)絡(luò)管理變得更加復(fù)雜,極大地延緩了網(wǎng)絡(luò)服務(wù)的新發(fā)展。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明提供了一種基于控制器代理的故障切換系統(tǒng),其從應(yīng)用控制器入手,提出一種基于控制器代理的故障切換機制,當(dāng)應(yīng)用控制器發(fā)生故障時可實現(xiàn)快速有效控制器切換。
本發(fā)明所采用的技術(shù)方案如下:
一種基于控制器代理的故障切換系統(tǒng),包括網(wǎng)絡(luò)底層的openflow交換機,所述的openflow交換機通過物理鏈路與控制器代理互連,所述的控制器代理通過標(biāo)準(zhǔn)化接口與多個控制器互連,所述的openflow交換機通過openflow協(xié)議與控制器代理連接,所述的控制器代理通過rest-api與多個控制器同時保持連接,系統(tǒng)隨機選擇一個控制器作為主要控制器,所有的控制器運行相同的應(yīng)用,所述的主要控制器將規(guī)則下發(fā)到控制器代理,所述的控制器代理再下發(fā)到各個交換機上。
控制器代理包括設(shè)備控制模塊和控制器接口兩部分,所述的設(shè)備控制模塊負(fù)責(zé)與網(wǎng)絡(luò)底層的openflow交換機進行通信。
設(shè)備控制模塊包括:
交換機連接單元,所述的交換機連接單元用于:通過openflow協(xié)議與底層的openflow交換機相連;
設(shè)備管理單元,所述的設(shè)備管理單元用于:通過openflow協(xié)議管理每個交換機的運行狀態(tài);
鏈路發(fā)現(xiàn)單元,所述的鏈路發(fā)現(xiàn)單元用于:監(jiān)測交換機之間鏈路的狀態(tài),實時更新鏈路信息;
統(tǒng)計信息單元,所述的統(tǒng)計信息單元用于:將openflow協(xié)議收集到的交換機信息存儲在數(shù)據(jù)庫中;
流表緩存單元,所述的流表緩存單元用于:將需要下發(fā)的流表存儲在本地數(shù)據(jù)庫中,作為交換機硬件流表的備份;
拓?fù)涔芾韱卧龅耐負(fù)涔芾韱卧糜冢夯谝延械逆溌沸畔⒔⒔粨Q機的拓?fù)洹?/p>
控制器接口包括:
狀態(tài)檢測單元,用于監(jiān)測控制器的運行狀態(tài),能夠及時發(fā)現(xiàn)控制器的故障狀態(tài);
控制器連接單元,通過rest-api接口與多個控制器進行連接,由于rest-api無需長時間保持連接的特性,因此多個控制器可以分時的訪問控制器代理,使得多個控制器能夠同時獲取底層交換機的狀態(tài);
消息轉(zhuǎn)換單元,用于將控制器的rest-api訪問轉(zhuǎn)換為openflow協(xié)議,使得控制器可以透明的控制底層的交換機設(shè)備。
本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
本發(fā)明的一種基于控制器代理的故障切換系統(tǒng),使得多個邏輯完全相同的控制器并行運行,由控制器代理從可用的控制器中選擇一個作為主控制器,當(dāng)主控制器發(fā)生故障時,控制器代理將自動選擇其他的可用控制器。根據(jù)控制器代理可快速檢測出控制器故障并進行切換。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)下的傳統(tǒng)控制器故障恢復(fù)系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明的一種基于控制器代理的故障切換系統(tǒng)的系統(tǒng)結(jié)構(gòu)示意圖;
圖3為本發(fā)明的一種基于控制器代理的故障切換系統(tǒng)的控制器代理模塊結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
實施例一
傳統(tǒng)的控制器故障恢復(fù)系統(tǒng)結(jié)構(gòu)如圖1所示,一般由網(wǎng)絡(luò)底層的交換機和控制器組成??刂破靼饕刂破骱蛡溆每刂破?。當(dāng)主要控制器故障時,切換到備用控制器上,切換時間受到網(wǎng)絡(luò)規(guī)模影響。
本實施例的一種基于控制器代理的故障切換系統(tǒng)結(jié)構(gòu)分為3個部分,如圖2所示,網(wǎng)絡(luò)底層是openflow交換機,交換機通過物理鏈路與控制器代理互連,控制器代理通過標(biāo)準(zhǔn)化接口與多種控制器互連。交換機開始運行后,首先通過openflow協(xié)議與控制器代理連接;控制器代理通過rest-api與多個控制器同時保持連接,系統(tǒng)隨機選擇一個控制器作為主要控制器。所有的控制器會運行相同的應(yīng)用,主要控制器會將規(guī)則下發(fā)到控制器代理,控制代理再下發(fā)到各個交換機上。
控制器代理主要完成控制器選擇、控制器規(guī)則下發(fā)、網(wǎng)絡(luò)事件上傳等功能??刂破鞔砉δ苤饕譃樵O(shè)備控制和控制器接口兩部分,設(shè)備控制部分負(fù)責(zé)與網(wǎng)絡(luò)底層的交換機進行通信,如圖3所示。
設(shè)備控制部分主要功能包括:
(1)交換機連接模塊通過openflow協(xié)議與底層的交換機相連;
(2)設(shè)備管理模塊通過openflow協(xié)議管理每個交換機的運行狀態(tài);
(3)鏈路發(fā)現(xiàn)模塊監(jiān)測交換機之間鏈路的狀態(tài),實時更新鏈路信息;
(4)統(tǒng)計信息模塊將openflow協(xié)議收集到的交換機信息存儲在數(shù)據(jù)庫中;
(5)流表緩存模塊將需要下發(fā)的流表存儲在本地數(shù)據(jù)庫中,作為交換機硬件流表的備份;
(6)拓?fù)涔芾砘谝延械逆溌沸畔⒔⒔粨Q機的拓?fù)洹?/p>
基于以上模塊,設(shè)備控制部分維護了底層交換機網(wǎng)絡(luò)的拓?fù)?、流表、運行狀態(tài)等信息。
控制器接口部分主要功能包括:
(1)狀態(tài)檢測模塊監(jiān)測控制器的運行狀態(tài),能夠及時發(fā)現(xiàn)控制器的故障狀態(tài);
(2)控制器連接模塊通過表述性狀態(tài)轉(zhuǎn)移-應(yīng)用程序編程接口(rest-api)與多個控制器進行連接,由于rest-api無需長時間保持連接的特性,因此多個控制器可以分時地訪問控制器代理,使得多個控制器能夠同時獲取底層交換機的狀態(tài);
(3)消息轉(zhuǎn)換模塊將控制器的rest-api訪問轉(zhuǎn)換為openflow協(xié)議,使得控制器可以透明地控制底層的交換機設(shè)備。
本實施例的一種基于控制器代理的故障切換系統(tǒng),支持多種不同的控制器實現(xiàn)形式。sdn網(wǎng)絡(luò)中有多種形式的控制器,基于不同架構(gòu)和設(shè)計目標(biāo),比如floodlight,opendaylight,nox等,能夠在多種不同的控制器之間進行切換,并且能夠兼容多種控制器的應(yīng)用和下發(fā)規(guī)則。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。