李軍飛,蘭巨龍,胡宇翔,鄔江興
?
SDN多控制器一致性的量化研究
李軍飛,蘭巨龍,胡宇翔,鄔江興
(國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南鄭州 450002)
針對(duì)SDN網(wǎng)絡(luò)中多控制器的一致性問(wèn)題,提出了一種量化的研究方法,為控制層的東西向擴(kuò)展提供更為精準(zhǔn)有效的共享網(wǎng)絡(luò)視圖方法。首先,結(jié)合SDN的特性,給出了控制器之間一致性、性能以及可用性的度量指標(biāo),建立通用的量化分析模型。其次,針對(duì)其中3類典型的一致性問(wèn)題進(jìn)行了量化研究,明確了其取得最優(yōu)值的條件,為一致性參數(shù)的配置提供了參考。最后,通過(guò)仿真實(shí)驗(yàn)對(duì)該量化方法進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該量化方法能夠有效提高SDN控制層的性能和可用性。
SDN;多控制器;一致性;性能;可用性
隨著網(wǎng)絡(luò)應(yīng)用的快速發(fā)展,傳統(tǒng)的網(wǎng)絡(luò)交換設(shè)備承載著越來(lái)越多的控制邏輯,已難以適應(yīng)虛擬化、云計(jì)算、大數(shù)據(jù)及相關(guān)業(yè)務(wù)發(fā)展對(duì)數(shù)據(jù)高速傳輸、資源靈活配置、協(xié)議快速部署的需求。軟件定義網(wǎng)絡(luò)(SDN, software defined network)提出了控制與轉(zhuǎn)發(fā)分離的設(shè)計(jì)結(jié)構(gòu),實(shí)現(xiàn)了開(kāi)放的可編程網(wǎng)絡(luò)接口,為網(wǎng)絡(luò)提供了更細(xì)粒度的管理,引起了學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛研究[1,2]。然而,SDN的集中式控制在為網(wǎng)絡(luò)應(yīng)用帶來(lái)創(chuàng)新與便利的同時(shí),也帶來(lái)了可靠性、可擴(kuò)展性以及可用性等方面的問(wèn)題。目前,無(wú)論是針對(duì)SDN的可靠性問(wèn)題[3],還是可擴(kuò)展性問(wèn)題[4],大多數(shù)的解決方法均采用多控制器間主備冗余或?qū)Φ葏f(xié)同的方法。
然而,多個(gè)控制器之間如何高效地共享網(wǎng)絡(luò)視圖,以期實(shí)現(xiàn)快速的主備切換或有效的集中式控制,即SDN控制器的一致性(consensus)問(wèn)題,仍是SDN多控制器網(wǎng)絡(luò)面臨的主要難題之一。維護(hù)SDN控制器一致性的主要目的就在于要保證主控制器獲取的網(wǎng)絡(luò)事件能夠共享給從控制器,或本地控制器獲取的網(wǎng)絡(luò)事件能夠傳播給全局其余的控制器,以使多個(gè)控制器在關(guān)于全網(wǎng)的視圖問(wèn)題上達(dá)成一致。在SDN網(wǎng)絡(luò)中,強(qiáng)一致性有利于多個(gè)控制器間具有更加一致的網(wǎng)絡(luò)視圖,使基于集中式控制的上層應(yīng)用的效果更好。但是,這也會(huì)帶來(lái)更多的通信開(kāi)銷和延遲,影響控制層面的性能并降低其可用性。
目前,SDN控制器的一致性主要是通過(guò)分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)來(lái)實(shí)現(xiàn)[5],其可供選擇的一致性協(xié)議、數(shù)據(jù)交互和同步方法有限,難以滿足上層應(yīng)用的多樣化部署和流量?jī)?yōu)化需求[6,7]。而且,控制器一致性的研究主要集中在設(shè)計(jì)和實(shí)現(xiàn)方面,多是針對(duì)不同強(qiáng)度一致性的定性研究,缺少對(duì)其進(jìn)一步的量化和優(yōu)化。因此,研究多控制器之間一致性、性能以及可用性的量化關(guān)系,并基于此來(lái)尋求SDN多控制器間的協(xié)同優(yōu)化配置,對(duì)于提升SDN控制層面的整體性能具有重要的現(xiàn)實(shí)應(yīng)用價(jià)值。
綜上,本文提出了一種SDN多控制器的一致性量化研究方法,希望能引起相關(guān)研究者的興趣。具體而言,本文通過(guò)建立SDN多控制器的通用量化分析模型,研究其一致性、性能及可用性之間的協(xié)同優(yōu)化配置,以減少同步的通信開(kāi)銷、提高可用性。
SDN的主要優(yōu)勢(shì)之一就是具有全局的網(wǎng)絡(luò)視圖,供部署在控制器上層的應(yīng)用所使用,以簡(jiǎn)潔高效地解決傳統(tǒng)網(wǎng)絡(luò)中難以解決的問(wèn)題,如Handigol、Wang等[1,2]的研究結(jié)果表明集中式網(wǎng)絡(luò)具有更為有效的負(fù)載均衡管理。然而,SDN網(wǎng)絡(luò)中也存在著可靠性、可擴(kuò)展性以及可用性等方面的問(wèn)題,成為了該領(lǐng)域的研究熱點(diǎn)。例如,Li等[3]針對(duì)主控制器異常會(huì)造成整個(gè)網(wǎng)絡(luò)癱瘓的問(wèn)題,提出了多個(gè)冗余控制器采用BFT (byzantine fault tolerant)技術(shù),以增強(qiáng)控制層的可靠性。另外,Dixit等[4]針對(duì)不斷增長(zhǎng)的SDN網(wǎng)絡(luò)規(guī)模及單個(gè)控制器性能有限的問(wèn)題,提出了多個(gè)分布式控制器協(xié)同工作的方法,以解決SDN網(wǎng)絡(luò)的可擴(kuò)展性。因此,無(wú)論是解決SDN網(wǎng)絡(luò)中的可靠性還是可擴(kuò)展性,目前大多數(shù)的方法都是基于多控制器的思想。然而,由于不同控制器管理的交換機(jī)不同或角色不同,導(dǎo)致其獲得的網(wǎng)絡(luò)視圖不同,為了能夠達(dá)到SDN的集中式控制效果,多個(gè)控制器之間需要同步其網(wǎng)絡(luò)視圖。控制器之間如何同步,使具有更加一致的網(wǎng)絡(luò)視圖,是上述研究要解決的根本問(wèn)題。
HyperFlow[8]是第一個(gè)提出在SDN網(wǎng)絡(luò)中引入分布式控制器概念的,控制器之間通過(guò)構(gòu)建在分布式文件系統(tǒng)WheelFS之上的訂閱—發(fā)布平臺(tái)實(shí)現(xiàn)數(shù)據(jù)同步,以確保節(jié)點(diǎn)之間對(duì)網(wǎng)絡(luò)視圖的一致性。同時(shí),文獻(xiàn)[8]也評(píng)估了HyperFlow中控制器節(jié)點(diǎn)之間的同步性能,即每秒能夠處理1 000次以下的網(wǎng)絡(luò)事件更新,但沒(méi)有對(duì)一致性強(qiáng)弱對(duì)性能的影響做進(jìn)一步的研究。Onix[5]是第一款產(chǎn)品級(jí)的強(qiáng)調(diào)可用性和可擴(kuò)展性的SDN控制器,由于其針對(duì)大規(guī)模的商用級(jí)網(wǎng)絡(luò)所開(kāi)發(fā),所以廣泛應(yīng)用于Google、VMware等公司的商用網(wǎng)絡(luò)中。Onix控制器為上層應(yīng)用提供了NIB (network information base) 的網(wǎng)絡(luò)視圖,并有2種可供選擇的不同類型的數(shù)據(jù)庫(kù)用于節(jié)點(diǎn)間的數(shù)據(jù)同步:面向SQL的、具有強(qiáng)一致性的事務(wù)型數(shù)據(jù)庫(kù),但其同步性能較低;基于DHT (distributed Hash map)的、僅能最終一致性的Key-Value數(shù)據(jù)庫(kù),但有較好的同步性能。然而,Onix是一款不開(kāi)源的控制器,且僅提供了2種不同強(qiáng)弱的一致性模型,難以適應(yīng)SDN上層應(yīng)用的多樣化需求。OpenDayLight是一個(gè)以商用為初衷的開(kāi)源的控制器項(xiàng)目,得到Cisco、IBM等公司的支持,其中的多控制器協(xié)同主要是采用云計(jì)算中的Infinispan數(shù)據(jù)存儲(chǔ)框架[9],但由于其目前仍在開(kāi)發(fā)之中,沒(méi)有達(dá)到理想的性能指標(biāo),故需要重新考慮該部分的設(shè)計(jì)[10]。
另外,Bailis等[11]研究了如何采用PBS (probabilistically bounded staleness) 模型預(yù)測(cè)分布式節(jié)點(diǎn)間數(shù)據(jù)的最終一致性強(qiáng)度,為一致性和性能之間的權(quán)衡提供了借鑒方法。但是,該模型針對(duì)通用的分布式系統(tǒng),沒(méi)有結(jié)合SDN的特性給出具體的優(yōu)化方法。Hassas等[12]提出了一種層次式架構(gòu)來(lái)實(shí)現(xiàn)多控制器間的一致性,其中,上下兩層控制器形成樹(shù)狀結(jié)構(gòu),下層的控制器負(fù)責(zé)局部交換機(jī)的管理,上層控制器協(xié)調(diào)下層控制器的同步,維護(hù)網(wǎng)絡(luò)視圖的一致性。然而,該方法僅改變了多控制器間的通信模式,并沒(méi)有緩解一致性和性能之間的沖突問(wèn)題。
3.1 動(dòng)機(jī)
在分布式系統(tǒng)一致性的研究中,一致性與性能之間的平衡始終是研究熱點(diǎn),針對(duì)不同的應(yīng)用場(chǎng)景提出了不同強(qiáng)弱的一致性協(xié)議[13,14]。例如,Paxos是解決分布式系統(tǒng)一致性問(wèn)題的經(jīng)典算法,可以保證多控制器之間具有強(qiáng)一致的網(wǎng)絡(luò)視圖,但是在一次數(shù)據(jù)同步中,proposer、acceptor和learner之間需要多次交互。如圖1所示,這種信息交互方式會(huì)產(chǎn)生較大的網(wǎng)絡(luò)通信開(kāi)銷,尤其是在選舉失敗或提議沖突的情況下消耗的網(wǎng)絡(luò)帶寬更為嚴(yán)重。因此,采用弱一致性協(xié)議或最終一致性協(xié)議來(lái)降低節(jié)點(diǎn)間同步的通信開(kāi)銷,對(duì)于提升性能具有較好的效果。然而,弱一致性導(dǎo)致了控制器之間網(wǎng)絡(luò)視圖的差異,影響某些上層應(yīng)用的功能和效果,文獻(xiàn)[6]中所提及的流量負(fù)載均衡應(yīng)用。因此,如何在滿足上層應(yīng)用一致性要求的情況下,實(shí)現(xiàn)最小的同步通信開(kāi)銷以及最高的可用性,是本文的研究重點(diǎn)。
3.2 相關(guān)概念
3.2.1 一致性
對(duì)于一個(gè)SDN控制器節(jié)點(diǎn),由于本地緩存或通信延遲,使其控制區(qū)域內(nèi)更新的網(wǎng)絡(luò)事件沒(méi)有及時(shí)地共享給它其余的控制器,造成了節(jié)點(diǎn)間網(wǎng)絡(luò)視圖的不一致。因此,這里采用控制器間網(wǎng)絡(luò)事件的差異度作為一致性的度量指標(biāo),控制器之間網(wǎng)絡(luò)事件的差異度越大,意味著系統(tǒng)的一致性越弱。另外,控制器節(jié)點(diǎn)上有不同類型的網(wǎng)絡(luò)事件,表1中列舉了部分常見(jiàn)的事件,如新的主機(jī)節(jié)點(diǎn)加入、鏈路斷開(kāi)、流量負(fù)載更新等,并且,一致性的強(qiáng)弱很大程度上依賴于具體的應(yīng)用,例如,對(duì)于路徑計(jì)算應(yīng)用來(lái)說(shuō)是弱一致性的協(xié)議,而對(duì)于負(fù)載均衡應(yīng)用來(lái)說(shuō)卻可能是強(qiáng)一致性的。同時(shí),不同的網(wǎng)絡(luò)事件對(duì)于同一上層應(yīng)用的一致性影響是不同的,例如,對(duì)于路徑計(jì)算應(yīng)用的一致性而言,網(wǎng)絡(luò)拓?fù)涞淖兓鄬?duì)于流量負(fù)載的變化,具有更大的影響。

