Tungsten Fabric如何支撑大规模云平台
按照控制器分类,有集中式和分布式。集中式的控制器有OpenFlow、OVSDB,以及Tungsten Fabric使用XMPP(一个聊天的协议)。我们可以把Neutron的Open vSwitch理解为OVSDB协议,Neutron是通过RabbitMQ把信令下发到具体的计算节点,计算节点的OVS Agent通过OVSDB的命令,把相应的流表增加到OVSDB交换机。 分布式的控制器,比如EVPN-VXLAN,就是使用了MP-BGP。 大家觉得哪种形式的控制器会更好一点呢?目前用OpenDaylight的项目有哪些?华为,华三等都在用,其控制器的SDN架构就是参照OpenFlow来做的。有些厂商自己有研发能力,基于自身的硬件设备,可以开发一个比较完善的产品。但在开源社区,很少看到一个成功的OpenDaylight项目,只是提供了一个框架和一些组件,不能很快基于开源项目run起来。其实OpenFlow只是一个概念,从这几年SDN的发展来看,它并没有成为一个事实的标准。 反而是OVSDB起来了,应用在Neutron软件的控制,还有交换机的控制上。比如Tungsten Fabric早期的BMS实现,虚拟机要和裸机通信,裸机通过VLAN TAG,上到TOR交换机,再通过VLAN到VXLAN的转换,到达虚拟网络。其中VLAN到VXLAN的转换,就是通过OVSDB协议下发的。你的交换机,理论上只要支持OVSDB协议,就可以做BMS场景。 我自己更倾向于这种分布式的控制器。因为集中式的永远会有瓶颈,无论是软件瓶颈,还是性能瓶颈。而EVPN-VXLAN的核心协议是MP-BGP,BGP的扩展性有多大?看看现在Internet骨干网,跑的就是BGP协议。 MP-BGP的协议,通过控制器下发流表信息,再通过BGP协议去交互,使用的时候只要针对你的相应架构,去做相应BGP协议的扩展性设计就可以。 针对Tungsten Fabric来说,其实是集中式和分布式两种流派的融合,既用到集中式的架构,在对外的连接上,又采用了分布式控制器的技术。 总结大规模云平台对SDN的要求,第一是网络基础架构要可扩展。如果采用二层架构,瓶颈就是在基础架构上,受限于交换机的端口数,二层交换机采用生成树协议,对于大规模网络平台,如果运维水平较差,接出一个环路出来,就很危险。 第二,控制器是可扩展的。无论集中式还是分布式,在架构上一定是可扩展的,至于能支持多大的量,就是代码实现的问题了。 第三,数据平面无集中式单点。谈到SDN的实际应用,运维是一个比较大的挑战,无论是做开发还是做运维出身的人,最重要的是理解虚拟机之间,虚拟机到外网之间,数据流量是怎样的?应该通过什么命令去看这些流量,去trouble shooting,就像以前传统网络运维怎么去抓包一样。对于扩展性来说,要实现传统网络的SNAT、floating IP等,每个项目都有不同的实现方式,实现过程中没有单点的话,在架构上就是可以扩展的。 第四,跨集群的扩展网络。架构上无论怎样扩展,总是有极限的,对于一个单集群来说,总会到达一个瓶颈。如果要建一个更大的集群,可以横向扩展多个集群出来,形成一个大的资源池。那么面临的问题是,网络是否需要互通。如果部署一个高可用业务,跨集群的情况如何做互通,主流的一些高可用组件,需要跨两个集群二层互通,都需要SDN去支持这样的需求。 在基础架构上,如果用Tungsten Fabric,只要是用于生产环境的话,选择IP CLOS架构就行,没必要再去折腾Fabric等二层架构。IP CLOS可以带来足够的扩展性和高性能,包括没有供应商锁定,建完以后基本不需要再动。 Leaf就是架顶式交换机,下面是子网,不同机架用不同子网,上层通过三层网关路由做通信,最主要的就是Leaf Spine之间三层怎么交互。瞻博网络有个文档介绍IP CLOS的白皮书,对OSPF、ISIS、BGP进行了控制平面上的对比,最佳建议是用eBGP来做交互。 Tungsten Fabric的本质是基于MPLS VPN的SDN。原来的VPN是解决多个site之间的互联,控制平面是BGP协议。到了数据中心里面,云之间的互联,一个物理机可以看做一个site,不同物理机之间借助VPN建立不同的隧道来打通,这就是Tungsten Fabric的本质。不同之处在于控制平面,Tungsten Fabric用的是集中式的控制器并通过XMPP协议控制vRouter的路由表。 简单看一下Tungsten Fabric的功能架构,在多云支持上,包括VMware、OpenStack容器、BMS;网络功能上,二层网络、三层网络、DHCP、DNS、QoS、防火墙、LB等都是支持的。 在部署的时候,控制器主要分为两种节点,一种是Analytics Cluster分析节点,主要做流的可视化。另外一种Controller节点用来控制网络,分为Configuration和Control Node,前者提供API,对接Neutron等云管平台,API通过创建一个pod,在Configuration上记录数据库,转换成相应的IF-MAP,控制器通过XMPP命令在vRouter上创建相应的接口,再把接口信息传给不同的vRouter或外部网关及硬件设备,控制器核心协议是BGP协议。 控制器在整个Tungsten Fabric里就是一个router reflector,把所有的二层接口、MAC接口信息,三层路由信息全部存在这里,分发到不同的vRouter上面。对于云内的vRouter,用XMPP推送,对于云外的Gateway等,通过BGP推送。 其中,NETCONF协议不是用来推送路由信息的,主要用于和网络硬件设备的一些配置下发。比如Tungsten Fabric中增加一个BMS服务器接入到Tungsten Fabric管理的虚拟网络,Tungsten Fabric中的Device Manager会通过NETCONF将VLAN接口的配置和下发到TOR交换机,通过NETCONF建立接口。然后Tungsten Fabric控制器再通过OVSDB协议或EVPN-VXLAN协议去配置相应的VLAN-VXLAN的桥接网关。如果需要把虚拟网络扩展到Gateway,NETCONF也会帮助创建相应的Routing instance配置。路由层面的交换信息,还是通过BGP来实现。 TF中文社区3月Meetup活动,将聚焦Tungsten Fabric与K8s的集成,由重量级嘉宾分享Tungsten Fabric与K8s的部署和实践,详细演示操作过程,并解答关于Tungsten Fabric和K8s的一切问题。关注“TF中文社区”公众号,后台点击“会议活动-Meetup”领取。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |