“水在人類文明發展歷程中的作用非常重要。用來存儲、處理和傳播信息及知識的計算機的發展歷程,與人類儲存、使用和管理水的歷程有很多相似之處。在原始部落以及游牧時期,人們的生活和生產局限在靠近水源的范圍,需要水的時候,要去江河湖泊里取水回來,‘江河湖泊’就像‘主機’。到了個人計算機時代,如同人類的農耕時代,由于家家都有水井,人們的生活和生產獲得了更多的自由和便利;‘水井’很像個人計算機,自給自足,但是不能共享、大量閑置,嚴重浪費和低效。等我們到了城市,有了發達的自來水網絡,‘水’被集中起來處理、隨時、隨地地提供給人們,文明因此進入了一個新階段,就像“云計算”將以寬帶網絡和新一代軟件與服務帶領我們進入信息化新時代。”這是對于人類信息產業發展的一種描述。
我覺得這一段對于計算機的發展歷程的描述,其實也是一段對于集中式與分布式的很好的論斷。用“水”來比喻計算機資源確是一個很精妙的想法。從人類對于水資源 的處理歷史來看,可以發現這樣一個有趣的現象:人們首先是依賴于水源,然后又自己鉆井來獲取水源,到最后又由統一的工廠來集中管理水源。這種模式對于網絡 存儲而言,就是這樣:最早的計算機統一存儲信息,用戶受網絡性能影響,再到后面,個人計算機發展,整個網絡資源彼此分布在各家各戶的計算機硬盤之中,而到了現在,存儲云端化則又是將整個資源集中化,這種現象其實就是一個由集中式到分布式再到集中式的過程。可以發現,集中與分布的概念往往出現在對于資源的管 理上,當許多資源集中在一個地方是,這是集中式;而當資源分散在不同地方是,這便是分布式。對于集中式與分布式,它們各自有各自的優缺點。后面會結合具體 的網絡實際進行分析。
那么,對于整個網絡環境來說,我們又應該怎樣看待網絡的集中式與分布式呢?在這里,我們所說的網絡的集中式與分布式通常指的是控制平面的結構。下圖是《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最能引起人們共鳴的三個概念是:可編程、控制平面與數據平面分離,以及用與網絡瞬時狀態管理的集中式控制模型。而具體而言,網絡控制層面體系模型的確立是 控制平面與數據平面分離后整個網絡體系結構組成的核心思想之一。分布式到集中式的轉變,意味著集中式控制層面必須要解決其不足之處,同時盡量多的發揮出集 中式的優勢。對于集中式控制層面而言,控制層面的集中化必然會便于網絡管理者管理和配置整個網絡,合理的調動網絡資源,進一步地優化網絡,提高網絡有效利用率。同時,利用資源集中化優勢,可以更好地實現網絡可編程化。但是,其魯棒性的劣勢需要合理地進行相關保護措施,保障控制層面的安全,并且采用多種措施 來解決其擴展性問題。n