表1 常見(jiàn)的網(wǎng)絡(luò)事件
綜上可知,一致性的分析是要針對(duì)某一具體的上層應(yīng)用,且取決于該應(yīng)用中所涉及網(wǎng)絡(luò)事件的類型和數(shù)量。所以,對(duì)于部署在多個(gè)SDN控制器上的某一應(yīng)用,定義控制器節(jié)點(diǎn)CN的一致性為

其中,E(1≤≤)表示在控制器節(jié)點(diǎn)CN上應(yīng)用中所涉及的網(wǎng)絡(luò)事件的類型,|E|表示該控制器節(jié)點(diǎn)上已更新的但還沒(méi)有及時(shí)同步的網(wǎng)絡(luò)事件E的最大數(shù)量,λ表示事件E在應(yīng)用中的影響因子。可以看出,c的取值越大,該節(jié)點(diǎn)的一致性越弱。進(jìn)一步地,可以定義應(yīng)用在整個(gè)系統(tǒng)中的一致性為
(2)
其中,表示網(wǎng)絡(luò)中控制器的數(shù)目。那么,當(dāng)僅有,,,意味著SDN控制層面僅有一個(gè)控制器節(jié)點(diǎn)有事件更新,對(duì)應(yīng)用于增強(qiáng)SDN網(wǎng)絡(luò)可靠性的主備冗余多控制器網(wǎng)絡(luò);當(dāng),,意味著每個(gè)節(jié)點(diǎn)最多有一個(gè)需要同步的事件,對(duì)應(yīng)強(qiáng)一致性的分布式多控制器網(wǎng)絡(luò)。
3.2.2 性能
控制器之間進(jìn)行一致性同步的性能主要受限于2個(gè)因素:1)節(jié)點(diǎn)間的通信開(kāi)銷;2)單節(jié)點(diǎn)的同步負(fù)載。下面將逐一分析上述因素與一致性的關(guān)系,以研究性能與一致性之間的平衡點(diǎn)。
對(duì)于通信開(kāi)銷,控制器節(jié)點(diǎn)CN在同步一個(gè)網(wǎng)絡(luò)事件E時(shí),產(chǎn)生的數(shù)據(jù)分組通常較小,平均在1 KB左右,最大不超過(guò)4 KB[15],如圖1中步驟2的數(shù)據(jù)分組。而且,一致性協(xié)議交互過(guò)程中的其余數(shù)據(jù)分組的大小也大都在該范圍內(nèi),差異不大,如圖1中步驟3~步驟5通信過(guò)程的數(shù)據(jù)分組。因此,使用單位時(shí)間內(nèi)的通信次數(shù)作為衡量通信開(kāi)銷的指標(biāo),文獻(xiàn)[16]中也采用了該近似方法。那么,當(dāng)控制器節(jié)點(diǎn)CN每次均在達(dá)到一致性上限C時(shí),節(jié)點(diǎn)間進(jìn)行一次一致性同步,則可以獲得最小的通信開(kāi)銷,速率為

