您的位置: 网界网 > 周报全文 > 正文

[周报全文]再思考SDN(二)

2013年08月06日 14:28:43 | 作者:中兴通讯中心研究院系统架构部总工 汪军 | 来源:网界网 | 查看本文手机版

摘要:集中控制还是分散控制(De-Centralized),是分布式系统设计中一个关键的取舍,取决于你追求的是可伸缩性还是全局解的优化。全局最优解需要集中的控制点收集决策所需的完全信息。

标签
SDN
虚拟机
集中控制
分散控制

集中控制还是分散控制(De-Centralized),是分布式系统设计中一个关键的取舍,取决于你追求的是可伸缩性还是全局解的优化。全局最优解需要集中的控制点收集决策所需的完全信息。对于网络而言,无法对拓扑相关信息垂直划分为完全不相关的子集,因此你不可能在两个维度上都达到最优。在Internet的规模上,必须是分散控制的。另外互联网从来就不是一个整体,而是由多个不同地域的商业主体运营的。而互联网业务是全球化的,任何端到端的网络解决方案落地都极其困难。首先要解决投资和收益主体匹配的问题,而端到端的解决方案不可能一蹴而就,后投资的能够更快地获得投资回报,先花钱的有点为他人做嫁衣的感觉,因此也抑制了所谓的端到端解决方案的落地。类似的例子不胜枚举。比如NGN时代端到端的QoS方案;又比如LISP协议来解决路由扩展性问题。投资主体是接入的ISP,而收益者是Tier 1/2的ISP,没有人愿意花自己的钱去解决别人的问题。

SDN[注]本身就是一个局部的网络技术革命,放大到全网的演进就得面临经济、技术上的双重挑战。个人理解对于一个分散控制的互联网,引入SDN不过是将分布式系统的节点规模做得更大。如果你想扩大它的内涵,引入更广泛的SDN控制,那么你就要想想为什么互联网要分自治域,为什么是IGP+BGP,BGP还要分iBGP、eBGP,还要引入路由反射器,为什么不是一个OSPF的单一区域。也许SDN+BGP替代IGP是有技术可行性的,但是全网的演进总是比预期的更为缓慢。

回到SDN擅长的领域:数据中心。数据中心由来已久,Internet商用化后就已存在,只不过在计算模式上经由MainFrame、C/S架构、P2P再回到中心化的云计算[注]时代,数据中心规模呈爆炸式增长。在虚拟化、分布式计算技术解决了计算本身的部署、规模问题后,网络问题变得特别突出。前几年的数据中心网络[注]问题研究,很多人拿虚拟机迁移说事,但是虚拟机迁移实际上是个小众应用,毕竟虚拟机迁移需要大量的状态复制,跨存储集群迁移时还要进行持久存储的复制。这是个投入产出比较低的活儿,尤其是跨WAN进行迁移,简直是拿资本家的钱不当钱。

我个人认为数据中心SDN带来的价值主要有三点:

1、网络的自动化部署和运维、故障诊断。依赖于SDN的集中控制、集中拓扑探测,网络设备完全可以做到即插即用,除了部署之外,网络故障设备的更换变为简单的硬件更换。对于故障诊断,则依赖于控制器具有完全的转发表项,应用可以根据故障申告的业务报文做端到端的报文路径静态检查,也可以通过工具生成自动化的测试用例,在控制面进行灌包测试(与专门的测试仪表相比,不受位置限制),并且可以评估测试的覆盖率。就如同软件的代码、分支覆盖率一样。最后可以在控制面应用上生成故障申告业务相同的报文头部,通过SDN控制器的报文上送下发机制进行单步的检测,检测到软故障具体的流水线节拍。

2、虚拟机的按需部署,这在公有云[注]混合云[注]的环境下尤其有用。今天大家已经比较习惯于在电信运营商营业窗口、自服务页面上办理业务后,立刻会收到短信,通知业务已经开通。但是在早年,这些业务的开通涉及到营业、计费、后台、网管中心、LMT等系统,需要工单的流转才能开通,并且是以天计算的。那么在今天绝大多数数据中心中只要涉及到IP地址的分配问题仍然需要工单的流转,这对于以虚拟机作为单位的主机托管数据中心显然是低效的。尤其是虚拟私有云[注]、混合云从业需求来看,需要允许客户自己规划、配置子网和虚机的IP地址,并支持按需启动/停用虚拟机和按使用计费。从数据中心运营效率来看,需要能够自动发现负载更轻的物理机器加载虚机,这就要求网络的地址是可以浮动的,并且可以根据客户的指令实时生效。前几年大家推大二层的解决方案,大二层需要辅以802.1Qbg才是一个完整的解决方案。而Overlay+IP组网无须升级硬件,无疑性价比更高。如果要升级,则不如升级到SDN更为彻底,你可以得到第一条所述的所有好处。另外你也不知道明天还会有哪些需求,SDN提供了未来不升级硬件的承诺(当然这些承诺也是靠不住的,你不仅可能因为功能升级,但更可能要因为性能而升级)。保底地可以实现基于SDN的Overlay。

