精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

SDN & OpenStack漫談

責任編輯:editor006

作者:馬力

2015-11-03 15:02:46

摘自:INFOQ

之后1年的時間,其實也就是業(yè)界各類開源SDN解決方案陸續(xù)出現的階段,OpenContrail、Calico、OpenDayLight、ONOS、Midonet、OVN、Neutron DVR、Dragonflow等。

之后1年的時間,其實也就是業(yè)界各類開源SDN解決方案陸續(xù)出現的階段,OpenContrail、Calico、OpenDayLight、ONOS、Midonet、OVN、Neutron DVR、Dragonflow等。之后我的更多的精力就放在了真正能處理生產環(huán)境問題的SDN解決方案上。

1. OpenContrail

當時,OpenContrail的橫空出世,確實是SDN業(yè)界的一顆重磅炸彈。記得該項目剛開源,就開始評估和測試。OpenContrail確實是一個非常專業(yè)的SDN解決方案,其架構并無SPOF,用MPLS VPN實現了隔離,包括在那個時候率先設計并實現了基于Policy的服務鏈定義,非常值得學習。不過最終還是放棄跟進,原因如下:

(1)其軟件框架純粹是Juniper設計并實現了,沒有任何指導開發(fā)的文檔(門檻確實較高)。

(2)其轉發(fā)面模塊vRouter是Juniper設計并實現的Linux內核模塊,雖然只是簡單的查詢和轉發(fā)數據包,但當時在Mailing List上也有公司測試出有crash的現象。當時我特地發(fā)消息給社區(qū),建議社區(qū)盡量把內核態(tài)模塊提交給Linux Upstream,保證代碼質量。畢竟datapath crash的后果可想而知,沒有穩(wěn)定性,談何性能。

(3)開源社區(qū)并不開放,這個是大多廠商主導的開源社區(qū)的通病。

(4)畢竟在創(chuàng)業(yè)公司,很難依靠個人之力去維護一套龐大的沒有文檔的開源系統(tǒng)。

(5)聽說當時國內Juniper并無對應的技術支持團隊,就算企業(yè)愿意購買商業(yè)版本,也需國外遠程支持,說明Juniper并沒有很好去建設針對企業(yè)的服務體系,連企業(yè)級支持都沒,風險挺大。

這些都是很早之前的評估了,之后OpenContrail這個產品發(fā)展越來越好,包括也看到其和Mirantis合作落地了一些項目,不過還都是以Contrail商業(yè)版本為主。

2. Calico

這個開源項目是比較有趣的針對Neutron SDN的方案,當時投入了一些精力在其開源代碼上,受到了很大的啟發(fā)。Calico設計的思路其實非常簡單直白,它在每臺計算節(jié)點上安裝了一個BGP Speaker,通過軟件實現了Virtualized L3 Fabric。然后在架構上又引入了BGP Reflector解決full mesh的問題。雖然API是用的Neutron,但是大多Neutron extension都沒有實現,也不好實現,它是Flat Network的解決方案,當前還不支持Overlapping-IP,最多實現個安全組、但是完美支持了IPv6,其架構和Nova-network multihost模式更為接近,而且由于其控制平面基于BGP,計算開銷小并且運行可靠,運維成本低,所以在我眼里,他是Neutron版本的L3-based multihost模式。這個項目設計更多是考慮數據中心網絡架構,把Neutron的虛擬網絡與現實世界的DCN實現了整合,是大規(guī)模企業(yè)級私有云的一個可靠的解決方案。

3. OpenDayLight

