理性看待SDN(软件定义网络)

摘要:近年SDN甚嚣尘上,号称可以颠覆网络格局,引得各大公司和创业公司争推解决方案,各大流派你方唱罢我登场。而以简化网络为目标的SDN,却日趋复杂化,原因何在?@程序员杂志 作者@jiyifeng-nj 带你一起理性看待SDN。

在SDN的浪潮面前,你能Hold住吗?近年SDN甚嚣尘上,号称可以颠覆网络格局,各大公司和创业公司纷纷推出解决方案:有基于OpenFlow的SDN,有基于业务驱动的SDN,有基于云和IT的SDN,还有基于光传输的SDN,有企业级SDN,有运营商级SDN,又来了个SD存储,各大流派你方唱罢我登场,好不热闹。以简化网络为目标的SDN,近来形势却趋向复杂化,很反常。

“当你谈及技术的未来时,真正有意义的是人们想要什么?一旦能够描绘出这一点,剩下的事情就是如何大规模地生产它,并使它足够便宜,以便人们能够在不牺牲另外也想要的东西的同时获得它。除此以外,没有任何事情是真正有意义的。”Linus Torvalds如是说。

一切不能给用户带来价值的技术都是毫无意义的。只有能给用户带来价值的技术,才有生命力。目前,SDN的现状有点浮躁,好多设备厂商完全违背SDN的意志和精髓,意图建立封闭系统。华为任正非早先说过,封闭系统必将自我衰竭。国家如此,公司如此,技术也是如此,以太网技术就是以低廉和兼容并蓄,才得以优胜劣汰了ATM。

问题一:厂商锁定

SDN用户面临的厂商锁定是一个很大的问题,这也是ONF成立的原因。厂商锁定必定给设备商带来高额利润,形成封闭和反应迟钝的生态系统。ONF成立的目的就是避免厂商锁定,防止厂商控制SDN的前途和命运。ONF的董事会中只有用户和运营商。他们负责做出所有的重要决定,真正控制着SDN前进的方向。一旦在控制平面和转发平面之间有了标准的通信接口,任何一家厂商都无法控制用户。有部分厂商在控制平面和转发平面之间建立它们自己的私有协议。这一做法会造成厂商锁定既定事实,并让厂商锁定长期存在下去。通过接口标准化,允许每一家公司存在差异的实现方式,让其提升自身业务竞争力,SDN成为了一种能够让用户从厂商锁定中解放出来的解决方案。

问题二:网络投资占比低于10%

再了解一下网络在用户总体投资建设的比重,中国移动发布的2013年投资规划,提到TD-LTE投资将达417亿元人民币,其中在PTN设备上投资50亿元。Google的网络设备占数据中心总投资7%。据可靠消息,阿里网络投资只相当于服务器的10%,风火水电布线可比网络要贵很多,省点电费和宽带费就可将网络投资收回。总体上看,阿里网络投资占比与Google相当,百度的情况也类似,OTT们在网络方面的投资全都低于10%。两者对比,从另一个角度看,中移动的PTN设备采购再打8折才有希望赶上OTT们的业务创新效率。没办法,这就是没有研发能力被厂商锁定的后果。

传统企业业务三大件——服务器:存储:网络投资比重约为5:4:1。也就是说,网络也只占总盘子的10%。对老板来说,买服务器上业务赚钱更实在、更直接。如果要上SDN,最好先跟老板讲清楚,上了SDN可以怎样更多快好省地创新业务赚钱,否则老板不会签字。另一个隐含的意思是,只许花10%的钱把网络搞好,如果SDN设备的价格超过传统路由交换n倍,老板绝不会签字购买。关键在于能否说服你的老板把SDN网络设备的投资占比提高到20%?所以全地球都在热炒SDN,就指望把传统网络设备技术升级到SDN,使其投资占比提升到20%。但这与SDN初衷“足够便宜”又背离了。

