SDN控制器之東西向擴展技術(shù)
控制器負責整個SDN網(wǎng)絡的集中化控制,對于把握全網(wǎng)置資源視圖、改善網(wǎng)絡資源交付都具有非常重要的作用。但控制能力的集中化,也意味著控制器局的安全性和性能成為全網(wǎng)的瓶頸,一旦控制器在性能或安全性上得不到保障,隨之而來的是全網(wǎng)的服務能力的降級甚至是癱。;另外,單一的控制器也無法應對跨多個地域的SND網(wǎng)絡問題,需要多個SDN控制器組成的分布式集群,以避免單一的控制器節(jié)點在可靠性、擴展性、性能方面的問題。目前,用于多個控制器之間溝通和聯(lián)系的東西向接口還沒定義標準,但專家表示,一些非常成熟的集群技術(shù)可以被運用到SDN網(wǎng)絡中來解決上述難題。
控制器的軟件化讓服務器可以作為控制器的載體,控制器集群可以以服務器集群為基礎(chǔ)搭建。因為SDN控制器在SDN網(wǎng)絡中的重要作用,控制器集群的設計更具特殊性,例如要能夠支持正在運行的集群中增加新的控制器,以改善擴展性、保存失效控制器對應的交換機狀態(tài)一保證可靠性,特別是因為控制器掌握著全網(wǎng)的SDN交換設備,通過分布式的協(xié)作方式確保網(wǎng)絡狀態(tài)的一致性尤其重要,一個典型的基于控制器集群的SDN架構(gòu)如圖所示。
基于控制器集群的SDN架構(gòu)
如圖,SDN可充分利用服務器集群技術(shù)(例如Hazelcast)部署用軟件實現(xiàn)的控制器,而對一個分布式的集群而言,最關(guān)鍵的是控制器之間的協(xié)作,系統(tǒng)中需要專門設置集群通信機制用于控制器之間的信息傳遞,如JGroups通信庫已經(jīng)成為了比較成熟的技術(shù)。
為保證控制器集群對SDN網(wǎng)絡的控制效果,有兩個方面的設計與實現(xiàn)非常重要。第一是主控制器的選舉,主控制器主要負責生成和維護全網(wǎng)范圍內(nèi)的控制器和交換機狀態(tài)信息,一旦出現(xiàn)失效,就需要從集群的副控制器中選舉一個成為新的主控制器。第二是控制器集群對交換機的透明化,即在SDN網(wǎng)絡的運行過程中,交換機無需關(guān)心當前他接受的是哪一臺控制器發(fā)來的命令,同時在其向控制器發(fā)送數(shù)據(jù)包時,能保持之前單一控制器的操作方式,從而保證控制器在邏輯上的集中。為了實現(xiàn)上述目標,控制器集群設計的關(guān)鍵要素包含以下:
1. 主控制器選舉
在網(wǎng)絡運行過程中,集群的副控制器需要周期性的監(jiān)控主控制器的工作狀態(tài),一旦發(fā)現(xiàn)訪問不可達,就要啟動主控制器的選舉,集群中主控制器的選舉,業(yè)界已有不少算法,例如基于paxos的分布式選舉算法,在算法設計中,需要考慮算法實現(xiàn)的復雜度,特別是如果控制器集群部署在廣域網(wǎng)中,還要考慮帶寬\延遲等網(wǎng)絡質(zhì)量因素。
2. 集群虛擬地址
為了實現(xiàn)控制器之間的負載均衡,控制器集群可以利用傳統(tǒng)的負載均衡技術(shù),例如在交換機向控制器進行注冊時,可以向某個靜態(tài)的虛擬IP地址發(fā)送,然后控制器集群會根據(jù)負載均衡算法,通過控制器間的通信確定并記錄該虛擬地址對應的控制器,并要求其負責對該交換機的控制,而控制器返回給交換機的數(shù)據(jù)包也將以虛擬IP地址為源地址,實現(xiàn)控制器集群對交換機的透明化。
3. 全網(wǎng)拓撲獲取
SDN網(wǎng)絡中的拓撲信息是實現(xiàn)資源優(yōu)化調(diào)度的關(guān)鍵。為了獲得全網(wǎng)控制器和交換機的工作情況,需要各個控制器周期的進行鏈路發(fā)現(xiàn),并將采集回來的網(wǎng)絡信息發(fā)送給主控制器匯總,再由主控制器統(tǒng)一下發(fā)給各個控制器。如果在定制數(shù)據(jù)流的轉(zhuǎn)發(fā)策略時,控制器發(fā)現(xiàn)數(shù)據(jù)流傳輸涉及的設備超過其控制的交換機范圍時,將會根據(jù)全網(wǎng)拓撲告知交換機對應的控制器,并通過協(xié)商制定一致的策略,進而統(tǒng)一下發(fā)給交換機。
4. 控制器失效應付
無論主控制器還是副控制器失效,集群都可以利用負載均衡技術(shù),將此前指派失效服務器的虛擬IP地址映射到其他工作正常的控制器,同時觸發(fā)對全網(wǎng)拓普信息的更新和獲取。
利用集群化的控制器,SDN網(wǎng)路將能夠避免單一的控制器造成的單點失效問題,同時能夠具有良好的擴展性,以應對巨大的交換機流量。特別是在廣域網(wǎng)環(huán)境,多地部署的控制器可有效改善openflow數(shù)據(jù)包額傳輸延遲,提升網(wǎng)絡性能。
控制器集群是解決控制器東西向擴展的重要技術(shù)之一,雖然當前有很多成熟的技術(shù)和成功的經(jīng)驗可供參考,但對SDN網(wǎng)絡而言,還有許多內(nèi)容需要進一步研究,例如控制器之間東西向接口標準的指定,這將有助于在控制層面提供更好的開放性,實現(xiàn)控制器之間的兼容,更好的支持SDN部署規(guī)模的提升。