本發(fā)明涉及軟件
技術(shù)領(lǐng)域:
,尤其涉及一種分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法。
背景技術(shù):
:目前,軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,sdn)控制器的調(diào)度方案比較通用的是雙機(jī)熱備份調(diào)度方案,參考圖1,主sdn控制器負(fù)責(zé)統(tǒng)一管理所有的虛擬交換機(jī)業(yè)務(wù),備sdn控制器通過vrrp協(xié)議監(jiān)聽主sdn控制器的工作狀態(tài),主sdn控制器出現(xiàn)異常,觸發(fā)備sdn控制器接管主sdn控制器的虛擬交換機(jī)業(yè)務(wù)。這種方式的缺點(diǎn)是:單個(gè)sdn控制器會成為虛擬網(wǎng)絡(luò)控制器平面的單點(diǎn)瓶頸,在超大規(guī)模的虛擬化網(wǎng)絡(luò)中,主備切換效率低,在跨數(shù)據(jù)中心的云網(wǎng)絡(luò)部署中,單個(gè)sdn控制器無法實(shí)現(xiàn)多數(shù)據(jù)中心跨云災(zāi)備。參考圖2,在超大規(guī)模虛擬化網(wǎng)絡(luò)中,采用sdn控制器集群模型。多個(gè)sdn控制器協(xié)同工作,通過選舉以及負(fù)載均衡等算法均衡分?jǐn)偺摂M交換機(jī)業(yè)務(wù)。各個(gè)sdn控制器之間通過心跳通訊監(jiān)聽其他sdn控制器的工作狀況。其中一個(gè)sdn控制器出現(xiàn)故障,觸發(fā)其他sdn控制器將該故障sdn控制器所接管的虛擬交換機(jī)重新進(jìn)入選舉,由其他sdn控制器接受虛擬交換機(jī)業(yè)務(wù)。但這種方式有以下幾個(gè)缺點(diǎn):邏輯復(fù)雜,容易出現(xiàn)多控制器之間的腦裂問題。在超大規(guī)模的虛擬化網(wǎng)絡(luò)中,選舉切換的效率低。在跨數(shù)據(jù)中心的云網(wǎng)絡(luò)部署中,sdn控制器集群難以實(shí)現(xiàn)多數(shù)據(jù)中心災(zāi)備。多物理數(shù)據(jù)中心之間的線路故障,將導(dǎo)致sdn控制器集群出現(xiàn)大面積問題導(dǎo)致網(wǎng)絡(luò)中斷。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中的雙機(jī)熱備份調(diào)度方案和sdn控制器集群模型的缺點(diǎn),提出了一種分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法,實(shí)現(xiàn)跨多數(shù)據(jù)中心高可用云網(wǎng)絡(luò)。一種分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法,軟件定義網(wǎng)絡(luò)控制器的分布式架構(gòu)包括n個(gè)計(jì)算節(jié)點(diǎn),每個(gè)計(jì)算節(jié)點(diǎn)包括軟件定義網(wǎng)絡(luò)控制器、虛擬機(jī)以及虛擬交換機(jī),所述軟件定義網(wǎng)絡(luò)控制器和虛擬機(jī)均與所述虛擬交換機(jī)連接,其中,n為大于或等于2的整數(shù);所述調(diào)度方法包括:啟動當(dāng)前軟件定義網(wǎng)絡(luò)控制器獲取本地虛擬交換機(jī)的端口信息,根據(jù)所述端口信息建立本地拓?fù)湫畔⒈?,并根?jù)同步信息標(biāo)準(zhǔn)將當(dāng)前軟件定義網(wǎng)絡(luò)控制器的本地拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器;各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器監(jiān)聽本地虛擬交換機(jī)是否接入或斷開,如果本地虛擬交換機(jī)接入或斷開,則該計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器根據(jù)接入或斷開的虛擬交換機(jī)的端口信息更新本地拓?fù)湫畔⒈恚⒏鶕?jù)同步信息標(biāo)準(zhǔn)將更新后的拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器;各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器檢測是否接收到restapi配置信息,如果任一軟件定義網(wǎng)絡(luò)控制器接收到所述restapi配置信息,則對所述restapi配置信息進(jìn)行驗(yàn)證,驗(yàn)證通過后更新本地config配置信息表,并根據(jù)同步信息標(biāo)準(zhǔn)將更新的config配置信息表同步至其他軟件定義網(wǎng)絡(luò)控制器。進(jìn)一步地,所述端口信息包括虛擬機(jī)的mac地址、上行后端口號、虛擬網(wǎng)絡(luò)內(nèi)網(wǎng)口端口號、虛擬交換機(jī)的mac地址以及主機(jī)名。進(jìn)一步地,所述同步信息標(biāo)準(zhǔn)包括源主機(jī)名、目標(biāo)主機(jī)名、服務(wù)類型、同步信息格式以及是否需要回復(fù)信息。進(jìn)一步地,根據(jù)同步信息標(biāo)準(zhǔn)將當(dāng)前啟動的軟件定義網(wǎng)絡(luò)控制器的本地拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器,包括:當(dāng)前軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為需要回復(fù),設(shè)置目標(biāo)主機(jī)名為廣播,設(shè)置服務(wù)類型為拓?fù)渫剑O(shè)置同步信息格式為本地虛擬交換機(jī)拓?fù)湫畔⒆址?,將本地拓?fù)湫畔⒈戆l(fā)送至消息隊(duì)列;其他軟件定義網(wǎng)絡(luò)控制器接收到當(dāng)前軟件定義網(wǎng)絡(luò)控制器的拓?fù)湫畔⒈碇?,?chuàng)建回復(fù)信息并更新本地拓?fù)湫畔⒈恚黄渌浖x網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為不需要回復(fù),設(shè)置目標(biāo)主機(jī)名為當(dāng)前軟件定義網(wǎng)絡(luò)控制器的主機(jī)名,設(shè)置服務(wù)類型為拓?fù)渫剑O(shè)置同步信息格式為本地虛擬交換機(jī)拓?fù)湫畔?,將所述回?fù)信息和更新后的本地拓?fù)湫畔⒈戆l(fā)送至消息隊(duì)列;所述當(dāng)前軟件定義網(wǎng)絡(luò)控制器接收其他軟件定義網(wǎng)絡(luò)控制器的回復(fù)信息和拓?fù)湫畔⒈碇?,更新本地拓?fù)湫畔⒈?。進(jìn)一步地,根據(jù)同步信息標(biāo)準(zhǔn)將更新后的本地拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器,包括:虛擬交換機(jī)接入或斷開的計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為不需要回復(fù),設(shè)置目標(biāo)主機(jī)名為廣播,設(shè)置服務(wù)類型為拓?fù)渫?,設(shè)置同步信息格式為本地虛擬交換機(jī)接入或斷開的拓?fù)湫畔⒆址?,將更新后的本地拓?fù)湫畔⒈戆l(fā)送至消息隊(duì)列;其他軟件定義網(wǎng)絡(luò)控制器接收到所述更新后的拓?fù)湫畔⒈?,更新本地拓?fù)湫畔⒈?。進(jìn)一步地,根據(jù)同步信息標(biāo)準(zhǔn)將更新的config配置信息表同步至其他軟件定義網(wǎng)絡(luò)控制器,包括:接收到restapi配置信息的軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為不需要回復(fù),設(shè)置服務(wù)類型為配置同步,設(shè)置同步信息格式為restapi配置信息字符串,將所述config配置信息表發(fā)送至消息隊(duì)列;其他軟件定義網(wǎng)絡(luò)控制器接收到所述config配置信息表,更新本地config配置信息表。本發(fā)明提供的分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法,軟件定義網(wǎng)絡(luò)控制器控制平面性能會隨著計(jì)算機(jī)點(diǎn)規(guī)模的提升而提升,解決軟件定義網(wǎng)絡(luò)控制器單點(diǎn)瓶頸的問題。在超大規(guī)模的云網(wǎng)絡(luò)中,分布式軟件定義網(wǎng)絡(luò)控制器處理性能高,在跨多數(shù)據(jù)中心云網(wǎng)絡(luò)中,本發(fā)明的分布式軟件定義網(wǎng)絡(luò)控制器不受物理線路故障的影響,實(shí)現(xiàn)跨多數(shù)據(jù)中心高可用云網(wǎng)絡(luò)。附圖說明圖1為現(xiàn)有技術(shù)中雙機(jī)熱備份調(diào)度一種實(shí)施例的結(jié)構(gòu)示意圖。圖2為現(xiàn)有技術(shù)中sdn控制器集群模型一種實(shí)施例的結(jié)構(gòu)示意圖。圖3為本發(fā)明提供的分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法一種實(shí)施例的流程圖。圖4為本發(fā)明提供的分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法中軟件定義網(wǎng)絡(luò)控制器的分布式架構(gòu)一種實(shí)施例的結(jié)構(gòu)示意圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實(shí)施例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參考圖3和圖4,本實(shí)施例提供一種分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法,軟件定義網(wǎng)絡(luò)控制器的分布式架構(gòu)包括n個(gè)計(jì)算節(jié)點(diǎn),每個(gè)計(jì)算節(jié)點(diǎn)包括軟件定義網(wǎng)絡(luò)控制器101、虛擬機(jī)102以及虛擬交換機(jī)103,軟件定義網(wǎng)絡(luò)控制器101和虛擬機(jī)102均與虛擬交換機(jī)103連接,其中,n為大于或等于2的整數(shù);所述調(diào)度方法包括:步驟s101,啟動當(dāng)前軟件定義網(wǎng)絡(luò)控制器獲取本地虛擬交換機(jī)的端口信息,根據(jù)所述端口信息建立本地拓?fù)湫畔⒈?,并根?jù)同步信息標(biāo)準(zhǔn)將當(dāng)前軟件定義網(wǎng)絡(luò)控制器的本地拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器;步驟s102,各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器監(jiān)聽本地虛擬交換機(jī)是否接入或斷開,如果本地虛擬交換機(jī)接入或斷開,則該計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器根據(jù)接入或斷開的虛擬交換機(jī)的端口信息更新本地拓?fù)湫畔⒈?,并根?jù)同步信息標(biāo)準(zhǔn)將更新后的拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器;步驟s103,各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器檢測是否接收到restapi配置信息,如果任一軟件定義網(wǎng)絡(luò)控制器接收到所述restapi配置信息,則對所述restapi配置信息進(jìn)行驗(yàn)證,驗(yàn)證通過后更新本地config配置信息表,并根據(jù)同步信息標(biāo)準(zhǔn)將更新的config配置信息表同步至其他軟件定義網(wǎng)絡(luò)控制器。具體地,步驟s101為軟件定義網(wǎng)絡(luò)控制器啟動時(shí)發(fā)起的同步步驟,各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器逐一啟動,每啟動一個(gè)軟件定義網(wǎng)絡(luò)控制器,則該軟件定義網(wǎng)絡(luò)控制器獲取與之連接的本地虛擬交換機(jī)的端口信息,作為一種優(yōu)選的實(shí)施方式,所述端口信息包括虛擬機(jī)的mac地址、上行后端口號、虛擬網(wǎng)絡(luò)內(nèi)網(wǎng)口端口號、虛擬交換機(jī)的mac地址以及主機(jī)名,根據(jù)該端口信息生成本地拓?fù)湫畔⒈?,該拓?fù)湫畔⒈砣缦滤荆侯愋兔枋鰌ortnumberlong(primarykey)虛擬機(jī)的mac地址uplinkportnumberint上行后端口號internalportnumberint虛擬網(wǎng)絡(luò)內(nèi)網(wǎng)口端口號switchmaclong虛擬交換機(jī)的mac地址hostnamestring主機(jī)名表1作為一種優(yōu)選的實(shí)施方式,所述同步信息標(biāo)準(zhǔn)包括源主機(jī)名、目標(biāo)主機(jī)名、服務(wù)類型、同步信息格式以及是否需要回復(fù)信息,同步信息標(biāo)準(zhǔn)如表2所示:類型描述srchoststring源主機(jī)名dsthoststring目標(biāo)主機(jī)名(值等于null表示廣播)servernamestring服務(wù)類型(vpc配置同步、拓?fù)渫?messagestring同步信息json格式needreplyboolean是否需要回復(fù)信息表2進(jìn)一步地,根據(jù)同步信息標(biāo)準(zhǔn)將當(dāng)前啟動的軟件定義網(wǎng)絡(luò)控制器的本地拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器,包括:當(dāng)前軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為需要回復(fù),設(shè)置目標(biāo)主機(jī)名為廣播,設(shè)置服務(wù)類型為拓?fù)渫?,設(shè)置同步信息格式為本地虛擬交換機(jī)拓?fù)湫畔⒆址?,將本地拓?fù)湫畔⒈戆l(fā)送至消息隊(duì)列;其他軟件定義網(wǎng)絡(luò)控制器接收到當(dāng)前軟件定義網(wǎng)絡(luò)控制器的拓?fù)湫畔⒈碇?,?chuàng)建回復(fù)信息并更新本地拓?fù)湫畔⒈?;其他軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為不需要回復(fù),設(shè)置目標(biāo)主機(jī)名為當(dāng)前軟件定義網(wǎng)絡(luò)控制器的主機(jī)名,設(shè)置服務(wù)類型為拓?fù)渫?,設(shè)置同步信息格式為本地虛擬交換機(jī)拓?fù)湫畔?,將所述回?fù)信息和更新后的本地拓?fù)湫畔⒈戆l(fā)送至消息隊(duì)列;所述當(dāng)前軟件定義網(wǎng)絡(luò)控制器接收其他軟件定義網(wǎng)絡(luò)控制器的回復(fù)信息和拓?fù)湫畔⒈碇?,更新本地拓?fù)湫畔⒈?,無需回復(fù)信息。進(jìn)一步地,步驟s102為軟件定義網(wǎng)絡(luò)控制器更新拓?fù)涞牟襟E,各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器監(jiān)聽本地虛擬交換機(jī)是否接入或斷開,具體地,各軟件定義網(wǎng)絡(luò)控制器監(jiān)聽本地虛擬交換機(jī)網(wǎng)卡是否接入或拔出。如果本地虛擬交換機(jī)接入或斷開,則該計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器根據(jù)接入或斷開的虛擬交換機(jī)的端口信息更新本地拓?fù)湫畔⒈怼8鶕?jù)同步信息標(biāo)準(zhǔn)將更新后的本地拓?fù)湫畔⒈硗街疗渌浖x網(wǎng)絡(luò)控制器,包括:虛擬交換機(jī)接入或斷開的計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為不需要回復(fù),設(shè)置目標(biāo)主機(jī)名為廣播,設(shè)置服務(wù)類型為拓?fù)渫剑O(shè)置同步信息格式為本地虛擬交換機(jī)接入或斷開的拓?fù)湫畔⒆址?,將更新后的本地拓?fù)湫畔⒈戆l(fā)送至消息隊(duì)列;其他軟件定義網(wǎng)絡(luò)控制器接收到所述更新后的拓?fù)湫畔⒈?,更新本地拓?fù)湫畔⒈?,不需要回?fù)。進(jìn)一步地,步驟s103為軟件定義網(wǎng)絡(luò)控制器的restapi配置信息步驟,各計(jì)算節(jié)點(diǎn)中的軟件定義網(wǎng)絡(luò)控制器檢測是否接收到restapi配置信息,該restapi配置信息由管理員發(fā)送,如果任一軟件定義網(wǎng)絡(luò)控制器接收到所述restapi配置信息,則對所述restapi配置信息進(jìn)行驗(yàn)證,包括驗(yàn)證其安全性,如果驗(yàn)證通過,更新本地config配置信息表。根據(jù)同步信息標(biāo)準(zhǔn)將更新的config配置信息表同步至其他軟件定義網(wǎng)絡(luò)控制器,包括:接收到restapi配置信息的軟件定義網(wǎng)絡(luò)控制器設(shè)置源主機(jī)名為本計(jì)算節(jié)點(diǎn)主機(jī)名,設(shè)置是否需要回復(fù)信息為不需要回復(fù),設(shè)置服務(wù)類型為配置同步,設(shè)置同步信息格式為restapi配置信息字符串,將所述config配置信息表發(fā)送至消息隊(duì)列;其他軟件定義網(wǎng)絡(luò)控制器接收到config配置信息表,更新本地config配置信息表,無需回復(fù)。作為一種優(yōu)選的實(shí)施方式,config配置信息表如表3所示:表3本發(fā)明提供的分布式架構(gòu)軟件定義網(wǎng)絡(luò)控制器的調(diào)度方法,軟件定義網(wǎng)絡(luò)控制器控制平面性能會隨著計(jì)算機(jī)點(diǎn)規(guī)模的提升而提升,解決軟件定義網(wǎng)絡(luò)控制器單點(diǎn)瓶頸的問題。在超大規(guī)模的云網(wǎng)絡(luò)中,分布式軟件定義網(wǎng)絡(luò)控制器處理性能高,在跨多數(shù)據(jù)中心云網(wǎng)絡(luò)中,本發(fā)明的分布式軟件定義網(wǎng)絡(luò)控制器不受物理線路故障的影響,實(shí)現(xiàn)跨多數(shù)據(jù)中心高可用云網(wǎng)絡(luò)。應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。當(dāng)前第1頁12