一種sdn控制器資源池的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開(kāi)一種SDN控制器資源池(SDN?Controller?Pool)的實(shí)現(xiàn)方法,將多個(gè)SDN控制器組成一個(gè)資源池,池中的每個(gè)控制器都處于負(fù)荷分擔(dān)的工作狀態(tài),其中任何一個(gè)控制器故障,池中的其他控制器均可無(wú)損接管,通過(guò)選舉出來(lái)的主節(jié)點(diǎn)向其他節(jié)點(diǎn)同步狀態(tài)和動(dòng)態(tài)數(shù)據(jù),在有節(jié)點(diǎn)故障時(shí)進(jìn)行無(wú)損接管,主要包括資源池構(gòu)建,數(shù)據(jù)同步,建立SDN交換機(jī)連接,故障檢測(cè),故障接管。
【專利說(shuō)明】一種SDN控制器資源池的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及到一種SDN控制器資源池(SDN ControllerPool)的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN ),是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其通過(guò)OpenFlow實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面的分離,為核心網(wǎng)絡(luò)及應(yīng)用創(chuàng)新提供開(kāi)放平臺(tái),它主要是由控制器和SDN交換機(jī)組成,大型組網(wǎng)中存在多個(gè)控制器,為了提高系統(tǒng)的可靠性,往往是通過(guò)控制器的主備方式實(shí)現(xiàn)1+1的備份,但這種方式的可靠性和資源的使用率不高,本發(fā)明專利關(guān)注到了這方面的問(wèn)題,發(fā)明了一種SDN控制器資源池的實(shí)現(xiàn)方法,將多個(gè)SDN控制器組成一個(gè)資源池,池中的每個(gè)控制器都處于負(fù)荷分擔(dān)的工作狀態(tài),其中任何一個(gè)控制器故障,池中的其他控制器均可無(wú)損接管,達(dá)到1+N的備份效果。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的主要目的是提供SDN控制器資源池的實(shí)現(xiàn)方法,通過(guò)將多個(gè)SDN控制器組成一個(gè)Controller Pool,池中的所有控制器互為備份,SDN交換機(jī)可以選擇其中的一個(gè)控制器也可以根據(jù)業(yè)務(wù)的不同使用多個(gè)控制器同時(shí)控制,其中一個(gè)控制器故障,另外的控制器實(shí)時(shí)感知故障并無(wú)損接管,由于各個(gè)控制器正常時(shí)均承擔(dān)了業(yè)務(wù),在提高可靠性的同時(shí),也提高了控制器的使用效率。
[0004]本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案包括:構(gòu)建資源池,系統(tǒng)將多個(gè)控制器劃為分為多個(gè)Domain,每個(gè)Domain為一個(gè)資源池;主節(jié)點(diǎn)選舉,從池中選舉一個(gè)控制器作為主節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)向其他節(jié)點(diǎn)同步狀態(tài)和動(dòng)態(tài)數(shù)據(jù);故障檢測(cè),由主節(jié)點(diǎn)與池中的控制器實(shí)時(shí)握手檢測(cè),發(fā)現(xiàn)故障后通知其他節(jié)點(diǎn);故障接管,當(dāng)檢測(cè)出故障后,主節(jié)點(diǎn)根據(jù)負(fù)載均衡選擇合適的控制器,由選中的控制器啟動(dòng)接管。
[0005]本發(fā)明的有益效果是,通過(guò)SDN控制器資源池實(shí)現(xiàn)1+N的備份,也可以實(shí)現(xiàn)1+N的負(fù)荷分擔(dān),在提高可靠性的同時(shí),也提高了控制器的使用效率。
【專利附圖】
【附圖說(shuō)明】
[0006]下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明
圖1為本發(fā)明一種SDN控制器資源池的實(shí)現(xiàn)方法流程示意圖。
【具體實(shí)施方式】
[0007]本發(fā)明實(shí)施主要是通過(guò)選舉出來(lái)的主節(jié)點(diǎn)向其他節(jié)點(diǎn)同步狀態(tài)和動(dòng)態(tài)數(shù)據(jù),在有節(jié)點(diǎn)故障時(shí)進(jìn)行無(wú)損接管,主要包括資源池構(gòu)建,數(shù)據(jù)同步,建立SDN交換機(jī)連接,故障檢測(cè),故障接管。
[0008]參照?qǐng)D1,本發(fā)明一種SDN控制器資源池的實(shí)現(xiàn)方法實(shí)施步驟包括: 步驟SlOl,資源池構(gòu)建,系統(tǒng)將SDN控制器分為多個(gè)Domain,每個(gè)Domain的SDN控制器構(gòu)成一個(gè)資源池,資源池的ID與Domain ID 一致,每個(gè)控制器配置一個(gè)資源池ID,同時(shí)每個(gè)控制器表示一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有唯一的ID,構(gòu)建Controller Pool表,其字段包括PoolID,節(jié)點(diǎn)ID序列,主節(jié)點(diǎn)ID。系統(tǒng)選舉主節(jié)點(diǎn),根據(jù)各個(gè)SDN控制器的MAC地址來(lái)選擇,MAC地址小的優(yōu)先選為主節(jié)點(diǎn),同時(shí)主節(jié)點(diǎn)建立和資源池其他節(jié)點(diǎn)的狀態(tài)監(jiān)測(cè)通道和數(shù)據(jù)同步通道。
[0009]步驟S102,數(shù)據(jù)同步,主節(jié)點(diǎn)和池中其他節(jié)點(diǎn)建立數(shù)據(jù)同步通道,其他任何節(jié)點(diǎn)收到SDN交換機(jī)的請(qǐng)求或者是自己的狀態(tài)發(fā)生改變時(shí),通過(guò)數(shù)據(jù)通道將數(shù)據(jù)同步到主節(jié)點(diǎn),主節(jié)點(diǎn)收到信息及時(shí)同步到資源池的其他控制器,同步采用TCP連接,并使用消息確認(rèn)機(jī)制。
[0010]步驟S103,建立SDN交換機(jī)連接,SDN交換機(jī)通過(guò)Openflow協(xié)議建立和資源池中所有節(jié)點(diǎn)的通道,但只有其中一個(gè)SDN控制器為Master,其他均為Slave,只有連接Master的通道狀態(tài)為激活,其他均未去激活。Master的選擇由主節(jié)點(diǎn)根據(jù)業(yè)務(wù)和各個(gè)節(jié)點(diǎn)的負(fù)荷來(lái)決定,并通過(guò)擴(kuò)展Openflow協(xié)議在建立Openflow連接通道時(shí)告知SDN交換機(jī),SDN交換機(jī)也可以主動(dòng)選擇Master,以同樣方式告知主節(jié)點(diǎn)。
[0011]步驟S104,故障檢測(cè),主節(jié)點(diǎn)和資源池的其他節(jié)點(diǎn)啟動(dòng)毫秒定時(shí)器,當(dāng)200毫秒內(nèi)沒(méi)有收到對(duì)端的握手的Hello報(bào)文,則認(rèn)為對(duì)端疑似故障,同時(shí)啟動(dòng)相鄰節(jié)點(diǎn)向?qū)Χ斯?jié)點(diǎn)的檢測(cè),在100毫秒內(nèi)沒(méi)有收到回應(yīng),則確認(rèn)對(duì)端狀態(tài)故障,否則狀態(tài)一直為對(duì)端疑似故障,故障檢測(cè)采用私有協(xié)議,也可以使用類似BFD的機(jī)制,當(dāng)主節(jié)點(diǎn)檢測(cè)出資源池中的某個(gè)節(jié)點(diǎn)故障時(shí),該故障信息將通過(guò)主節(jié)點(diǎn)同步到其他正常的節(jié)點(diǎn)。
[0012]步驟S105,故障接管,通過(guò)步驟S104的故障檢測(cè),在存在節(jié)點(diǎn)故障的情況,如果是主節(jié)點(diǎn)故障,則資源池中的其他節(jié)點(diǎn)按照主節(jié)點(diǎn)選舉原則確定新的主節(jié)點(diǎn),啟動(dòng)新主節(jié)點(diǎn)的數(shù)據(jù)同步和故障檢測(cè)機(jī)制,同時(shí)新的主節(jié)點(diǎn)根據(jù)當(dāng)前各個(gè)節(jié)點(diǎn)的負(fù)荷選擇能夠接管故障主節(jié)點(diǎn)的備份節(jié)點(diǎn),如果是非主節(jié)點(diǎn)故障,同樣由主節(jié)點(diǎn)根據(jù)當(dāng)前各個(gè)節(jié)點(diǎn)的負(fù)荷選擇能夠接管故障節(jié)點(diǎn)的備份節(jié)點(diǎn);備份節(jié)點(diǎn)通過(guò)擴(kuò)展的Openflow協(xié)議,向SDN交換機(jī)請(qǐng)求切換,SDN交換機(jī)收到切換請(qǐng)求后,激活與新SDN控制器的連接通道,完成故障接管過(guò)程。
[0013]通過(guò)以上步驟的資源池構(gòu)建,數(shù)據(jù)同步,建立SDN交換機(jī)連接,故障檢測(cè),故障接管,就實(shí)現(xiàn)了 SDN控制器資源池的系統(tǒng)功能,其中任何一個(gè)故障,池中的其他控制器均可無(wú)損接管,達(dá)到1+N的備份效果。
[0014]與現(xiàn)有的實(shí)現(xiàn)技術(shù)相比,本發(fā)明方法能夠快速同步數(shù)據(jù),快速和可靠的檢測(cè)故障,能夠快速接管故障,而且實(shí)現(xiàn)無(wú)損接管,比傳統(tǒng)的1+1備份模式可靠性更高,池中的每個(gè)控制器都處于負(fù)荷分擔(dān)的工作狀態(tài),資源的使用率更高。
[0015]以上對(duì)本發(fā)明實(shí)施例所提供的技術(shù)方案進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明實(shí)施例的原理以及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只適用于幫助理解本發(fā)明實(shí)施例的原理;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例,在【具體實(shí)施方式】以及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種SDN控制器資源池的實(shí)現(xiàn)方法,其特征是:將多個(gè)SDN控制器組成一個(gè)資源池,池中的每個(gè)控制器都處于負(fù)荷分擔(dān)的工作狀態(tài),通過(guò)選舉出來(lái)的主節(jié)點(diǎn)向其他節(jié)點(diǎn)同步狀態(tài)和動(dòng)態(tài)數(shù)據(jù),在有節(jié)點(diǎn)故障時(shí)進(jìn)行無(wú)損接管,主要包括資源池構(gòu)建,數(shù)據(jù)同步,建立SDN交換機(jī)連接,故障檢測(cè),故障接管。
2.根據(jù)權(quán)利要求1所述的資源池構(gòu)建,其特征是:系統(tǒng)將SDN控制器分為多個(gè)Domain,每個(gè)Domain的SDN控制器構(gòu)成一個(gè)資源池,資源池的ID與Domain ID 一致,每個(gè)控制器配置一個(gè)資源池ID,同時(shí)每個(gè)控制器表示一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有唯一的ID,構(gòu)建ControllerPool表,其字段包括Pool ID,節(jié)點(diǎn)ID序列,主節(jié)點(diǎn)ID。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步,其特征是:主節(jié)點(diǎn)和池中其他節(jié)點(diǎn)建立數(shù)據(jù)同步通道,其他任何節(jié)點(diǎn)收到SDN交換機(jī)的請(qǐng)求或者是自己的狀態(tài)發(fā)生改變時(shí),通過(guò)數(shù)據(jù)通道將數(shù)據(jù)同步到主節(jié)點(diǎn),主節(jié)點(diǎn)收到信息及時(shí)同步到資源池的其他控制器,同步采用TCP連接,并使用消息確認(rèn)機(jī)制。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)通道,其特征是:數(shù)據(jù)通道基于TCP的協(xié)議,該消息的格式包括不限于發(fā)送節(jié)點(diǎn)ID,接收節(jié)點(diǎn)ID,消息體長(zhǎng)度,消息體;其消息體使用XML的文本發(fā)送,包括不限于狀態(tài)數(shù)據(jù),ACL策略數(shù)據(jù),Openflow流表數(shù)據(jù),節(jié)點(diǎn)能力數(shù)據(jù),QoS數(shù)據(jù),SDN交換機(jī)的配置文件數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的建立SDN交換機(jī)連接,其特征是:SDN交換機(jī)通過(guò)Openflow協(xié)議建立和資源池中所有節(jié)點(diǎn)的通道,但只有其中一個(gè)SDN控制器為Master,其他均為Slave,只有連接Master的通道狀態(tài)為激活,其他均未去激活;Master的選擇由主節(jié)點(diǎn)根據(jù)業(yè)務(wù)和各個(gè)節(jié)點(diǎn)的負(fù)荷來(lái)決定,并通過(guò)Openflow協(xié)議在建立Openflow連接通道時(shí)告知SDN交換機(jī),SDN交換機(jī)也可以主動(dòng)選擇Master,以同樣方式告知主節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求1所述的故障檢測(cè),其特征是:主節(jié)點(diǎn)和資源池的其他節(jié)點(diǎn)啟動(dòng)毫秒定時(shí)器,當(dāng)定時(shí)器如200毫秒超時(shí)沒(méi)有收到對(duì)端的握手的Hello報(bào)文,則認(rèn)為對(duì)端疑似故障,同時(shí)啟動(dòng)相鄰節(jié)點(diǎn)向?qū)Χ斯?jié)點(diǎn)的檢測(cè),啟動(dòng)另外一個(gè)較小定時(shí)器如100毫秒內(nèi)沒(méi)有收到回應(yīng),則確認(rèn)對(duì)端狀態(tài)故障,否則狀態(tài)一直為對(duì)端疑似故障,當(dāng)主節(jié)點(diǎn)檢測(cè)出資源池中的某個(gè)節(jié)點(diǎn)故障時(shí),該故障信息將通過(guò)主節(jié)點(diǎn)同步到其他正常的節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求1所述的故障接管,其特征是:如果是主節(jié)點(diǎn)故障,則資源池中的其他節(jié)點(diǎn)按照主節(jié)點(diǎn)選舉原則確定新的主節(jié)點(diǎn),啟動(dòng)新主節(jié)點(diǎn)的數(shù)據(jù)同步和故障檢測(cè)機(jī)制,同時(shí)新的主節(jié)點(diǎn)根據(jù)當(dāng)前各個(gè)節(jié)點(diǎn)的負(fù)荷選擇能夠接管故障主節(jié)點(diǎn)的備份節(jié)點(diǎn),如果是非主節(jié)點(diǎn)故障,同樣由主節(jié)點(diǎn)根據(jù)當(dāng)前各個(gè)節(jié)點(diǎn)的負(fù)荷選擇能夠接管故障節(jié)點(diǎn)的備份節(jié)點(diǎn);備份節(jié)點(diǎn)通過(guò)Openflow協(xié)議,向SDN交換機(jī)請(qǐng)求切換,SDN交換機(jī)收到切換請(qǐng)求后,激活與新SDN控制器的連接通道,完成故障接管過(guò)程。
【文檔編號(hào)】H04L12/24GK103929333SQ201410192339
【公開(kāi)日】2014年7月16日 申請(qǐng)日期:2014年5月8日 優(yōu)先權(quán)日:2014年5月8日
【發(fā)明者】不公告發(fā)明人 申請(qǐng)人:陳桂芳