張 寧,李偉良,李濟(jì)偉,高金京,雷學(xué)義,宋桂林(國(guó)家電網(wǎng)有限公司 信息通信分公司,北京 100032)
隨著云計(jì)算的不斷發(fā)展,軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)技術(shù)得到廣泛應(yīng)用,尤其是華為、中國(guó)移動(dòng)等公司的 SDN產(chǎn)品已經(jīng)廣泛應(yīng)用于電信網(wǎng)絡(luò)。SDN系統(tǒng)具有靈活高效、擴(kuò)展性強(qiáng)、可重構(gòu)、高可靠、低時(shí)延等特點(diǎn),然而由于各個(gè)廠家網(wǎng)絡(luò)設(shè)備的硬件不同,對(duì) SDN系統(tǒng)中控制器管理方式的依賴程度不同,導(dǎo)致多個(gè)控制器同時(shí)進(jìn)行用戶請(qǐng)求路由和用戶認(rèn)證工作。為提高業(yè)務(wù)網(wǎng)絡(luò)性能和可擴(kuò)展性,需要通過不同設(shè)備對(duì)業(yè)務(wù)網(wǎng)絡(luò)進(jìn)行負(fù)載均衡,但目前市場(chǎng)上提供復(fù)雜算法和接口協(xié)議的SDN設(shè)備具有部署復(fù)雜且成本高、維護(hù)困難等特點(diǎn)。因此,本文基于SDN方案,并結(jié)合現(xiàn)有網(wǎng)絡(luò)架構(gòu)資源與控制資源構(gòu)建統(tǒng)一的網(wǎng)絡(luò)架構(gòu)來解決上述問題。
多控制器管理技術(shù)是一種新的網(wǎng)絡(luò)控制技術(shù)。通過增加應(yīng)用層與控制器的通信,使其能夠提供新的功能。在設(shè)計(jì) SDN時(shí)所考慮的因素是如何優(yōu)化控制系統(tǒng)中的每一個(gè)控制器,讓其有自己的特性。多控制器管理技術(shù)與分布式負(fù)載均衡技術(shù)作為新出現(xiàn)的技術(shù)已廣泛應(yīng)用于多種網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,且兩者的融合度較高。本文通過多控制器管理技術(shù)和分布式負(fù)載均衡技術(shù)在網(wǎng)絡(luò)中協(xié)同管理算法與接口協(xié)議設(shè)計(jì)實(shí)現(xiàn) SDN內(nèi)不同應(yīng)用平臺(tái)之間的無縫切換機(jī)制,使分布式負(fù)載均衡與多控制器管理技術(shù)能夠?qū)崿F(xiàn)網(wǎng)絡(luò)性能和業(yè)務(wù)功能提升,優(yōu)化網(wǎng)絡(luò)部署。
SDN主要通過控制層(Software)控制 SDN系統(tǒng)的動(dòng)態(tài)擴(kuò)展和動(dòng)態(tài)控制,Software一般由用戶層(Transactions)、緩沖區(qū)(Depth)和控制器組成。這些控制器對(duì)實(shí)現(xiàn)不同業(yè)務(wù)應(yīng)用之間無縫連接、性能優(yōu)化等具有重要作用,但是 SDN中缺乏對(duì)控制器之間的調(diào)度能力,需要進(jìn)行合理有效分配資源才能實(shí)現(xiàn)靈活調(diào)度。通過對(duì)一組控制器的運(yùn)行情況進(jìn)行跟蹤分析,可發(fā)現(xiàn)存在對(duì)多個(gè)控制器進(jìn)行優(yōu)化配置后再對(duì)同一應(yīng)用實(shí)施控制的問題。本文所設(shè)計(jì)的方案就考慮了如何將多個(gè)控制器之間按照一定比例分配給同一Software,從而實(shí)現(xiàn)業(yè)務(wù)流量的靈活調(diào)配和數(shù)據(jù)流的實(shí)時(shí)分析控制。在設(shè)計(jì) SDN時(shí)必須充分考慮以上因素,以便能夠?qū)崿F(xiàn)靈活調(diào)度和性能提升,充分利用各控制器之間的業(yè)務(wù)互連功能進(jìn)行網(wǎng)絡(luò)性能調(diào)度以及對(duì)各個(gè)應(yīng)用實(shí)施協(xié)同管理[1]。
在多控制器管理技術(shù)與分布式負(fù)載均衡技術(shù)之間的協(xié)同管理算法中,其核心問題是如何處理不同工作流程中各自需要處理的工作過程,如何在不影響2種技術(shù)各自發(fā)揮作用的基礎(chǔ)上實(shí)現(xiàn)異構(gòu)任務(wù)調(diào)度資源,從而提高2種技術(shù)的融合度。其協(xié)同管理算法研究工作可歸納為以下幾點(diǎn):首先,對(duì)多控制器管理技術(shù)和分布式負(fù)載均衡技術(shù)的工作流程進(jìn)行分析,確定二者在不同工作流程中發(fā)揮作用時(shí)需要注意的問題和處理方法;其次,從兩種技術(shù)中選擇最優(yōu)的策略來協(xié)同決策問題得到最終解決方案[2];再次,將各工作流程所需資源與協(xié)同管理算法相結(jié)合進(jìn)行協(xié)同策略分配;最后,實(shí)現(xiàn)該架構(gòu)下性能控制與策略分配相結(jié)合,以提高不同技術(shù)指標(biāo)之間的互聯(lián)互通性和可用性。
本文在實(shí)現(xiàn)多控制器管理技術(shù)與分布式負(fù)載均衡技術(shù)的融合后,針對(duì)部分設(shè)備優(yōu)化性能及負(fù)載均衡性進(jìn)行優(yōu)化。通過對(duì)現(xiàn)有負(fù)載均衡服務(wù)器進(jìn)行優(yōu)化,解決了現(xiàn)有的負(fù)載均衡技術(shù)平臺(tái)中設(shè)備性能不足、穩(wěn)定性差及資源利用率低等問題。目前,SDN中應(yīng)用設(shè)備多,需要更多支持復(fù)雜負(fù)載均衡。傳統(tǒng)的多控制器管理技術(shù)與分布式負(fù)載均衡技術(shù)主要以控制面板方式進(jìn)行交互,對(duì)用戶訪問 SDN服務(wù)器的響應(yīng)速度有一定要求。在新的智能管理平臺(tái)上,應(yīng)用控制器能夠根據(jù)客戶服務(wù)級(jí)別提供個(gè)性化訪問方式,且實(shí)現(xiàn)了靈活的系統(tǒng)配置和功能擴(kuò)展,在不同程度上滿足了客戶的需求差異化。本文利用多控制器管理技術(shù)和分布式負(fù)載均衡技術(shù)進(jìn)行協(xié)同管理平臺(tái)設(shè)計(jì)優(yōu)化后,獲得的整體性能提升效果明顯[3]。
隨著SDN配置管理技術(shù)的不斷發(fā)展,不但可以有效改善使用者在進(jìn)行互動(dòng)時(shí)的網(wǎng)絡(luò)管理與利用,同時(shí)也能應(yīng)付愈演愈烈的網(wǎng)絡(luò)規(guī)模與組態(tài)。根據(jù) SDN的體系結(jié)構(gòu),提出了基于 SDN的多個(gè)控制器協(xié)作管理系統(tǒng)的3個(gè)層次結(jié)構(gòu)。在用戶界面中,用戶管理、多控制器管理、SDN設(shè)備管理、拓?fù)涔芾?、?fù)荷平衡管理等多個(gè)方面都是面向用戶可視化的應(yīng)用程序編程 接 口(Application Programming Interface,API)[4]。該系統(tǒng)以 RYU為核心,采用了開關(guān)管理模塊、本地內(nèi)存存儲(chǔ)模塊、設(shè)備管理模塊以及拓?fù)涔芾砟K來實(shí)現(xiàn)對(duì)系統(tǒng)的二次開發(fā)。在控制級(jí),以SDN體系結(jié)構(gòu)為核心,負(fù)責(zé)對(duì)全網(wǎng)的服務(wù)需求進(jìn)行管理,包括網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)、負(fù)載均衡、流表分發(fā)、鏈路發(fā)現(xiàn)等,提供了底層數(shù)據(jù)包轉(zhuǎn)發(fā)、數(shù)據(jù)集管理等底層功能,為 SDN系統(tǒng)的應(yīng)用提供了依據(jù)。在基本傳輸層次,SDN體系結(jié)構(gòu)的執(zhí)行人員負(fù)責(zé)執(zhí)行控制器發(fā)布的命令,并按照SDN開關(guān)的不同端口對(duì)業(yè)務(wù)進(jìn)行處理和轉(zhuǎn)發(fā)。
在此提出了一種基于多個(gè)控制器的協(xié)作體系結(jié)構(gòu),它由一個(gè) Intergroup集合模塊和一個(gè) Intergroup Management Module組成,對(duì)其進(jìn)行了有效的管理,并使用了一個(gè)界面協(xié)議對(duì)底層控制器群進(jìn)行了管理。該控制器采用 Zookeeper集成的數(shù)據(jù)存貯器,實(shí)現(xiàn)了對(duì)多個(gè)控制器的連續(xù)數(shù)據(jù)讀取和寫入。在控制器與 SDN交換器進(jìn)行數(shù)據(jù)交互時(shí),采用OpenFlow技術(shù)進(jìn)行通信,生成了相應(yīng)的參數(shù),如流程表的組態(tài)等,并將其保存在 Zookeeper中,多個(gè)控制器都可以從Zookeeper中讀出一個(gè)完整的 Zookeeper,從而為多控制器協(xié)作管理系統(tǒng)的拓?fù)洳檎摇⒇?fù)荷平衡等模塊提供支持。在這種結(jié)構(gòu)下,多控制器的維護(hù)是因?yàn)樵跀?shù)據(jù)轉(zhuǎn)發(fā)層SDN開關(guān)與控制器群中不同的控制器結(jié)點(diǎn)相連,因此通過 OpenFlow將各控制器向各控制器提交的信息進(jìn)行統(tǒng)一計(jì)劃,最后得到所有控制器的報(bào)告[5]。但是,如果一個(gè)控制器的節(jié)點(diǎn)出現(xiàn)了問題,那么它就可以利用 Zookeeper的選舉機(jī)制來進(jìn)行主控制器的選取,從而確保在移植之后新移植的控制器與之前控制程序的內(nèi)容一樣[6]。
該系統(tǒng)包括用戶的系統(tǒng)用戶表、角色表、權(quán)限關(guān)系表以及系統(tǒng)權(quán)限欄目表。多控制器組表、控制器表、控制器組、控制器組之間的關(guān)聯(lián)表包括控制器IP、控制器類型、南向接口、北向接口、控制器 ID、控制器名稱、控制器組以及控制器關(guān)聯(lián)ID[7]。交換機(jī)管理模組的交換機(jī)設(shè)備表、交換機(jī)設(shè)備型號(hào)表包括交換機(jī)ID、交換機(jī)DPID、管理IP、交換機(jī)名、交換機(jī)地址、交換機(jī)用戶名、交換機(jī)密碼、交換機(jī)模式、制造商名稱以及制造商型號(hào)等。
負(fù)載平衡部分包括實(shí)時(shí)狀態(tài)顯示和負(fù)載平衡算法轉(zhuǎn)換兩部分,本文通過多個(gè)負(fù)載平衡實(shí)例來說明上述的性能。例如,在控制器負(fù)載平衡實(shí)時(shí)狀態(tài)顯示函數(shù)的實(shí)施中,實(shí)時(shí)控制器組,控制器名稱,控制器IP,控制器交換機(jī)列表,控制器負(fù)載指數(shù),在線狀態(tài)和控制器北向端口和南向端口的配合,可令使用者能夠更加方便和直接地獲得控制器的負(fù)載狀態(tài)。
SDN裝置管理模塊的過程見圖1,系統(tǒng)管理員在網(wǎng)頁(yè)上執(zhí)行運(yùn)行要求,以查看或升級(jí) SDN開關(guān)的消息,首先由 CheckSwitchOnlineJob時(shí)間任務(wù)觸發(fā),并調(diào)用 CheckSwitchOnlineUtil,使用 CheckSwitchOnlineUtil類來完成 SDN交換。完成 SDN交換聯(lián)機(jī)檢驗(yàn)之后SwitchController會(huì)收到一個(gè)瀏覽或升級(jí)的請(qǐng)求,并呼叫 SwitchService界面類來進(jìn)行處理,接著SwitchService接口類收到一個(gè)瀏覽或升級(jí)的用戶要求,并調(diào)用 SwitchServiceImpl執(zhí)行程序,接著界面實(shí)施 SwitchServiceImpl執(zhí)行類接收一個(gè)瀏覽請(qǐng)求和一個(gè)更新的請(qǐng)求,執(zhí)行一個(gè)邏輯數(shù)據(jù)的過程[8]。
圖1 SDN裝置管理模塊的過程
平臺(tái)可以針對(duì)每個(gè)控制器進(jìn)行操作,也可以只對(duì)特定控制器進(jìn)行操作,根據(jù)業(yè)務(wù)指標(biāo)對(duì)多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行統(tǒng)一控制,實(shí)現(xiàn)了網(wǎng)絡(luò)之間的業(yè)務(wù)互聯(lián),提高了網(wǎng)絡(luò)運(yùn)行效率,并能快速發(fā)現(xiàn)網(wǎng)絡(luò)隱患[9]。同時(shí)該平臺(tái)能將不同類型網(wǎng)絡(luò)資源按照故障等級(jí)進(jìn)行分類,通過統(tǒng)一存儲(chǔ)和訪問策略進(jìn)行統(tǒng)一調(diào)度。將各控制器按照用戶權(quán)限進(jìn)行有序配置之后,即可對(duì)其進(jìn)行統(tǒng)一管理,實(shí)時(shí)監(jiān)控和反饋當(dāng)前網(wǎng)絡(luò)運(yùn)行情況及故障情況。通過實(shí)時(shí)反饋能夠發(fā)現(xiàn)并預(yù)警當(dāng)前的網(wǎng)絡(luò)性能下降等異?,F(xiàn)象。針對(duì)當(dāng)前故障狀態(tài)可對(duì)平臺(tái)上的資源進(jìn)行合理分配和統(tǒng)一調(diào)度,避免局部節(jié)點(diǎn)影響系統(tǒng)的正常運(yùn)行;針對(duì)網(wǎng)絡(luò)異常運(yùn)行狀況可提前發(fā)現(xiàn)并提醒用戶進(jìn)行故障處理,減少設(shè)備故障對(duì)業(yè)務(wù)帶來?yè)p害。該平臺(tái)能及時(shí)、準(zhǔn)確地發(fā)現(xiàn)問題,并在第一時(shí)間對(duì)故障進(jìn)行處理[10]。
基于 SDN的多控制器協(xié)同管理平臺(tái)具有系統(tǒng)容量大、成本低、響應(yīng)速度快等優(yōu)點(diǎn),能夠自動(dòng)發(fā)現(xiàn)并進(jìn)行異常告警工作,從而提高網(wǎng)絡(luò)響應(yīng)速度。通過仿真實(shí)驗(yàn)驗(yàn)證該方案的可行性和有效性,并且在一定程度上提高了系統(tǒng)應(yīng)用效率,提高了網(wǎng)絡(luò)資源使用效率。同時(shí)作為用戶也能夠隨時(shí)查看平臺(tái)上已發(fā)布的消息,實(shí)時(shí)掌控系統(tǒng)運(yùn)行狀況及業(yè)務(wù)數(shù)據(jù)情況。當(dāng)發(fā)生故障時(shí)能夠?qū)崿F(xiàn)快速響應(yīng)和自動(dòng)定位,實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)的集中控制、統(tǒng)一調(diào)度以及自動(dòng)故障處理等工作,同時(shí)能夠與現(xiàn)有資源進(jìn)行有效整合。由于控制節(jié)點(diǎn)使用多個(gè)控制器組成網(wǎng)狀網(wǎng)絡(luò),形成一個(gè)統(tǒng)一管理平臺(tái),因此本多控制器協(xié)同管理平臺(tái)可以為各通信運(yùn)營(yíng)商提供統(tǒng)一的控制能力和資源配置平臺(tái),使其具備靈活應(yīng)用、統(tǒng)一維護(hù)與優(yōu)化以及統(tǒng)一協(xié)調(diào)調(diào)度的能力要求。因此也可以有效提升企業(yè)通信網(wǎng)絡(luò)的能力與效率,為企業(yè)提供更加高效、穩(wěn)定的信息化服務(wù),從而獲得更大效益。