OpenDayLight是一直在跟蹤的項目,它是基于動態(tài)模塊系統(tǒng)構建的插件式網絡操作系統(tǒng)(SDN-OS),是我見過的功能最為強大的SDN平臺(沒有之一)。從架構角度,它是純粹地利用了Java OSGI框架實現了一個動態(tài)模塊系統(tǒng),各個網絡服務模塊(無論是南向plugin還是北向plugin)都可以進行熱部署,這對于生產環(huán)境運維是極大的幫助,因為整個OSGI框架不變的基礎上,每個網絡服務都能做到獨立升級和修改,并且動態(tài)生效,不影響平臺穩(wěn)定性。而且它設計并實現了南北向交互的服務抽象層(AD-SAL和MD-SAL),大大方便了定制開發(fā)。唯一的問題在于AD-SAL和MD-SAL本身,OpenDayLight項目最早是實現了AD-SAL,其很多成熟的模塊都是基于AD-SAL開發(fā)的,但是之后,發(fā)現設計的AD-SAL存在擴展性和代碼重用的問題,就重新借助Yang模型設計了MD-SAL,然后希望逐步把AD-SAL實現的模塊重寫變成MD-SAL的,費時費力,當前應該還是存在兩個不同的SAL框架,建議新的插件都以MD-SAL為主開發(fā)。OpenDayLight還初步實現了集群功能,基于Akka框架實現集群,并且也設計了支持分布式內存數據庫,但是其擴展性我沒有評估過,不妄下判斷。從社區(qū)發(fā)展角度講,其代碼核心是Cisco實現的,之前確實擔心Cisco獨裁,但是目前整個項目全部由獨立的基金會操控,包括代碼貢獻上,Ericsson、Intel、Brocade、Huawei、ETRI等公司和組織都在持續(xù)貢獻,而且該開源項目已經納入了Linux基金會的合作項目。從功能實現的角度講,OpenDayLight是我用過的第一個純粹的網絡操作系統(tǒng),兼容并包各類網絡技術,包括OpenFlow1.0和1.3、OVSDB、BGP、LISP、Netconf、PCEP、SNMP、OpenDove等,可以做到統(tǒng)管整個DCN(數據中心網絡基礎架構),從上層服務上,提供了包括虛擬多租戶、服務鏈、有線電纜通信服務(DOCSIS)、OpenStack Neutron服務接口等模塊。與OpenStack的對接僅僅是其眾多應用中的一個,相信其在數據中心網絡領域、NFV領域,乃至三網融合領域,都會取得良好的發(fā)展。

最新版本是Lithium,在這個版本中,第一次看到了完整的使用文檔和開發(fā)文檔,這也是我評價一個開源項目是否值得跟進的一個重要指標(本人痛恨開源社區(qū)耍流氓)。目前其案例更多來自DCN領域,包括華為和Brocade都有基于OpenDayLight的數據中心解決方案產品對外在銷售,而騰訊的數據中心網絡優(yōu)化,也在使用OpenDayLight,說明其生產化已經成為可能,但從我的角度講,確實需要一個專業(yè)的網絡技術團隊作為服務支撐才行。OpenDayLight生產環(huán)境運維,以及基于OSGI模型的二次研發(fā),都是需要投入一定的成本的。 當前OpenDayLight與OpenStack的整合,也在按部就班的進行,并且完全跟隨著OpenStack社區(qū)的研發(fā)腳步,完整提供了ML2 Plugin和一部分Service Plugin。話說,Neutron 前PTL Kile就是OpenDayLight粉,并且在多個公共場合極力推廣整合解決方案。

4. ONOS

ONOS是另一個龐大的開源網絡操作系統(tǒng),它的設計的目標和實現的功能幾乎和OpenDayLight完全相同,得到了ONF組織的大力支持(OpenFlow標準制定者),是OpenDayLight唯一的市場競爭對手(目前兩個項目都在試探性地開展技術合作,競合關系值得期待)。其發(fā)展滯后于OpenDayLight,代碼主要由Huawei、ETRI、 ON.Lab等公司和組織參與貢獻,公司數目和質量還不及OpenDayLight(Huawei在開源道路上戰(zhàn)略很明確,使用人海戰(zhàn)術不放過任何一個可能的發(fā)展方向)。它的技術架構都和OpenDayLight類似,也是通過Yang模型定義其抽象層對象,集群實現的發(fā)展從使用Zookeeper、 Hazelcast到最后聽說選擇了Raft,由于我沒有嘗試使用過和分析過該系統(tǒng)源碼,對其技術不妄下判斷,但是從其對OpenStack的支持力度上看,還只是Demo階段,似乎Plugin也沒有完善,希望能盡快看到整合方案,并且從其官網的宣傳上看,落地的生產項目也幾乎沒有。

5. Midonet