问题三:服务器市场前车之鉴

目前服务器市场完全被Intel控制着,而Intel近来日子有点紧,就把CPU卖给了白牌机厂商。这样,惠普和戴尔的结局一下子就有目共睹了。服务器市场就是被如Google之类的OTT大鳄业务驱动演进如此的。而网络市场被Broadcom控制着,目前是混乱的、垄断的,与PC市场标准化完全不一样,各家做各的。一旦被SDN理顺,也会出现服务器市场的格局。假设Broadcom的生意也像intel一样走下坡路,必然会把芯片销售向白牌机倾斜。由此可见,网络设备商的结局也是可预期的。所以当前第一要紧的事是把SDN的水搅浑,搞复杂。中国电信韦乐平高瞻远瞩提出“去电信化”的口号,就是受不了现在的设备功能复杂不实用和昂贵。虽然与Google的思路是一样的,但区别是一个先做后说,另一个是只说没做。

SDN作为一种新型网络创新架构,通过将网络设备控制面与数据面分离,从而实现了网络流量的灵活控制,为系统及应用的创新提供了良好的平台。这也是迈向云计算不可或缺的演进步骤。SDN所处的政治环境如上所述,而就SDN技术本身而言,还有哪些问题呢?

SDN功能齐备,性能堪忧

将SDN设备扒开一看,无非有基于ASIC、基于NP和基于CPU三种。ASIC和NP基于Pipeline模式的传统做法,对网络报文的转发和处理可以达到很高的性能。但OpenFlow的n元组查找和处理仍然是个大问题,尽管有比TCAM便宜的DRAM+FPGA低成本实现方案(详情可向FPGA厂商了解)。SDN祖师爷斯坦福大学的Nick McKeown曾在Cisco做过路由器,对路由器了如指掌,即将发表一篇关于新型通信处理器的文章。原型设计中解析引擎首先分析正在不断扩展的报文头,然后将报文送至相匹配的执行单元流水线并执行操作,只需增加15%的硅面积和功耗,便可以处理当前或者将来的任意协议。据可靠信息,包括初创公司xPliant及TI、Cavium、Mellanox等都在研发此类芯片。仔细观察,便能发现这基本都是CPU厂商。

Nick预期,那些大型路由器与交换机厂商,在十年之内就会以该类芯片取代ASIC,并转型为软件公司。也就是说,那个时候才是真正的SDN时代,现在还不是。

OpenFlow 1.3版还有一个测试套件,也有望在今年下半年公布。ONF成立了首个独立测试实验室。在OpenFlow中,使用可变长度的n元组报文头(例如IP和TCP协议中的那些)转发会造成性能损失。而使用固定长度header来转发,传统路由交换机完全胜任。这意味着目前OpenFlow不太可能完全取代传统网络设备,而是作为需要先进的VM或会话管理的应用程序的辅助功能,需要以牺牲数据包转发性能为代价。

如果SDN的先驱们,能考虑一下利用现有的芯片能力和转发方式,集中精力在控制层面上,或许能有更好的创新,OpenFlow只是SDN南向接口的一个标准而已,这类技术被网络产品的革命者(如新兴芯片厂商、白牌机厂商和控制器厂商)所吹捧。但在目前的形势下,网络设备厂商尽管口头上号称支持OpenFlow,但大家也处于有限观望状态,等待更好的OpenFlow芯片出现。但换个逻辑,假如使用目前的L2/L3甚至于L4的转发,而不采用流表的方式,也能实现OpenFlow所能描述的功能的话,OpenFlow恐怕也仅仅止步于先驱者的角色上。 

SDN应用层能力弱,运营商阵营提出NFV

NFVISG即将公布L4-7功能虚拟化的指南。例如负载均衡案例:OpenFlow交换机发送了大量会导致网络拥塞的报文,随后应用关注这一情况并会查看服务器的拥塞状况。当需要数据流表请求时,应用会简单地评估一下网络和服务器的拥塞情况,然后增加多条虚拟路径以负载均衡。

