《專家觀察 | 肖宏輝:“OpenStack中的SDN現狀和簡介”》要點:
本文介紹了專家觀察 | 肖宏輝:“OpenStack中的SDN現狀和簡介”,希望對您有用。如果有疑問,可以聯系我們。
由工業和信息化部指導,中國信息通信研究院主辦,業界知名組織云計算開源產業聯盟(OSCAR)承辦的2017全球云計算開源大會于4月19日-20日在北京國家會議中心順利召開.本文為本屆大會嘉賓分享的大會演講速記內容,敬請瀏覽.
嘉賓介紹:肖宏輝
公司職務:華為軟件工程師
大會演講速記
大家好,很高興能跟大家分享這個主題,我先自我介紹一下,我叫肖宏輝,來自華為.
OpenStack是非常出名的開源云平臺,在云計算里面主要資源是計算、存儲和網絡,今天我們這個主題是講SDN,也就是OpenStack網絡.
OpenStack不用介紹了,我們先來看看SDN.SDN總結起來可以說有兩個特點,一個是網絡資源可編程規制,具體來說是把網絡設備做成軟件可控,因為在傳統機房里,如果我們要改動一個網絡設備,需要到機房里面插拔一個設備,但是通過SDN我們可以通過軟件控制實現這個功能.第二是控制層面和轉發層面的分離,通過這樣的分離,能夠提升網絡整體的管控能力.
說到SDN,不得不說OpenFlow,它是OpenStack里面最具代表性的協議,是斯坦福大學提出的協議,有些時候可能會說OpenFlow和SDN是等同的,我個人認為基于OpenFlow的SDN是狹義的SDN.廣義的SDN包括更多的協議,例如OVSDB,NETCONF等.
我們首先看一下OpenStack ?Neutron,Neutron大體上可以分為兩部分:Neutron server 和Neutron agent.Neutron server包含了API和DB,也就是說,整個OpenStack環境里所有網絡信息,都是存在Neutron server中,包括網絡可達信息還有統計數據的運算都是在Neutron server進行的.Neutron agents可以看作是網絡實現.需要說一下的是,Neutron除了自身提供一套網絡實現之外,還考慮到第三方兼容.
Neutron項目是OpenStack社區最活躍的項目之一,它集中了大量工程師參與開發,在OpenStack場景下它的穩定性和一定規模下的可靠性也是別的SDN所不能比擬的.
另一方面,再看看Neutron的定位,Neutron致力于提供2—3層網絡服務,4—7層服務由Neutron子項目提供.
開源社區開發有一個大的特點,開發有一定的碎片性,Neutron的這樣的定位首先能夠提高核心代碼的質量,降低核心代碼的管控難度,但是同時增加碎片的程度,很多分離出去的子項目大家如果參與的話,會發現它的活躍度會大大降低.
總體來說,在OpenStack中,不像Ceph對于存儲來說有壓倒一切的網絡實現方案,包括Neutron的實現方案也不能勝過其他SDN方案.所以在目前Neutron社區里面可以發現主要活躍的工程師都是來自于HP和Mirrantis,不是傳統的網絡廠商,HP因為最近的策略,工程師都分流到了別的公司.而傳統網絡廠商,包括做SDN的廠商,他們熱衷于是推自己的SDN,這樣反過來又分散Neutron開發的力量.
接下來說一下OpenDayLight,這是基于Java + OSGI的平臺,總的來說OpenDayLight項目功能是完善的,而且現在有基于ODL的商業版在售,也有數據中心基于ODL提供服務.不過思科對ODL貢獻較多,一定程度掌握了ODL項目.另外OpenDayLight項目比較龐大,子項目也很多,如果說一個公司想要采用這個項目的話,建議由一個專業團隊維護這個項目.
第二是ONOS,這是2014年由ON.Lab發起的,這個組織去年跟ONF合并了,所以以后看ONOS會看到是ONF支持的項目.ONOS定位是SDN system.但是ONOS項目在OpenStack里應用不是特別好,它與ODL有很多相似的地方,ONOS更偏向于數據中心的底層SDN控制器.
第三是OpenContrail,它的前身是2012年成立的創業公司Contrail,同年就被Juniper收購,并作為Juniper的SDN方案出售.OpenContrail比較有意思的是開源版本和商業版本同時存在,并且代碼是一致的,區別是商業版本支持更好一些.
OpenContrail定義是支持Cloud ?networking和NFV場景,經過這幾年發展已經比較成熟了,而且本身架構是參考MPLS VPN,架構上比較可靠.
在Mirrantis新發布的OpenStack版本里,OpenContrail是作為默認的構成在里面,用戶可以選擇.但是對于開源用戶來說,因為存在商用版本的客觀原因,落地有一定額困難.
再看Midonet,它是來自于日本創業公司Midokura.它跟OpenContrail類似,也是開源版本和商業版本存在,但是區別是Midonet開源版本和商業版本代碼不一樣,它的控制和運維方面的工具,商業版更先進一些.
Midonet通過entworking+Midonet與OpenStack集成,并且Midonet定位不像ODL,作為大而全的SDN,它主要的定位是云計算網絡,整個項目是比較可控的,適合大規模部署.而且在與OpenContrail競爭Mirrantis第三方SDN時失敗了,這對Mirrantis有一定的沖擊.另外,同樣的問題也存在,因為背后有商業版,開源版落地存在困難.總之,背后有開源商業版的話,本身不是完全開源的,因為這種開源是為了更好的售賣商業.
下一個是OVN,OVN是OVS社區2015年1月發起的OVS子項目.OVS社區想在網絡設備上多做一層虛擬網絡管控,所以提出了OVN項目,他們想做虛擬網絡可能,但是又不想做太靠上,所以OVN定義是輕量級的SDN.
現在OVN是做networking-ovn向OpenStack集成.OVN主要定義是大規模部署和neutron本身有的一些問題,它有一個專門的項目做上千級別節點的模擬測試,但是現在有一個問題,就是數據庫的高可用問題,因為OVN用的是OVS的DB,在實際產品當中不支持數據庫高可用的話,用起來還是比較讓人擔心的.
最后說一下Dragonflow,這是在2015年由華為以色列團隊提出的項目.如果其他SDN都是在各自社區發展再嫁接到OpenStack,那Dragonflow就是一個源于OpenStack的SDN項目.它的定位是提供全功能的SDN解決方案,項目較為可控,適合大規模部署.SDN現在定位就是大規模部署的輕量級SDN,一方面雖然它是全功能SDN,但是現在整個架構還比較輕的,代碼在幾萬行這個量級.另一方面,它是一個真正的分布式SDN,Dragonflow在所有計算節點上都跑SDN 控制器,這樣把網絡運算都分布到計算節點,去除了網絡運算的瓶頸.
然后說一下Dragonflow的開源政策,Dragonflow目前主要是華為在推,到目前剛剛結束的一個版本,活躍度還是非常高的,開源政策也是比較開放的.Dragonflow項目設計考慮到應用場景多樣性,設計了可插拔的模塊,前面說的SDN,一般只支持一種數據庫,但是Dragonflow支持五到六種數據庫.這樣用戶可以根據自己實際的經驗和環境來選擇SDN數據庫.比如之前有ETCD的經驗,現在用Dragonflow的話,ETCD經驗可以繼續維持下去.
再簡單看一下SDN和OpenStack的關系,首先SDN是獨立的領域,在OpenStack之外SDN是獨立發展的.另一方面,OpenStack的發展與SDN發展又是相互促進的關系,本身這兩個領域發展時間上看是重合的,另外SDN主要應用場景是云計算和網絡,OpenStack發展推動云計算的發展,進而能夠帶動SDN的發展,另一方面,SDN發展又能夠使得OpenStack集群規模變得更大,進而能夠推動OpenStack發展.
前面介紹這么多SDN,他們有一個共同特點,他們都可以通過OpenStack Neutron來提供北向接口,或者他們都做了與OpenStack Neutron的對接,所以光看SDN和OpenStack,OpenStack Neutron有趨勢成為各種SDN統一的北向接口.
在傳統SDN架構里,只有控制層和數據層,最近提出的SDN架構還包括應用層,而OpenStack就存在于應用層.SDN控制器是整個SDN的核心.SDN的最底層是數據層,數據層實際上就是一個個網絡設備,網絡設備可以包括物理設備和虛擬設備,比較有意思的是,雖然說SDN是用軟件定義網絡,但是目前SDN市場里,份額最大的還是支持SDN的物理設備,最賺錢的還是這塊.虛擬設備是一個最有發展前景的,畢竟成本上能夠降低不少.
時間原因我就簡單介紹這些,本次介紹有更詳細的版本,我在知乎上的專欄https://zhuanlan.zhihu.com/software-defined-network
發表過,大家有興趣的話可以看一下.謝謝大家!
文章來自微信公眾號:云計算開源產業聯盟
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4164.html