Midonet是去年下半年開源的企業(yè)級OpenStack SDN解決方案,也是我介紹的主流方案中唯一一個全球范圍內認可的企業(yè)級解決方案,畢竟這個是人家Midokura公司賣了2年的產品,非常成熟,提供了完整的OpenStack網絡解決方案。從架構上講,第一次將分布式SDN控制器的概念落地,使用了Zookeeper和Cassandra作為持久化存儲方案(網絡拓撲數據庫),其控制器分布在每一臺計算節(jié)點上,實現了一個純分布式的控制平面,管理接口通過Restful HTTP Server實現,數據平面利用了Openvswitch datapath,通過分布式路由實現東西向的流量調度,通過BGP發(fā)布外網網段,是一個沒有SPOF的解決方案,更加精妙的是,其流表的下發(fā)完全使用Proactive模型,其安全組和防火墻是基于Ingress Filtering的設計方案,大大降低了數據網絡的無效流量,其還存在一個簡單的防DDoS模塊;另外它實現了Virtual Single Hop,虛擬網絡內任意兩點間均只存在單跳。所以從架構、性能、穩(wěn)定性上,Midonet都是最適合大規(guī)模生產環(huán)境使用的SDN解決方案,并且已經得到了OpenStack業(yè)界權威RedHat和Mirantis的認證支持。但是,它也不是完美的。第一,和OpenDayLight/ONOS不同,Midonet僅支持OpenStack和VMware,無法脫離OpenStack和vSphere單獨使用;第二,其雖然開源,但是從governance model看,完全是掌握在Midokura公司手里,并且沒有指導開發(fā)的技術文檔(其在Github上的開發(fā)文檔都是完全落后于其當前代碼設計的,我在閱讀源碼過程中發(fā)現大量無效內容,讓我莫名走了很多的彎路);第三,它的技術堆棧主體是基于JVM的Scala語言,任務管理框架基于Akka,在云計算技術中比較冷門,一般需要較長的學習周期才能適應這門函數式編程語言及其框架。 當然,我和Midonet的核心開發(fā)人員以及社區(qū)管理員都進行過多次面談和電話交流,他們承諾會盡自己努力構建一個完善的開源生態(tài),希望他們能越走越開放。

6. OVN

OVN這個項目之所以會拋出,就是因為發(fā)現Neutron并不適合于作為完整的SDN控制器使用,僅適合作為整個虛擬網絡層的北向應用(定義API接口)。 (就如我之前說的,專業(yè)的系統(tǒng)讓專業(yè)的人去開發(fā),OpenStack社區(qū)做好應用層和生態(tài)的管理就行了)。最終,因為OVS在那個時候就已經成為de facto,具有一定的話語權,所以這個社區(qū)也就承擔了為OpenStack設計并實現一套能大規(guī)模生產化使用的網絡系統(tǒng)的任務。從技術架構講,這個項目最初的設計就是參考了Midonet(當時Midonet已經得到了大家的注意),但是由于OVS社區(qū)是基于C stack的,所以架構雖然類似,但卻更多利用了已有的OVS代碼進行改造,比如它的數據持久化方案,完全借助其已經在使用的OVSDB-server作為全局的網絡拓撲數據庫和本地狀態(tài)存儲;部署架構上,每臺計算節(jié)點上都部署了ovn-controller作為本地SDN控制進程負責OpenFlow和OVSDB的通信。從產品成熟度來講,畢竟這個是一個全新剛起步的方案,當前還僅僅實現了和Neutron ML2的對接,依照它的Roadmap,明年初就可以完善對接到Neutron ML2 Plugin+Service Plugins,并且實現分布式路由;另一個方面,OVSDB-server是一個不支持HA、Cluster的單點NoSQL數據存儲系統(tǒng),所以除非OVN引入更可靠的分布式系統(tǒng),比如Zookeeper、Cassandra、Raft,否則肯定無法生產環(huán)境使用。還是希望OpenStack東京峰會能有更多利好的消息,以及待到明年開始具體進行測試評估工作。然后從社區(qū)角度講,畢竟和OVS同源,所以確實是一個值得期待和信任的方案,但是由于其設計初就綁定了OpenStack,所以和Midonet類似,無法擴展到非CMS(云管理系統(tǒng))的應用場景。另外,這個項目的核心推動者之一,還是Neutron 前PTL Kile,看來他對Neutron當前實現怨念很深啊。

