SDN學習筆記:分布式與集中式控製層麵
“水在人類文明發展曆程中的作用非常重要。用來存儲、處理和傳播信息及知識的計算機的發展曆程,與人類儲存、使用和管理水的曆程有很多相似之處。在原始部落以及遊牧時期,人們的生活和生產局限在靠近水源的範圍,需要水的時候,要去江河湖泊裏取水回來,‘江河湖泊’就像‘主機’。到了個人計算機時代,如同人類的農耕時代,由於家家都有水井,人們的生活和生產獲得了更多的自由和便利;‘水井’很像個人計算機,自給自足,但是不能共享、大量閑置,嚴重浪費和低效。等我們到了城市,有了發達的自來水網絡,‘水’被集中起來處理、隨時、隨地地提供給人們,文明因此進入了一個新階段,就像“雲計算”將以寬帶網絡和新一代軟件與服務帶領我們進入信息化新時代。”這是一本書中對於人類信息產業發展的描述。
我覺得這一段對於計算機的發展曆程的描述,其實也是一段對於集中式與分布式的很好的論斷。用“水”來比喻計算機資源確是一個很精妙的想法。從人類對於水資源 的處理曆史來看,可以發現這樣一個有趣的現象:人們首先是依賴於水源,然後又自己鑽井來獲取水源,到最後又由統一的工廠來集中管理水源。這種模式對於網絡 存儲而言,就是這樣:最早的計算機統一存儲信息,用戶受網絡性能影響,再到後麵,個人計算機發展,整個網絡資源彼此分布在各家各戶的計算機硬盤之中,而到 了現在,存儲雲端化則又是將整個資源集中化,這種現象其實就是一個由集中式到分布式再到集中式的過程。可以發現,集中與分布的概念往往出現在對於資源的管 理上,當許多資源集中在一個地方是,這是集中式;而當資源分散在不同地方是,這便是分布式。對於集中式與分布式,它們各自有各自的優缺點。後麵會結合具體 的網絡實際進行分析。
那麼,對於整個網絡環境來說,我們又應該怎樣看待網絡的集中式與分布式呢?在這裏,我們所說的網絡的集中式與分布式通常指的是控製平麵的結構。下圖是《SDN—軟件定義網絡》一書中對於控製平麵與數據平麵分布式選項的譜係圖。
從上麵的譜係圖,我們可以看出,作者認為網絡控製平麵的體係有三種不同模型,一種是嚴格的集中式,另一種是半集中式或邏輯集中式,最後一種是完全分布式。
對於嚴格集中式控製平麵,其有以下特點:
1.最常用於實驗性的SDN控製器;
2.統一配置平台;
3.單點故障;
4.難以橫向擴展。
而對於半集中式或邏輯集中式的控製平麵,其特點為:
1.現代SDN控製器的典型方案;
2.統一配置平麵,需要與幕後的其他控製平麵實例進行同步,但需花費一段時間;
3.可恢複多點故障,但仍易受與其他控製平麵實例狀態同步的影響;
4.易於橫向擴展,僅需部署控製平麵的新實例。
對於完全分布式的控製平麵,其特點為:
1.典型的方法;
2.每個(邏輯的或真實的)設備上有一個控製平麵的實例;
3.已證明對故障的高可恢複性;
4.可能有收斂上的困難;
5.需要配置和管理N個實例;
6.難以橫向擴展,橫向擴展時需要增加新的設備。
那麼在SDN中,我們應該怎樣決定控製平麵的放置位置呢?Ken Gray提出了一個很有趣的概念:革命(revolution)、演進(evolution)、傳統(tradition)。
那麼什麼是革命方式呢?革命方式提出了將網絡的控製平麵完全采用集中式這樣一種推倒重來的全新方案。在這一模型中,設備上並不具有控製平麵的功能,這種模型 中的設備都是傻的速度很快的交換設備,被位於遠端的集中式控製平麵完全控製。在這裏,對於魯棒性問題,其在OpenFlow中其實已經有了一個很好的解決 方案,即同時采用多個控製器(OpenFlow在網元設備與控製器建立通信時提到了這個方案)來處理控製器異常情況。對於多個控製器之間的共存方 式,OpenFlow提出了兩種模式,一種是對等模式(Equal),另一種是主從模式(Master/Slave)。關於這兩種模式的不同,在後麵關於 OpenFlow協議以及SDN控製器方麵還會有一個詳細的講解。
演進方式指的是譜係圖中間的半集中式控製平麵模型,它著眼於一般定義下的網絡域。這種模式通常能以某種形式和分布式的控製平麵一起工作,這意味著設備還保留 了一些傳統的控製平麵功能(如ARP處理或MAC地址學習),同時允許一個集中式的控製器來操控其他功能,即采用集中式操作範式更方便的那些功能,這種觀 點往往被當作混合模式或“承載/疊加”的概念,即分布式控製平麵作為承載,而集中式控製平麵在利用承載網進行網絡傳輸的基礎上,在邏輯上疊加新的功能。對 於這種模式,我們常常需要考慮到這樣一個問題,如何實現“承載/疊加”?在OpenFlow白皮中,定義了兩種不同的交換機,一種是OpenFlow專用 交換機(Dedicated OpenFlow Switch),另外一種是兼容OpenFlow交換機(OpenFlow- Enabled Switch)。其實,在這裏,兼容OpenFlow交換機就是演進方式下的產品。兼容OpenFlow的交換機與OpenFlow專用 交換機的不同在於兩個方麵:一是兼容型交換機有一個Normal預留端口(Resevered Port);二是兼容型交換機支持從正常處理管線轉發數據 包的數據包處理方式。由於這種交換機隻需在傳統交換機上兼容OpenFlow協議,因此可以作為由完全分布式到嚴格集中式的有效過渡。
傳統方式,顧名思義,幾十隻目前大多數商用交換機所采用的控製層麵模式,即完全分布式。在這個模型中,每個設備除了擁有至少一個數據平麵外,還要擁有一個完整的控製平麵。而且,在該模型中每一個獨立的控製平麵必須與其他控製平麵合作,以支持一個整體的、可運行的網絡。顯然,這個方案並沒有新意,既不是革命性的,也不是演進性的。
SDN最能引起人們共鳴的三個概念是:可編程、控製平麵與數據平麵分離,以及用與網絡瞬時狀態管理的集中式控製模型。而具體而言,網絡控製層麵體係模型的確立是 控製平麵與數據平麵分離後整個網絡體係結構組成的核心思想之一。分布式到集中式的轉變,意味著集中式控製層麵必須要解決其不足之處,同時盡量多的發揮出集 中式的優勢。對於集中式控製層麵而言,控製層麵的集中化必然會便於網絡管理者管理和配置整個網絡,合理的調動網絡資源,進一步地優化網絡,提高網絡有效利用率。同時,利用資源集中化優勢,可以更好地實現網絡可編程化。但是,其魯棒性的劣勢需要合理地進行相關保護措施,保障控製層麵的安全,並且采用多種措施 來解決其擴展性問題。
最後更新:2017-04-03 05:39:25