OpenFlow协议针对的是Layer2 、Layer3和2.5等的报头字段。这是因为商业ASIC套片特别关注的是这两个部分。SDN对网络架构影响的讨论主要集中在2-3层。具体来说,当前SDN主要用于网络层(2-3层),因此尚无法解决应用层(4-7层)的问题,包括可用性、优化和应用安全等在内的挑战。NFV的思想是基于海量的、归一化的服务器和交换机,通过软件实现多种多样的网络功能,如虚拟的运营级NAT、虚拟的广域网优化、虚拟的企业接入路由器,以此达到降低成本、加快业务部署、资源弹性伸缩、构建创新生态链的目的。

NFV使用了大量数据中心和安全领域内的既有技术,目标可以基于非SDN(OpenFlow)的机制而实现,也就是说NFV自立门户完全可行。如果套用SDN所提出的将控制平面和数据平面分离的思路,就能进一步加速现有的部署且简化互操作性,减轻运营和维护的负担。NFV和SDN的携手合作可以解决整个网络中复杂的应用交付管理问题,而这种结合应用有望在电信领域率先实现,可使用标准的服务器和白牌交换机来低成本实现。

话说回来,假如使用目前已有的网络虚拟化技术,而不贴上NFV的标牌,也能实现NFV所能实现的功能的话,NFV恐怕也仅仅止步于先驱者的角色上。

SDN控制器性能问题

绝大多数的SDN控制器却工作在2-3层,这与4-7层的服务需求是不匹配的,应用层的SDN要求更强的智能、动态控制和可编程性。这有助于企业在数据中心中灵活部署和创新业务。尽管SDN正推动着开放标准接口给业务为主导的控制器,但目前它还不具备在大规模网络中迅速切换流量的能力。在某些案例中,即使是精心设计的双主或者主备SDN控制器,也无法实现实时容错切换、拥塞处理。因此,这是SDN需要改善的领域。今天,很多控制器还只在产品层面做些小规模的测试。相反,传统的网络设备,还在全球大规模部署,还依然是世界上大部分关键云业务所依赖的网络基础。

软硬件技术进步推动SDN发展

SDN可以利用网络流量的可视化及灵活的编排,将流量导入特定的业务服务器、防火墙或者IDS/IPS设备,从而确保应用程序以及流量的正确流向及安全。除此之外,借助网络虚拟化(如VXLAN)及控制器插件,网络管理人员可以将应用及其属性随着虚拟机迁移到其他物理设备上去,应用可以直接指挥流量。

SDN离不开一个能提供高级语言网络编程、开放的API接口、标准协议的操作系统,内核也成为更高处理能力的瓶颈,将包处理、包转发、内存管理和处理器调度功能从内核中拿出来做成应用,让内核回归Unix时代设计的初衷:不处理数据,只做纯粹的管理平台。目前,这一技术也被程序员熟练掌握。而在硬件水平飞速发展和性能不断提升的同时,现有操作系统的内核架构已无法高效利用相应资源,未来的多核、众核处理器呼唤着下一代操作系统。

CPU以Intel为主的流派,通过纯软件方式实现网络业务的转发和传送。在特定的应用场景下,这是可行的,DPDK用户态转发的确把报文转发的性能提升了一大截。但如果放到高频交易的应用场景下,我估计华尔街的老板会把方案提供商的脑袋敲破。每种技术方案都有合适的应用场景与之对应,没有绝对的,只有合适的。华尔街就有一个用低延时网络设备减少高频交易1ms延时,价值1000万美金的故事。但如何将4-7层服务部署和分配到SDN架构模型中去,目前还面临一些挑战:因为SDN意味着网络与应用的融合,通过应用让网络变得简单智能,这也意味着未来的SDN应用场景必须高度专业化和定制化。

