暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

也谈资源池SDN

顾炯的云世界 2016-05-18
410



        确定需要软件定义的网络范围

SDN是软件定义网络,由于没有一个标准组织的定义,并没有标准的定义,各种解释都有。今天我所谈论的是一个狭义的网络,仅仅是云计算资源池内的网络。在确定软件要定义的网络,就可以根据源池内网络的需求和特点来理解什么是SDN。

需要解决的问题


    资源池内的网络是一个扁平的大二层网络,为了克服二层网络带来的问题,我们一般采用虚拟化堆叠技术1来构建一个服务于所有计算能力的“共享”网络。和计算能力通过CPU“时间片”调度2和内存共享压缩3不同,资源池内的网络和传统网络没有什么大的区别。所有的数据像汽车一样,都同时跑同一条公路上。当公路维修、发生车祸等的时候,也可以堵车、也会发生安全问题4

     1、详细可见站内文章“实现云计算资源池大二层网络”

  2、详细可见站内文章“基础知识:虚拟机的构成和cpu虚拟化”

  3、详细可见站内文章“基础知识:内存虚拟化和超配”

       4、 详细可见站内文章“基础知识:内存虚拟化和超配”

一、资源限制问题

    由于资源池扁平网络的架构,接入交换机可以认为是核心交换机的扩展端口,实际上所有的配置都是集中在核心交换机上的。核心交换机上设备资源有限,比如MAC地址表、ACL配置资源都会限制网络的发展。在核心交换机资源允许的情况下,我们可以挂载多个防火墙和负载均衡来解决这些资源不足的问题,但核心交换机的这个问题很难解决。所以核心交换机网络配置资源的问题是解决网络资源限制的核心问题。当然,在同一个网络下4K大的VLAN数量也限制了网络的发展,同时随着VLAN的数量增多,维护的工作也就越来越繁琐。这些资源的限制,也制约了网络的进一步扩展。私网内的IP地址作为网络重要的资源,也需要在统一规划和分配下使用,任何私用IP地址的行为都是很危险的。

二、配置问题

    资源池内的网络主要需要交换、防火墙、负载均衡、DHCPNATVPN等功能。这些功能是往往是由盒式设备提供的,共同特点是管理、配置、数据转发、处理都是合一的。这些设备确实效率很高,性能也很好。但是很难适应资源池内多租户的特点。很多资源池维护人员交流的时候大家都认为配置计算和存储资源很快,但是配置网络资源需要的时间很长,一般需要1-2周时间。而在核心交换机上的配置是一件风险很大的事情,往往只能1-2个核心专业网络人员进行配置,出现配置错误,将影响整个网络。所以,实现网络资源能像计算资源一样,简单和直观配置是资源池发展到一定阶段后的急迫需求。    

   通过软件定义一个能简单灵活配置有弹性的网络

     综上所述,在资源池内SDN定义就是通过软件定义一个能简单、灵活配置有弹性的网络。而这个网络一定是包含了交换、防火墙、负载均衡、VPNDHCPNAT在内的网络功能,是某些厂商宣称的SDN+NVF(网络功能虚拟化)的总和。从需求角度看,资源池内SDN的本质是将这些网络设备提供的能力虚拟化成为各种虚拟设备。而这些逻辑设备在拓扑上是可见的,可以通过设备内的简单参数配置实现个性需求,计算、网络和存储的虚拟设备间可以像搭积木一样实现应用网络的拓扑。

     资源池的网络需要串联计算和存储资源。除了传统的“控制和转发分离”外,还需要“融合”所有资源池的资源。还需要“继承”资源池内原有业务的传统网络架构,实现按需供给。

       我们从3个主流的支持SDN的技术上来分析我们是怎么来满足资源池的需求。

1、特定设备的专有接口

     不管是思科和华三都有升级特定的网络设备提供一些专用的API提供网络编程能力提供SDN功能。但是这个技术我认为是为传统网络的SDN服务的,离开资源池网络需要——可视化的虚拟设备的距离很远,不太合适资源池,也就不多讨论了。

