欢迎您光临本站,如有问题请及时联系我们。

专家观察 | 肖宏辉:“OpenStack中的SDN现状和简介”

  由工业和信息化部指导,中国信息通信研究院主办,业界知名组织云计算开源产业联盟(OSCAR)承办的2017全球云计算开源大会于4月19日-20日在北京国家会议中心顺利召开。本文为本届大会嘉宾分享的大会演讲速记内容,敬请浏览。

  大会演讲速记

OpenStack

  大家好,很高兴能跟大家分享这个主题,我先自我介绍一下,我叫肖宏辉,来自华为。

  OpenStack是非常出名的开源云平台,在云计算里面主要资源是计算、存储和网络,今天我们这个主题是讲SDN,也就是OpenStack网络。

SDN

  OpenStack不用介绍了,我们先来看看SDN。SDN总结起来可以说有两个特点,一个是网络资源可编程规制,具体来说是把网络设备做成软件可控,因为在传统机房里,如果我们要改动一个网络设备,需要到机房里面插拔一个设备,但是通过SDN我们可以通过软件控制实现这个功能。第二是控制层面和转发层面的分离,通过这样的分离,能够提升网络整体的管控能力。

  说到SDN,不得不说OpenFlow,它是OpenStack里面最具代表性的协议,是斯坦福大学提出的协议,有些时候可能会说OpenFlow和SDN是等同的,我个人认为基于OpenFlow的SDN是狭义的SDN。广义的SDN包括更多的协议,例如OVSDB,NETCONF等。

OpenStack Neutron

  我们首先看一下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的定位,Neutron致力于提供2—3层网络服务,4—7层服务由Neutron子项目提供。

  开源社区开发有一个大的特点,开发有一定的碎片性,Neutron的这样的定位首先能够提高核心代码的质量,降低核心代码的管控难度,但是同时增加碎片的程度,很多分离出去的子项目大家如果参与的话,会发现它的活跃度会大大降低。

  总体来说,在OpenStack中,不像Ceph对于存储来说有压倒一切的网络实现方案,包括Neutron的实现方案也不能胜过其他SDN方案。所以在目前Neutron社区里面可以发现主要活跃的工程师都是来自于HP和Mirrantis,不是传统的网络厂商,HP因为最近的策略,工程师都分流到了别的公司。而传统网络厂商,包括做SDN的厂商,他们热衷于是推自己的SDN,这样反过来又分散Neutron开发的力量。

OpenDayLigh

  接下来说一下OpenDayLight,这是基于Java + OSGI的平台,总的来说OpenDayLight项目功能是完善的,而且现在有基于ODL的商业版在售,也有数据中心基于ODL提供服务。不过思科对ODL贡献较多,一定程度掌握了ODL项目。另外OpenDayLight项目比较庞大,子项目也很多,如果说一个公司想要采用这个项目的话,建议由一个专业团队维护这个项目。

ONOS

  第二是ONOS,这是2014年由ON.Lab发起的,这个组织去年跟ONF合并了,所以以后看ONOS会看到是ONF支持的项目。ONOS定位是SDN system。但是ONOS项目在OpenStack里应用不是特别好,它与ODL有很多相似的地方,ONOS更偏向于数据中心的底层SDN控制器。

OpenContrail

  第三是OpenContrail,它的前身是2012年成立的创业公司Contrail,同年就被Juniper收购,并作为Juniper的SDN方案出售。OpenContrail比较有意思的是开源版本和商业版本同时存在,并且代码是一致的,区别是商业版本支持更好一些。

  OpenContrail定义是支持Cloud networking和NFV场景,经过这几年发展已经比较成熟了,而且本身架构是参考MPLS VPN,架构上比较可靠。

  在Mirrantis新发布的OpenStack版本里,OpenContrail是作为默认的构成在里面,用户可以选择。但是对于开源用户来说,因为存在商用版本的客观原因,落地有一定额困难。

Midonet

  再看Midonet,它是来自于日本创业公司Midokura。它跟OpenContrail类似,也是开源版本和商业版本存在,但是区别是Midonet开源版本和商业版本代码不一样,它的控制和运维方面的工具,商业版更先进一些。

  Midonet通过entworking+Midonet与OpenStack集成,并且Midonet定位不像ODL,作为大而全的SDN,它主要的定位是云计算网络,整个项目是比较可控的,适合大规模部署。而且在与OpenContrail竞争Mirrantis第三方SDN时失败了,这对Mirrantis有一定的冲击。另外,同样的问题也存在,因为背后有商业版,开源版落地存在困难。总之,背后有开源商业版的话,本身不是完全开源的,因为这种开源是为了更好的售卖商业。

Midonet

  下一个是OVN,OVN是OVS社区2015年1月发起的OVS子项目。OVS社区想在网络设备上多做一层虚拟网络管控,所以提出了OVN项目,他们想做虚拟网络可能,但是又不想做太靠上,所以OVN定义是轻量级的SDN。

  现在OVN是做networking-ovn向OpenStack集成。OVN主要定义是大规模部署和neutron本身有的一些问题,它有一个专门的项目做上千级别节点的模拟测试,但是现在有一个问题,就是数据库的高可用问题,因为OVN用的是OVS的DB,在实际产品当中不支持数据库高可用的话,用起来还是比较让人担心的。

Dragonflow

  最后说一下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发表过,大家有兴趣的话可以看一下。谢谢大家!


来源:本文由E8运维原创撰写,欢迎分享本文,转载请保留出处和链接!