其中,是一個(gè)固定的常數(shù),取決于系統(tǒng)中采用的一致性協(xié)議。g表示控制器節(jié)點(diǎn)CN上網(wǎng)絡(luò)事件E的產(chǎn)生速率。進(jìn)一步,可以計(jì)算整個(gè)系統(tǒng)通信開(kāi)銷的最小速率為
(4)
單節(jié)點(diǎn)的同步負(fù)載主要是指本地發(fā)送的或接受遠(yuǎn)程的同步請(qǐng)求,可以采用同步次數(shù)作為其量化指標(biāo),即上文中所述的V。因此,式(3)和式(4)可以表示一致性與性能之間的關(guān)系。
3.2.3 可用性
可用性是另一個(gè)與一致性沖突的因素,在要求強(qiáng)一致性的多控制器網(wǎng)絡(luò)中,當(dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),使控制器之間的網(wǎng)絡(luò)視圖形成差異。此時(shí),控制層由于無(wú)法達(dá)成強(qiáng)一致性的網(wǎng)絡(luò)視圖,將不能再繼續(xù)工作,失去可用性。控制器節(jié)點(diǎn)間如果減弱一致性強(qiáng)度,在本地緩存部分更新的網(wǎng)絡(luò)事件,則能夠容忍短時(shí)間的故障。