3、动态业务插入。比如虚拟防火墙、虚拟VPN网关等设备以VM形式动态插入到转发路径上,并且可以根据业务流量的变化动态增加/停用Virtual Appliance,这其实是在第二点的基础上实现的,只不过增加了应用去感知、控制业务逻辑实体。

vSwitch的性能很多人对怀疑,但是自从Intel推出DPDK后,这个问题质疑的声音要少一些了。但是报文经过vSwitch到VM引起的上下文切换开销,还是比较难以解决,尤其是小报文为主的业务。将来应该以智能网卡+SR-IOV为解决思路,vSwitch退化为本地控制面。

至于流量可视化,没有SDN你能够做到,有了SDN也不见得会实现的更加容易。租户数量问题和SDN也没有太大关系,关键是转发面封装格式中表达租户数量的标签是多少位,以及转发设备据此生成的转?规则。

需要谨慎考虑、评估的好处包括:

1、虚拟机迁移。除了前面讲的虚机迁移本身的成本外,虚拟机迁移本身的SDN实现也是一个比较困难的问题。当集群规模较小,VM通信对端较少的时候(+微信关注网络世界),一切都不是问题。但当虚机集群规模较大,比如Hadoop集群节点、one hop DHT节点、分布式文件系统节点,数据库节点等(当然不一定建议这些节点用虚拟机,性能也是问题),迁移时就需要迁移VM所在节点的转发表,同时还需要更新与之有通信关系的虚拟机所在边缘交换机的转发表。这个问题的痛苦之处在于需要更新的转发表节点数量是不可预知的。我们在移动网络中往往不去更新对端的转发表,而是在迁移终端所在的迁出网络设备和迁入网络设备之间建立一条中转隧道用于流量的转发。但问题是移动网络中的每一个会话周期都是短暂的,因此这种中转通道的生命周期也是短暂的,不会给设备带来太大的负担。而服务器集群中的通信会话周期是不可预知的,并且中转带来的迂回流量开销可能也是惊人的。因此这是一个很难控制的过程,尤其是在集群规模较大、业务繁忙的时刻。

2、细颗粒度的流量控制。从理论上我们可以做到,并且OpenFlow一开始就被误解为基于流的转发控制。颗粒度越细,需要消耗更多的转发面和控制面资源。更为糟糕的是,在转发面和控制面之间需要同步的信息就越多。在移动核心网的PCC架构下,理论上是按照业务流进行QoS的控制,需要和转发面能力相匹配的本地控制面能力和海量的TCAM来存储通配流表,其付出的代价就是高1-2个数量级的成本。所幸的是,移动网络的无线接入是瓶颈,流量有限,如果在数据中心中应用,最好还是进行粗颗粒度的流统计,或者只对少数已经预先识别的流进行控制。

从远期来看,数据中心本身的效率和管理复杂度问题可能逐步成为解决方案的重点,可能由松散的系统逐步走向计算、存储、网络统一控制的紧耦合体,更加注重对不同计算实体调度的优化处理,这是所谓的DataCenter As A Computer理念。这其中,裸CPU+Main Memory、存储都可以通过融合网络直接连接起来,构成一台类NUMA(此处是针对外存而言)的超级计算机,而SDN控制下的网络充当其CPU和外设的交换矩阵。出于成本的考虑,这一交换矩阵可能很难做到完全无阻塞,因此它需要一定的实时监测和路径重指派能力。这时候,SDN已经完全融入到数据中心的管理控制系统之中,和计算、存储的调度完全融为一体。(再思考SDN为系列文章,本文是该系列第二篇。更多内容详见: http://www.cnw.com.cn/P/4986

参考资料

1.SDN:(Software Defined Network,软件定义网络)是一种新型的开放网络创新架构。最初是由美国斯坦福大学研究组提出,OpenFlow通过将网络设备控制面与数据面分离开来,从而实现...详情>>

2.数据中心网络:(Data Center Network)是应用于数据中心内的网络,因为数据中心内的流量呈现出典型的交换数据集中、东西流量增多等特征,对数据中心网络提出了进一步的要求:大规模、高扩...详情>>

3.云计算:(Cloud Computing)描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。云计算是继1980年代大型计算机到...详情>>

4.私有云:(Private cloud)是将云基础设施与软硬件资源建立在防火墙内,以供机构或企业内各部门共享数据中心内的资源。私有云完全为特定组织而运作的云端基础设施,管理者可能是组织...详情>>

5.公有云:(Public Cloud)是第三方提供一般公众或大型产业集体使用的云端基础设施,拥有它的组织出售云端服务,系统服务提供者借由租借方式提供客户有能力部署及使用云端服务。它能...详情>>

6.混合云:(Hybrid cloud)由两个或更多云端系统组成云端基础设施,这些云端系统包含了私有云、社群云、公用云等。这些系统保有独立性,但是借由标准化或封闭式专属技术相互结合,确...详情>>

[责任编辑:孙可 sun_ke@cnw.com.cn]