2、基于openflow协议

      openflow协议是SDN的开山鼻祖,有了控制和转发分离的理念,才将网络设备剥离成为大脑和手脚二张皮。让网络设备的“小脑袋”变成了更聪明的“大脑袋”,通过集中的控制器用下发流表的方式指挥交换机转发流量。Openflow协议就是大脑和手脚交流的语言,定义了南向接口。Openflow协议看起来是一个标准的,其实各个厂家理解这个协议还是有点区别,而且Openflow协议本身还有不同版本,所以跨厂家的互通性一定是难题。如果不想事倍功半,资源池的网络内就不要搞出太多的“大脑”来。大脑袋比小脑袋还是多了不少功能,比如大脑袋可以处理2-4层的协议,加上好的算法,就可以实现4层的负载均衡功能。但是被定义为NFV的其他功能就很难实现了,还需要功能的补充。资源池的网络是可以使用Openflow来解决资源池内网络存在的部分问题。但是缺点是很明显的:

  1. Openflow的网络要独立于资源池原有的网络。也就是说要实现SDN的功能,就必须重新建设一张支持Openflow的网络,然后和以前的网络互通,造成投资浪费。在资源池内有2张架构完全不一样的网络,业务迁移到SDN比较复杂。

  2. Openflow的网络除了可以实现简单的部分负载均衡的功能外,其他的NFV功能很难实现。所以需要额外叠加NFV的功能。比如软件的防火墙、软的负载均衡等。

  3. 用户可以通过北向接口用编程的方法来控制网络。但是这个北向接口没有标准,每个厂家各自为战。为了便于使用,都定义了一点“模板”,但是灵活性就大打折扣。

 三、基于叠加网络

      在原有资源池网络基础上实现软件定义网络,我还是觉得采用叠加网络是最为合适。首先不影响原有运行在传统网络内的业务。在原来网络都是“大厅”的基础上,隔出了部分“包厢”,原来在“大厅”运行的业务还可以在“大厅”运行,愿意进“包厢”的就在“包厢”内独立运行,井水不犯河水。“包厢”内就是用户的天下,可以随心所欲的定制和配置,就算了把包厢给“砸了”,也不影响其他网络。“包厢”就是网络隧道技术提供的,有VXLANNVGRESTT,最常用的是VXLAN。我们使用VMWARENSX目前就采用VXLAN,定义出虚拟的可以在拓扑中体现的常用网络设备如交换机、分布式路由器、DHCP等,还有一个虚拟网络和物理网络的转接器EDGE,虚拟出防火墙、负载均衡、NATNFV的功能设备。

     资源池需要一个能简单灵活配置有弹性的网络。目的是可以通过降低技术门槛,屏蔽复杂的网络知识,让配置工作从资源池高级维护人员,向应用使用方转移,让“CCIE”无用武之地。 叠加网络方案可以不使用openflow协议就能实现软件定义的功能。但还是采用“控制和转发分离”基本思路,并增加了分布式的新元素。用户定义虚拟设备和配置的信息,转化为控制信息保存在控制节点上。控制节点并不直接参与网络的控制,即使控制节点故障也不影响网络的运营。因为在vmware的虚拟网络中虚拟出来的网络设备都采用分布式的架构,这些虚拟设备都运行在物理机虚拟化层或物理机某个虚拟机上,实际控制信息都分布在每一台相关物理服务器上的虚拟网络设备上。分布式是虚拟网络重要的概念。不但可以提高运行的可靠性,也能通过“聚小成大”的方式来处理网络大配置和大流量。(受到物理服务器本身CPU、网卡、内存等因素影响,虚拟网络设备处理能力原小于物理网络设备。)

    并不是定义了虚拟网络设备就能降低配置的门槛。根据我们积累的经验结合工作流,将计算、网络和存储资源结合在一起,开发出“傻瓜式”的配置平台,才能实现。比如用户创建一个新的应用平台,在创建第一台虚拟机的时候,就会自动给用户创建能展现的、专用的虚拟交换机、分布式路由器和EDGE,后续创建的虚拟机默认都是和这个网络连通的。用户可以根据需要再创建东西防火墙、负载均衡、NAT等设备。这些设备的配置的规则也经过了简化,用户可以很轻松掌握。一般系统20-30分钟就可以完成这个资源的配置。




文章转载自顾炯的云世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论