進(jìn)而,整個(gè)控制層的可用性可以被度量為
(6)
3.3 一致性問(wèn)題
在對(duì)SDN多控制器的一致性、性能以及可用性進(jìn)行量化分析之后,接下來(lái)本文研究它們之間的平衡點(diǎn),以獲取最大的效益。在對(duì)某一上層應(yīng)用進(jìn)行一致性配置時(shí),通常會(huì)有2類針對(duì)不同目標(biāo)的優(yōu)化問(wèn)題:1)在給定一致性的約束條件下,求解可以實(shí)現(xiàn)的最大性能或最高可用性;2)在給定性能或可用性約束的條件下,求解可以實(shí)現(xiàn)的最大一致性。對(duì)于這些約束條件,一般從全局的角度對(duì)整個(gè)系統(tǒng)進(jìn)行約束,進(jìn)一步地,考慮到網(wǎng)絡(luò)環(huán)境和應(yīng)用需求的多樣性,也可以對(duì)每個(gè)控制器節(jié)點(diǎn)進(jìn)行具體的約束。因此,該一致性問(wèn)題又可以細(xì)分為幾類具體的子問(wèn)題,下面選取其中具有代表性的3個(gè)問(wèn)題進(jìn)行詳細(xì)的描述和分析。
1) 給定一致性的全局約束,求能實(shí)現(xiàn)的最大性能
Q1:對(duì)某一上層應(yīng)用,已知其在各個(gè)控制器節(jié)點(diǎn)上所涉及網(wǎng)絡(luò)事件的更新速率,即,在式(2)的一致性約束的條件下,求式(4)的最小取值。
2) 給定一致性的全局約束,求可獲得的最高可用性
Q2:對(duì)某一上層應(yīng)用,已知其在各個(gè)控制器節(jié)點(diǎn)上所涉及網(wǎng)絡(luò)事件的更新速率,即,以及故障節(jié)點(diǎn)修復(fù)時(shí)間t,在式(2)的一致性約束的條件下,求式(6)的最大取值。
3) 給定一致性的具體約束,求能實(shí)現(xiàn)的最大性能
Q3:對(duì)某一上層應(yīng)用,已知其在各個(gè)控制器節(jié)點(diǎn)上所涉及網(wǎng)絡(luò)事件的更新速率,即。給定式(1)的一致性約束,及式(2)的約束,且,求式(4)的最小取值。
本節(jié)將逐一討論上述一致性問(wèn)題的最優(yōu)解,并分析其獲得最優(yōu)解的條件。
4.1 問(wèn)題Q1的最優(yōu)解