7. Neutron DVR 和Dragonflow

這兩個項目是當前Neutron社區(qū)設計并實現的分布式路由解決方案,專門解決東西向流量的問題。

(1)DVR

這個是Neutron最初的分布式路由方案,由HP主導,將L3-agent管理的網絡拓撲分布到所有的計算節(jié)點上,看似很牛,實則純粹就是個玩具。為什么那么說?因為首先,它的設計并沒有創(chuàng)新,而是將整個L3的控制和轉發(fā)面復制到了所有的計算節(jié)點,確實開發(fā)省心省力,并且設計之初就沒有考慮其他高級網絡服務對L3Router的依賴,導致兼容性問題;其次,運維復雜度上升不止一個數量級, 針對虛擬路由器所定義的本地狀態(tài)(tap, veth peer, router namespace, flow table等等)原本僅分布在某幾臺網絡節(jié)點(L3-agent)上,現在卻分布在所有的計算節(jié)點上,看似沒有了SPOF,但運維難度并沒有降低;然后也是最讓人郁悶的是,整個BP的推動到代碼的編寫充斥著不確定性,一方面代碼的實現并不優(yōu)雅,實現過程中都是硬生生地嵌入Neutron已有的代碼中,之后再發(fā)現問題,提交大量的重構去滿足DVR的落地;該功能的代碼寫完提交給社區(qū)進行測試后,才發(fā)現原來和社區(qū)已經存在的L3 HA、甚至與存在了1年多的L2pop均有兼容性問題;單元測試和功能測試用例極其不完善;每個Release都曝出各種High Level的Bugs,據統(tǒng)計大于30+,所以就如我之前說的,給HP和Review BP的人狠狠點贊,各種刷Commits和Reviews的機會啊。最后從SDN技術發(fā)展的角度上說,DVR的推動是Neutron SDN的退步,它雖然解決了東西向流量集中路由的問題,但是在 packet tracing沒有可靠工具的前提下,不僅其增加了datapath的復雜度,間接導致增加了運維的復雜度,提高了企業(yè)網絡運維的隱形成本,與利用SDN技術降低OpEx的初衷相反。

(2)Dragonflow

這個是Neutron社區(qū)之后推動的第二個分布式路由方案,完全由Huawei主導,OpenFlow Reactive的設計思路,利用純流表實現的分布式路由,設計比DVR優(yōu)雅太多,我也沒有時間去做測試評估,但是從設計文檔看,確實非常清晰,但由于一方面該項目參與的開發(fā)者并不多,另一方面項目起步也比較晚、到目前社區(qū)CI系統(tǒng)還沒能支持該項目的集成測試,所以當前是否能直接上生產,我持保留意見,反正東京峰會快要舉行了,在峰會上應該會有一些確定的結論。最后要說明Dragonflow只是替代L3-agent的方案,包括與FWaaS、VPNaaS的兼容性問題,更重要是首包上送的性能,還有待生產環(huán)境去考證。所以,和DVR一樣,它的應用范圍實在有限,不是一個完整的SDN解決方案。

8. 本文純屬個人觀點,請自由拍磚,但本人僅關注在文章中技術層面存在嚴重失誤的拍磚。

作者簡介

馬力,海云捷迅(AWcloud)架構師,關注領域:大規(guī)模云計算架構、數據中心基礎架構、SDN、OpenStack,Email:[email protected]

鏈接已復制,快去分享吧

企業(yè)網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 吉林省| 海林市| 沭阳县| 锡林浩特市| 铁岭市| 科技| 历史| 吉木萨尔县| 洪泽县| 长春市| 商南县| 锦屏县| 莱芜市| 女性| 翼城县| 库尔勒市| 宁阳县| 平泉县| 安岳县| 蚌埠市| 沽源县| 怀宁县| 加查县| 固安县| 尚志市| 蓬莱市| 茂名市| 安西县| 皮山县| 东台市| 苏尼特右旗| 祁东县| 余姚市| 扎兰屯市| 紫云| 广宁县| 纳雍县| 常熟市| 玉环县| 泰安市| 汉中市|