神奇的板蓝根???

目前还是SDN初级阶段。不管是SDN,还是NFV,都是一句空洞的广告语,作用跟伟大中医神奇的板蓝根一样,包治百病。就实现而言,NFV更容易实现,当前厂商无不精通此道。NFV通常用CPU实现。一旦NFV大行其道,Intel不就把网络的那可怜的10%市场份额也搞定了?这值得广大系统设计者思考,x86可不便宜,10%的投资限额内要满足原有的转发性能还得加上NFV,网络业者的压力不比惠普和戴尔小,甚至更大。通过对SDN和NFV的造势,如果能忽悠投资人将网络设备的投资比重提升到20%,那是一件幸事。

实现SDN的必由之路:开源和白牌机

在守住10%的投资占比红线的前提下,白牌机扣除了设备厂商的品牌溢价后,可以做为一个采购选项。白牌机的概念将继SDN之后掀起另外一场革命。白牌机厂商是要像做PC一样去做网络设备。一旦网络设备标准化了,厂商便可以提供硬件和boot loader,还可提供驱动和操作系统供其选配使用。最终用户可以像挑选PC一样挑选网络设备,然后自行安装操作系统和应用程序,招募程序员编程来控制设备转发行为,实现自营业务的快速部署和创新。

现状是,在运营商那里能编程的程序员相当少,而在OTT那儿,是一大把。SDN的运维以及北向接口的编程在运营商那边是个大问题。运营商一旦上了SDN,网络运维托管就会成为一个大生意,这又是程序员的用武之地。

网络用户和新兴小厂商对变革有着原始驱动力,是它们而不是大设备商来驱动网络创新。SDN将垂直整合的产业结构变成了水平分割,将恶性竞争彼此封闭变成了产业协作。

厂商也意识到开源的重要性,OpenDaylight就是一个由厂商组成的团队,以ONF制订的规范为基础研发产品。用开源方式创建实例,测试、迭代,验证方案,并从中总结经验教训,最终将产品应用到实际部署中去。

学习Google和Facebook的SDN案例

来围观一下Google的SDN大设备,使用商用套片和开源的路由堆栈,没有多余的特性。可见,SDN天然“去电信化”属性,完全为程序员而生。程序员可以自己写程序管控网络行为,这就是革命,也应了ONF执行董事Dan Pitt刚在Interop 2013上说的话,让用户自己来主导SDN。

前段时间,Facebook领导的开放计算项目宣布了网络交换机计划,这可能带来白盒SDN交换机的新时代。Facebook的Casemore也表示,SDN仍然处于非常早期的阶段。未来令人期待。

软件定义数据中心促进SDN发展

在PC体系中,需求确定后,软件系统也就确定了,硬件只能在标准接口的约束下发展。但数据中心给了我们一个机会,去重新考虑整套软硬件体系的构建,只要能满足最终的应用需求,兼容性和既有标准都已不再重要。这是一个相当开放的时代,一切标准和规范都落后于业务发展的需求。SDN的需求来之于生产环境,来自程序员的代码中。

在开源精神下,程序员自己编程管理自己的网络,为端到端的通信提供了一个开放的、应用驱动的、可编程的网络路径,进而加快业务创新速度。由此看来,势必会蚕食商业大鳄的领地,并颠覆之。一个软件定义的数据中心已经在酝酿之中。网络承载复杂的应用,将这些应用贯通到SD服务器(如ARM服务器)、SD存储、SDN、智能终端中去将需要相当多的重新编码。人活着,一定要做有意义的事情。SDN就是一件有意义的事情,值得程序员们去做。

本文作者系独立观察员,自由撰稿人。新浪微博:@jiyifeng-nj

更多SDN文章,请见《程序员》2013年6月刊。

 

原文链接:http://www.csdn.net/article/2013-06-08/2815714

你可能感兴趣的:(云计算与大数据)