(8)

c的取值雖然復(fù)雜,但其含義是簡(jiǎn)單清晰的,可以稱其為“平方根分布法則”[16],表示每個(gè)節(jié)點(diǎn)的一致性上限與其產(chǎn)生網(wǎng)絡(luò)事件速率的平方根成正比。所以,在給定一致性的全局約束下,可以根據(jù)各個(gè)節(jié)點(diǎn)產(chǎn)生網(wǎng)絡(luò)事件的速率來(lái)分配各節(jié)點(diǎn)的一致性上限,以獲得最小的通信開(kāi)銷,實(shí)現(xiàn)更高的性能。
4.2 問(wèn)題Q2的最優(yōu)解
同問(wèn)題Q1類似,c的取值取決于節(jié)點(diǎn)產(chǎn)生網(wǎng)絡(luò)事件的速率,當(dāng)兩者之間構(gòu)成正比關(guān)系時(shí),整個(gè)控制層的可用性達(dá)到最大。同時(shí),本文也注意到該問(wèn)題的最優(yōu)解并不唯一,上述僅是其中的一組。
4.3 問(wèn)題Q3的最優(yōu)解
問(wèn)題Q3的求解是一個(gè)典型的多約束非線性規(guī)劃問(wèn)題,可形式化描述為

MNP啟發(fā)式算法
在該啟發(fā)式算法中,首先按照4.1節(jié)中的平方根分布法則,計(jì)算在全局約束下取得最優(yōu)解的點(diǎn)(第4)、5)行),以其作為啟發(fā),搜索臨近的近似最優(yōu)解。同時(shí),記錄與局部一致性相沖突的項(xiàng)x,構(gòu)成集合(第6)、7)行)。然后,在能夠較快接近最優(yōu)解的方向上搜索,即在集合中選擇x,使其對(duì)應(yīng)的t是所有沖突項(xiàng)中最大的,并使其滿足局部一致性約束(第13)、14)行)。最后,從解向量中去除x項(xiàng)(第15)、16)行),進(jìn)行下一輪的最優(yōu)解搜索,直至所有的項(xiàng)同時(shí)也滿足局部約束(第8)~11)行)。
5.1 測(cè)試環(huán)境
為了測(cè)試該量化模型,本文采用C++語(yǔ)言實(shí)現(xiàn)了一個(gè)仿真器,來(lái)模擬多控制器之間的一致性交互。該仿真器基于Internet 2 OS3E網(wǎng)絡(luò)拓?fù)洌琌S3E是一個(gè)遍布美國(guó)的用于先進(jìn)科學(xué)研究的SDN網(wǎng)絡(luò)[18]。如圖2所示,OS3E具有34個(gè)節(jié)點(diǎn)和42條鏈路,每個(gè)節(jié)點(diǎn)表示一個(gè)獨(dú)立的大學(xué)或組織,通常需要部署一個(gè)SDN控制器。因此,在該仿真器中,本文假定OS3E的每個(gè)節(jié)點(diǎn)上均部署一個(gè)控制器,控制器之間需要一致性交互。
同時(shí),在該仿真器中實(shí)現(xiàn)了3種一致性策略:1) Strict Mode:確保SDN網(wǎng)絡(luò)中的每個(gè)事件能夠被及時(shí)地全局共享,即,類似于Onix中基于SQL的強(qiáng)一致性模型;2) Relaxed Mode:在滿足一致性約束的前提下,節(jié)點(diǎn)間選擇最弱的一致性協(xié)議,且各節(jié)點(diǎn)的一致性配置相同,即,類似于Onix中基于Key-Value的弱一致性模型;3) Elastic Mode:基于上述量化模型的分析結(jié)果,設(shè)計(jì)一種具有彈性的一致性協(xié)議,使各節(jié)點(diǎn)的一致性配置與其網(wǎng)絡(luò)事件的更新速率相協(xié)調(diào)。通過(guò)分析上述3種策略的仿真結(jié)果,來(lái)說(shuō)明該量化模型相對(duì)于SDN網(wǎng)絡(luò)中常用一致性模型的優(yōu)勢(shì)。
5.2 實(shí)驗(yàn)數(shù)據(jù)
對(duì)于要在多個(gè)控制器節(jié)點(diǎn)上部署的上層應(yīng)用,假定其全局一致性約束C= 68,并在上述實(shí)驗(yàn)環(huán)境中對(duì)其進(jìn)行仿真測(cè)試。圖4所示為在該約束下全局通信開(kāi)銷的仿真結(jié)果,包括同構(gòu)網(wǎng)絡(luò)和異構(gòu)網(wǎng)絡(luò)2種仿真場(chǎng)景,其中的軸采用西八區(qū)(PST)時(shí)間。從仿真結(jié)果可以看出,在3種一致性策略中,Elastic Mode一直具有最小的通信開(kāi)銷,Strict Mode的通信開(kāi)銷最大,且三者隨時(shí)間的走勢(shì)大致相同。所以,Elastic Mode相對(duì)于常用的一致性策略能夠?qū)崿F(xiàn)更好的性能。另一方面,通過(guò)對(duì)比分析具體的數(shù)據(jù),可以發(fā)現(xiàn)在異構(gòu)網(wǎng)絡(luò)中,Elastic Mode具有更好的效果,即各節(jié)點(diǎn)網(wǎng)絡(luò)事件數(shù)量的差異越大,Elastic Mode提升性能的效果越顯著。
進(jìn)一步地,在全局一致性約束的基礎(chǔ)上,再對(duì)每個(gè)控制器節(jié)點(diǎn)做具體的約束,即,其中,b在[1, 3]內(nèi)隨機(jī)取值。Elastic Mode采用4.3節(jié)所述的啟發(fā)式算法,計(jì)算每個(gè)節(jié)點(diǎn)的一致性參數(shù)c。這里僅在異構(gòu)網(wǎng)絡(luò)中進(jìn)行了仿真,圖5給出了該一致性約束下的通信開(kāi)銷。同樣,Elastic Mode具有最小的通信開(kāi)銷,而Strict Mode的通信開(kāi)銷最大。另外,與圖4(b)對(duì)比,圖5中Relaxed Mode通信開(kāi)銷的抖動(dòng)較大,即在一些特殊情況下的性能較差(如圖5中7 h、11 h、19 h等時(shí)刻),而Elastic Mode通信開(kāi)銷的變化較為平穩(wěn),能適應(yīng)不同情況的一致性約束。
對(duì)于可用性的仿真測(cè)試,為了便于對(duì)比分析,考慮另一個(gè)在多個(gè)控制器節(jié)點(diǎn)上部署的上層應(yīng)用,假定其全局一致性約束C= 1 700。由于各節(jié)點(diǎn)產(chǎn)生網(wǎng)絡(luò)事件的速率很快,為了不致使其在故障發(fā)生后均能超出本地一致性約束的上限,假定系統(tǒng)可以在很短的時(shí)間內(nèi)修復(fù)故障,即t= 0.01 s。這里也僅在異構(gòu)網(wǎng)絡(luò)中進(jìn)行了仿真,測(cè)試結(jié)果如圖6所示,軸表示式(6)中的。其中,Elastic Mode和Relaxed Mode的可用性大致相當(dāng),在9~15 h時(shí),Elastic Mode的可用性略占優(yōu)勢(shì)。而Strict Mode的可用性為定值,遠(yuǎn)低于上述兩者的可用性。

