1.数据中心和新的网络架构需要软硬件一体化
看到前面的兄弟关于NSX架构的分享,感到收获良多,Vmware力争实现的平台是一种和硬件解耦,把大部分问题在虚拟化架构中解决的构想,对于传统硬件厂商来说,这种方式给我们带来了很多挑战,也带来了软件网络能否完全脱离硬件体系的很多争论。
值得肯定的是,目前软件网络的功能和性能都有较大的提升,包括Vrouter,vLB等NFV产品的出现,已经对传统网络厂商构成了一定威胁,Brocade也正是NFV(包括vRouter,vLB的供应商),我们的vRouter Vyatta已经能够达到80G以上的吞吐性能,众多公有云服务商,例如AWS,RackSpace等,已经将Vyatta路由器作为租户服务的一部分,随着业界NFV性能和feature的日益进步,服务商已经开始考虑和部署虚拟网络功能在他们的Service Chain之中,这种架构不仅能够节省Opex,降低Capex,更加易于部署和灵活。
话分两边,从另一个角度看,不管软件网络如何发展,数据中心PODs和分区之间的连接,乃至骨干网节点之间,仍然是以硬件交换机连接为主的体系结构,这就提出了underlay网络和overlay网络的配合问题,一个良好运行的overlay network,也要求底层网络提供足够的带宽和可用性。
架设网络如同盖楼,如果说overlay网络是架设在硬件平台的高楼或者高架桥,以交换机和服务器为代表的硬件基础设施就可以看做地基,无论上层架构如何设计和改动,没有坚实的网络硬件基础,足够的带宽,可接受的时延,overlay网络即便花样百出, 仍然受制于硬件基础条件的供应能力。因此,客户呼唤并且期待着能够对于数据中心乃至广域网流量的调度,网络功能的部署和管理做到统一化,全局化,视图化控制,今天所分享的方案,正是基于硬件配合软件的一种统一管控架构。
目前对于数据中心软件定义网络和管理的流派,主要分为开源(诸如ODL,NOS),overlay(如Nicira/Vmware NVP平台),以及以cisco juniper为代表的vendor specific架构。Brocade是开源SDN架构的坚定支持者,我们是Opendaylight的白金会员,同时是最早推出SDN开源控制器的厂商之一。博科之所以采用开源路线,主要的原因是因为希望提供和架设一种开放的生态系统,SDN的发展已经无可逆转,而第三代平台的出现,意味着对传统硬件更加开放,弹性,灵活的要求,所以我们的95%以上产品,都支持标准化的openflow协议,支持多种控制器,当然也包括我们自己的开源控制器。
书归正文,提起数据中心网络,值得回顾一下架构的变迁和发展。下图展示了网络结构的发展。
从传统的3-tier架构(Access,Agg,Core)到当前以东西向流量为主的扁平化架构,到当今云计算服务广泛部署所要求的支持多租户,自动化和隔离的架构,SDDC的提出要求overlay网络和HW foundation紧密结合,提供一体化控制的网络系统,Brocade和Vmware通过合作共同打造了结合软硬平台体系的解决方案。软件部分,采用NSX平台,硬件underlay网络,采用brocade VCS fabric技术。
对于数据中心的网络架构,比较有参考价值的是当今业界最大的数据中心,下图显示了facebook中心的网络架构。Facebook的网络经常被众多运维和设计人员参考和学习,不仅是因为其复杂度,还有其规模和先进性,都是当今业界领先的。
这种架构基于CLOS体系,所有TOR Switch和Spine节点均采用40G端口连接,同时支持无缝式的横向扩展。对于复杂的数据中心,网络设备的自动化程度和部署上线的速度至关重要,对于传统的业务上线,通常一个2层环境中需要对新业务相关的TOR交换机进行大量配置,特别是诸如 TRILL或者Fabric技术,例如cisco的Fabric path,通常需要在Spine节点和leaf节点进行相应的配置。
而Brocade的设备对于集群和Fabric的配置做到了自动化和动态发现,对比一下对于一个2层环境Fabric的设置可知,Brocade Fabric采用了即插即用的集群化技术。很多网络规划人员在设计方案前期往往非常重视设备性能,时延,支持的功能和特性,但对于配置管理的难易程度和自动化程度,并不总是被提上日程。
自动化的意义在何处?有人说我命令熟得很,配设备和过家家酒一样简单,不差一点时间,当然人工配置有些时候会更加灵活,对细节的控制更好,特别是Trouble shooting,但当网络规模急速扩大,膨胀到数百,乃至数千台交换机时,仅仅依赖人工的配置和维护,是缺乏效率,乃至不可能的任务。
自动化运维和配置,不仅仅是节省了配置时间,也降低了出错几率,对于重复性的,常规性的配置,采用自动化技术可以极大缩短网络配置时间,降低管理难度和出问题的可能性。
对于企业而言,投资硬件设备的根本目的,在于为业务服务,CTO和CIO重点考虑的事情,是ROI,快速上线设备,意味着缩短业务的上线时间,意味着利润和竞争中领先对手,特别是cloud,SP,互联网公司等,产品的上线时间可能直接决定产品命运,例如网络游戏,移动应用,都对业务的上线时间有较为严格的要求,对于业务和服务为重心的企业,网络不应该成为上线的障碍。
下图是Brocade VCS技术的配置方式,简单易行,Fabric矩阵自动组网,相比其他厂商的配置方式,在自动化方面有着显著提升。
Brocade的Fabric技术主要有2中部署方式,一种是L2 Clos network,另一种是L3 Clos network,这一张图是L2 fabric,这种架构多用于单数据中心架构,或者一个大型数据中心的一个POD,所有的Switch之间,都是全二层连接,没有生成树,整个网络属于一个集群,单点管理,带宽利用率可以达到100%,如下图所示:
另一种部署架构是L3连接,这种架构下,全部设备采用L3 mesh,采用OSPF或者BGP进行连接,这种架构下可以采用Netconf和REST方式对整体网络进行管理,所有3层结构下的路由收敛和冗余特性同样适合这种架构。通常L3架构适合于大型数据中心,这种架构可采用脚本化工具进行管理;如下图所示:
对于一个大型数据中心中的多个POD,每个POD都承载着相应的虚拟机集群,这些集群之间通过L3的连接进行通讯,网络边界称之为Border leaf,承载出口流量的管理和监管,包括防火墙,LB,NAT,IPS等功能可以在Border leaf中以Service Chaining的方式实现,并且这种实现方式,完全可以用软件实现,部署在虚拟化环境之中。
在采用了VMware NSX environment的情况下,由于VXLAN的存在,跨三层的2层通信变为可能,已经无需在虚拟机池之间打通2层环境,但在一些特定环境下,仍然需要2层连接,例如virtual SAN和vSphere Fault Tolerance,都需要Hypervisor处在同一个L2 domain中,在vSphere6 版本之前,vMotion也需要vMotion VLAN的L2 extension,Brocade VDX设备天然适合承载Layer 2 domain的流量,并能够在硬件上终结VXLAN流量,如下图所示。
下图是NSX的components,可以看到类似于传统网络的几个平面,NSX的管理也分为管理,控制,数据平面,管理平面提供UI管理和北向API,控制平面负责网络的控制和逻辑网络的管理,数据平面负责分布式的转发和功能实现,唯一无法控制的就是物理平面。
因此当Brocade和Vmware深入合作以后,统一管控的问题得到了解决,基于以下几个原因,我们共同推出了同一控制的网络架构:
下图说明了OVS和VDX设备的连接,在vSwitch和物理交换机之间构建VXLAN tunnel:
在NSX视图中,网络的视图overview分为两个components,也就是下图中的两个view:
NSX Logical Network View Logical Network view用来对管理员和虚拟机呈现和硬件物理架构无关的网络资源,在多租户环境下,每个tenant都有自己专属的logical network view,同时无法看到其他租户的view。
The logical network view 包含一系列的逻辑端口,switch,用于连接虚拟机和外部网络的router。VM管理员通过logical network管理网络的创建,管理和监控,NSX则对真实的网络连接和虚拟机迁移所要求的网络变化进行处理 NSX Transport Network View 呈现真实的网络设备状态,包括hypervisor servers,网络设备,gateway,我们称之为transport nodes,每个transport node节点运行一个OVS的instance,当VM发生迁移时,NSX 通知transport nodes,以确保logical network的稳定运行,在管理中,data center管理员主要关注transport network view, 负责连接实际架构中的hypevisor,并将hypervisor和OVS连接到物理网络
The NSX Dashboard中,左侧是logical components,右侧是transport components:
VCS和NSX的通信和联合使用分为control flow和dataflow两部分: 1)control flow VCS和NSX的通信主要通过OVS protocol完成,通信的配置和过程如下
简单来说就和打电话差不多,双方打个招呼,说明一下自身情况,然后VCS就开始听老大哥NSX远程遥控了,具体的流程如下图所示:
学术一点可以归结为如下过程:
2)dataflow 接下来我们看一下data flow是如何进行的,部署方式1:单VCS部署
在下图之中,VLAN 10,也就是紫色的连接部分,用于Transport vlan,承载Host A,NSX service node和VCS gateway fabric之间的tunnel通信,NSX组件,包括NSX manager,Controller,Service node,和VCS gateway,以及hypervisor vSwitch之间的通信,在管理网之中进行,也就是红色的连接部分:
Service node需要VCS gateway和hypervisor host-A之间的data plane连接,才能够建立tunnel,但不是必须要采用同一个VLAN
当 VM-A 发送流量时,将在Host-A处进行VXLAN header的封装和VNI映射,并通过VLAN 10发送到VCS gateway上面去,Tunnels 将在Service node, Brocade VCS Gateway fabric和所有 hypervisor vSwitche之间建立.
在本图之中, 33.32.31.x 网段用于VTEP tunnel的建立,Host-A的VXLAN tunnel VTEP IP在vSwitch上为 33.32.31.1,VCS gateway上的VTEP则为33.32.31.13
部署方式2:旁路部署 另一种拓扑则为单臂VXLAN网关模式,和前一张图不同的是,这种部署方式适用于在现有的网络之上部署VXLAN,并不改变原有网络结构。
看起来很像单臂路由对不对?这张图中有2个VCS网格(或者说集群),下方的Access-Agg layer只负责2层流量的转发,同时承载VLAN10,VLAN30的流量,所有的VXLAN处理都从上方的VXLAN GW VCS fabric进行,VXLAN VCS的 VTEP为这个VCS矩阵的集群3层地址,称之为VIP,也就是VRRP virtual IP地址。
转发的流程和之前类似,VXLAN的流量被旁路到VXLAN VCS GW,剥离掉VXLAN头,并在此回到下方的2层环境进行转发,最终发送到VLAN30中的Host-B。
用一张overview的图片来总结,VCS Fabric用于连接VXLAN虚拟网络和物理网络,作为边桥使用,显而易见的好处就是交换机的高性能将带给应用更低延迟和更高的处理转发能力,同时在传统物理设备,例如Rack,Storage等需要通过普通网络连接到VXLAN 网络的环境中,采用HW Switch作为边界也是简单易行的方案,毕竟并非所有物理设备的网卡都具有VXLAN解封装的能力。
另外,由于VCS技术的Logical Chassis是将整个网络集群统一管理,因此在NSX之中,整个集群是呈现成为一个交换机节点,网络硬件的管理可以通过NSX统一实现。
1)自动化部署 在L2和L3架构中,Brocade是当前自动化部署程度最好的厂商,所有的交换机加入到集群,只需要配置一个设备名称和集群id,即可自动加入现有的VCS集群,同时在VCS之中,虚拟机的迁移和加载都可以通过我们和Vcenter的整合进行感知,并针对虚拟机的性质部署相应的service-porfile,实现诸如ACL,VLAN,qos等策略的自动绑定;
想象一下,增加一台网络设备变得犹如在电脑上插一块优盘一样简单,数据中心部署和运维的未来必将愈加简单,弹性,自动化。
2)自动化工具 对于客户自定义的自动化部署需求,可以通过puppet或者Python 脚本等对Brocade设备进行管理和策略下发,同时可以通过RestAPI,SDN controller,以及OpenStack下的Neutron Plugin对VCS 设备进行管理和配置。
一个案例就是通过DCHP服务器获取地址之后,根据自动工具的配置,自动下发软件image,配置和策略,如下图所示。当然,上述功能的实现取决于自动化引擎的配置和脚本以及策略的编写。
3)可视化管理 除了接受NSX控制器的统一控制,Brocade能够接受2个可视化工具进行管理,供管理员直接在Vmware下使用,分别是vRealize Insight和vRealize log
这两个工具用于在VMware的视图之下提供物理交换机管理,分析,以及日志信息记录,方便在同一个接口下进行全局控制,具体信息可以查阅Vmware的网站。
最后,感谢各位花时间参与我们的分享,期待着和众多合作伙伴一起,在SDN领域共同推动行业的进步,也帮助客户真正意义上,实现SDN的落地。