圖5 具體約束下的通信開(kāi)銷
綜合上述分析可以發(fā)現(xiàn),在多控制器的SDN網(wǎng)絡(luò)中,基于該量化模型來(lái)適時(shí)調(diào)整一致性參數(shù)的Elastic Mode,相對(duì)于傳統(tǒng)的一致性策略Strict Mode和Relaxed Mode,在減小通信開(kāi)銷和提高可用性上,都具有一定的優(yōu)勢(shì)。因此,該量化模型對(duì)于研究多控制器之間的一致性問(wèn)題,提升控制層面的性能和可用性,具有重要的意義。
本文針對(duì)SDN多控制器間的一致性問(wèn)題,首先介紹了該領(lǐng)域的相關(guān)工作和研究。然后,結(jié)合SDN的特性,給出了一致性、性能及可用性的度量指標(biāo),建立了量化分析模型。然后,選擇其中的幾類一致性問(wèn)題進(jìn)行量化研究,求解其最優(yōu)值以及獲得最優(yōu)值的條件,為一致性參數(shù)的配置提供了指導(dǎo)。最后,將基于上述量化模型的一致性配置方法與傳統(tǒng)的一致性方法進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果表明該方法能夠有效提高控制層面的性能和可用性。下一步的工作是把該方法應(yīng)用到OpenDayLight控制器上,將其作為東西向接口以實(shí)現(xiàn)控制器之間的同步,測(cè)試在真實(shí)SDN環(huán)境下的一致性效果。
[1] HANDIGOL N, SEETHARAMAN S, FLAJSLIK M, et al. Plugin-serve: load-balancing Web traffic using OpenFlow[J]. ACM SIGCOMM Demo, 2009, 4(5): 6.
[2] WANG R, BUTNARIU D, REXFORD J. OpenFlow-based server load balancing gone wild[C]//USENIX HotICE. c2011:12.
[3] LI H, LI P, GUO S, et al. Byzantine-resilient secure software-defined networks with multiple controllers in cloud[J]. IEEE Transactions on Cloud Computing, 2014, 2(4): 436-447.
[4] DIXIT A, HAO F, MUKHERJEE S, et al. Towards an elastic distributed SDN controller[C]//ACM SIGCOMM Computer Communication Review, 2013, 43(4): 7-12.
[5] KOPONEN T, CASADO M, GUDE N, et al. Onix: a distributed control platform for large-scale production networks[C]//OSDI. c2010: 1-6.
[6] LEVIN D, WUNDSAM A, HELLER B, et al. Logically centralized: state distribution trade-offs in software defined networks[C]//The First Workshop on Hot Topics in Software Defined Networks. ACM, c2012: 1-6.
[7] STRAU? J. Control-plane consensus in software-defined networking: distributed controller synchronization using the ISIS2 toolkit[J/OL]. http://elib.uni-stuttgart.de/handle/1162/357/.
[8] TOOTOONCHIAN A, GANJALI Y. HyperFlow: a distributed control plane for OpenFlow[C]//The 2010 Internet Network Management Conference on Research on Enterprise Networking. USENIX Association, c2010: 3.
[9] LUO M, WU X, ZENG Y, et al. Multi-dimensional hashing for fast network information processing in SDN[C]//Complex, Intelligent, and Software Intensive Systems (CISIS), 2015 Ninth International Conference. IEEE, c2015: 140-147.
[10] BOTELHO F, BESSANI A, RAMOS F, et al. SmartLight: a practical fault-tolerant SDN controller[J]. arXiv preprint arXiv:1407.6062.
[11] BAILIS P, VENKATARAMAN S, FRANKLIN M J, et al. Probabilistically bounded staleness for practical partial quorums[J]. Proceedings of the VLDB Endowment, 2012, 5(8): 776-787.
[12] HASSAS Y S, GANJALI Y. Kandoo: a framework for efficient and scalable offloading of control applications[C]//The First Workshop on Hot Topics in Software Defined Networks. ACM, c2012: 19-24.
[13] BAILIS P, VENKATARAMAN S, FRANKLIN M J, et al. Quantifying eventual consensus with PBS[J]. The VLDB Journal, 2014, 23(2): 279-302.
[14] DIAO Z. Consistency models for cloud-based online games: the storage system’s perspective[J/OL]. http://ceur-ws.org/Vol-1020/paper_03.pdf.
[15] BOTELHO F, RAMOS V, MANUEL F, et al. On the feasibility of a consistent and fault-tolerant data store for SDNs[C]//Software Defined Networks (EWSDN), 2013 Second European Workshop. IEEE, c2013: 38-43.
[16] ZHANG C, ZHANG Z. Trading replication consensus for performance and availability: an adaptive approach[C]//Distributed Computing Systems, 23rd International Conference. IEEE, c2003: 687-695.
[17] YU H, VAHDAT A. The costs and limits of availability for replicated services[J]. ACM SIGOPS Operating Systems Review, ACM, 2001, 35(5): 29-42.
[18] Internet2 open science, scholarship and services exchange[EB/OL]. http://www.internet2.edu/network/ose/.
[19] SHALIMOV A, ZUIKOV D, ZIMARINA D, et al. Advanced study of SDN/OpenFlow controllers[C]//The 9th Central & Eastern European Software Engineering Conference in Russia. ACM, c2013: 1.
Quantitative approach of multi-controller’s consensus in SDN
LI Jun-fei, LAN Ju-long, HU Yu-xiang, WU Jiang-xing
(National Digital Switching System Engineering & Technological R&D Center, Zhengzhou 450002, China)
For the problem of multi-controller’s consensus in SDN, a quantitative approach was proposed, which provided a more accurate and effective method of sharing network view for the control layer's east-west extension. Firstly, the metrics of consensus, performance and availability between the controllers with the feature of SDN was provided, establishing the common model for quantitative research. Secondly, for the three typical questions in the research of multi-controller’s consensus, the condition to achieve its optimal value was explicated, which provided a reference for the configuration of consensus. Finally, to verify the validity of the quantitative approach by simulation, experimental results show that this approach can improve the performance and availability of the control layer in SDN effectively.
SDN, multi-controller, consensus, performance, availability
TP393
A
10.11959/j.issn.1000-436x.2016119
2015-10-19;
2016-05-10
國(guó)家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(“973”計(jì)劃)基金資助項(xiàng)目(No.2012CB315901, No.2013CB329104);國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61521003,No.61372121);國(guó)家高技術(shù)研究發(fā)展計(jì)劃(“863”計(jì)劃)基金資助項(xiàng)目(No.2015AA016102, No.2013AA013505)
The National Basic Research Program of China(973 Program) (No.2012CB315901, No.2013CB329104), The National Natural Science Foundation of China (No.61521003, No.61372121), The National High Technology Research and Development Program of China(863 Program) (No.2015AA016102, No.2013AA013505)
李軍飛(1989-),男,河南安陽(yáng)人,國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心博士生,主要研究方向?yàn)榧惺骄W(wǎng)絡(luò)管控下的主動(dòng)防護(hù)技術(shù)。
蘭巨龍(1962-),男,河北張北人,博士,國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心總工程師、教授、博士生導(dǎo)師,主要研究方向?yàn)樾乱淮畔⒕W(wǎng)絡(luò)關(guān)鍵理論與技術(shù)。
胡宇翔(1982-),男,河南周口人,博士,國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心講師,主要研究方向?yàn)樾乱淮畔⒕W(wǎng)絡(luò)關(guān)鍵理論與技術(shù)。
鄔江興(1953-),男,浙江嘉興人,國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心教授、博士生導(dǎo)師,主要研究方向?yàn)榫W(wǎng)絡(luò)通信和網(wǎng)絡(luò)安全。