第1章 SDN与网络虚拟化的起源与现状
SDN是一个内容丰富却又定义模糊的名词。说它内容丰富,是因为在当今云计算大行其道的情况下,SDN已成为实现云计算的一种重要方法,其技术已席卷了企业私有云和公有云服务提供商的数据中心方方面面。说它定义模糊,是因为SDN还不像其他计算机或网络技术被一些组织或企业进行了标准化定义,当人们谈到SDN时,可能还在讨论“SDN究竟是什么”这个问题。
网络虚拟化则是云计算和SDN发展到一定阶段的产物。服务器虚拟化技术的飞速发展间接催生了云计算的兴起。而在云计算环境中大规模部署虚拟机,其底层物理网络平台的局限性也越来越明显,哪怕使用SDN来配置和部署底层物理网络——这就需要在云计算环境中引入网络虚拟化技术。有人说网络虚拟化也是一种SDN技术,因为它不同于传统的物理网络,是在传统物理网络之上通过协议和软件创建了一种虚拟网络,因此属于所谓的“软件定义网络”。我们不能对这种说法的正确与否妄下定论,因为每个IT从业人员看待SDN的角度都是不同的。但是,随着网络虚拟化技术的发展,现代的网络虚拟化技术也逐渐与SDN的核心思想变得一脉相承——控制平面与转发平面的分离。除了控制和转发平面的分离外,网络虚拟化还做到了物理网络和逻辑网络的解耦。
本章从介绍SDN、网络虚拟化的前世今生开始,逐步揭开这两种技术的神秘面纱,从而在后续章节中介绍VMware NSX是如何实现网络虚拟化的。尽管本章不涉及具体的VMware NSX技术,但是建议读者不要跳过这一章,哪怕您再心急。这是因为在SDN和网络虚拟化技术的发展历程上,还是出现了很多有意思的事情,能增加您的阅读乐趣,而且本章也介绍了SDN和网络虚拟化技术的基本概念(尽管其定义并不被所有人认可),相信这对您深入理解VMware NSX网络虚拟化技术会有所帮助。
1.1 SDN的起源和发展历程
在现今,SDN的影响力已经席卷了各种大型和小型数据中心,无论数据中心提供的服务是公有云服务还是私有云服务,其影响力正在逐渐向企业网中渗透。SDN可以被认为是继个人电脑、互联网、云计算之后,又一个革命性的IT浪潮,或者也可以这样理解——利用SDN实现的云计算,是云计算的第二阶段。未来,在数据中心内的设计、部署、实施、运维,可能都离不开SDN技术,这将大大改变IT从业人员甚至全人类使用信息技术的方式。
或许您没有想到,现今大红大紫的SDN技术架构,其实早在本世纪的前几年——互联网刚刚普及、云计算还没提出的年代,就被人构想、设计和实现了。经过十多年的发展,这个技术虽然还没有完全被标准化定义,但其理念已经深入人心,它已从高校中的计算机科学家脑海中的构想,成为了实实在在的技术。各大IT厂商、云计算提供商也如雨后春笋般地推出了基于这个技术的产品,或利用该技术推出了自己的服务。
在本节中,我们首先来看“为什么需要SDN”,然后分析网络业务的发展趋势,最后引入SDN和网络虚拟化的诞生和发展历程。
1.1.1 为什么需要SDN
在人类的发展史上,推动人类进步的最重要的学科是什么?
这个答案一定五花八门。有的人说是物理学,随着物理学的发展,蒸汽机、电灯得以发明,进而又有了火车、飞机,因此物理学推动了人类的进步。有的人说是化学,由于化学的发展,人类知晓了更多的物质原理和化学变化,进而出现了更多微分子材料,这些材料成为了制造更多可以服务人类的工具的元素,例如计算机芯片等。有的人说是生物学和医学,生物学和医学的进步,让人类更加能够从本质上认识物种起源和进化论,也发明了更多可以使人类延寿的药物。有的人说是经济学,因为经济学的发展,使得财政部门和中央银行(在美国叫美联储)可以更加自如地使用扩张或紧缩的财政和货币政策,控制经济过热或过冷,进而使得国民生活得更舒适。有人说是计算机学或信息技术,因为它使得人类进入了信息时代,互联网、移动通信已成为人类生活中密不可分的一部分,现在很难想象脱离了电话或网络,人类的生活会是什么样子。
可是,有人会说数学是推动人类进步最重要的学科吗?
如果有人会明确地回答“是”,那么他一定看清了数学的本质。但是,大部分人不会这样认为,因为数学本身不产生价值,所以很多人就没有看到数学的推动力。数学只有运用到了物理学、化学、经济学、计算机学等学科中,才会产生价值。换言之,这些促进人类发展的学科都是以数学作为基础的,这些学科都需要用到大量的数学计算,使用那些让大学生们恨之入骨的定律(如牛顿-莱布尼茨公式、拉格朗日中值定理、傅立叶变换、拉普拉斯变换等)来为自己的学科服务。物理学、化学、经济学、计算机学之所以产生了巨大的价值,推动了人类进步,是因为数学在后端一直在为它们默默无闻地服务。
回到本书的主题。现在,任何一个行业的任何一家公司,无论规模大小,都需要使用IT应用来辅助办公。所有的应用归根到底,无非分成三个大类——ERP(Enterprise Resource Planning,企业资源计划)、CRM(Customer Relationship Management,客户关系管理)和供应链。这三种应用也是每个公司的IT经理甚至更高层的领导人所关心的。绝大部分企业都是以盈利为目的的,这些应用都为公司的运转、供应链流程、内部OA等而服务,进而使得公司可以盈利。但是IT经理和更高层的领导人也许不会去关心底层的网络、服务器、存储架构,他们的要求只有一个——应用快速流畅,可用性、安全性、冗余性高,新应用部署灵活且扩展性强。
在信息技术出现后,为了为应用打造更好的底层平台,网络厂商、服务器厂商、存储厂商、安全厂商、应用交付厂商,包括后来出现的虚拟化软件厂商,都在努力践行这一主旨:Cisco、Juniper、Arista Networks等网络厂商,推出的交换机的背板带宽和包转发率不断提升;HP、DELL等服务厂商,使用Intel、AMD等公司的更强的CPU产品,使用更大容量的内存,加上更高级的服务器特性,使得x86服务器性能直追小型机;存储厂商如EMC、NetApp,则不断更新自己的盘柜容量,并于近年大力发展“闪存”技术;而安全厂商如Palo Alto和Check Point,都在提“下一代安全”的概念,变被动防护为主动防护,以保护应用;F5等应用交付厂商则致力于应用的可用性和更强的冗余性;VMware、Microsoft等虚拟化软件提供商和近年非常流行的一些开源虚拟化技术,也在不断完善自己的资源池、迁移和容错等功能。而所有这一切都是为了适应日益增长的应用需求。
正如数学是为物理学、化学、经济学、计算机学等学科服务的一样,IT基础架构(包括网络、服务器虚拟化、存储等)都是为ERP、CRM和供应链等最终应用服务的。人类需要物理学、化学、经济学、计算机学来推动人类发展,让自己过得更舒适,正如企业也需要ERP、CRM和供应链等应用来让公司的业务运转得更为良好。数学是物理学、化学、经济学、计算机学的底层基础,正如IT基础架构是应用的底层基础。
在17世纪,自然科学飞速发展的时候,科学界认为传统的数学有点跟不上时代潮流了——伟大的物理学家牛顿(Isaac Newton,见图1.1)发现传统数学无法解释他正在研究的物理问题的时候,发明了微积分。这样,他就能使用新式的数学模型,解释他之前无法解决的物理问题了。
当企业(尤其是互联网、OTT行业的企业)对应用的需求与日俱增,传统IT基础架构无法满足它们的要求时,这就需要一个全新的IT架构。而我们应该如何实现一个全新的IT架构?IT行业对于这个问题的回答又是什么?
伽利略去世的那年,牛顿诞生了,而那一年刚好又是哥白尼的《天体运行论》发表100周年。此外,爱迪生发明电灯的那年,爱因斯坦诞生了。牛顿说过:“我之所以可以看得更远,是因为我站在巨人的肩膀上。”科学界对于学术的研究是一个循序渐进、周而复始、前仆后继的过程,而IT界的那些巨头级别的公司,为了使企业的应用运转得更好,让用户更流畅地使用应用,也是一个接一个地赴汤蹈火,其中不乏像SUN、Compaq、Nortel这样已经消失的著名IT公司。最终,对于这个问题,给出最响亮回答的是一个叫做马丁·卡萨多(Martin Casado)的年轻人和他的导师尼克·麦考恩(Nick MacKeown)。他们在IT界各种巨人的研究基础上,首先提出了SDN的概念,发明了OpenFlow协议,后来他们创立了一家叫做Nicira的公司。
牛顿对科学的贡献不仅仅局限于微积分和力学三大定律,他还在光学领域有所造诣,比如确定了光的粒子性等。而卡萨多、麦考恩和他们的Nicira公司对IT界的贡献也不仅仅局限于SDN的提出和发明OpenFlow,他们还最早提出了完整的网络虚拟化的概念框架,最早开发了在所有虚拟化平台之上都可以运行的且支持三层网络功能的虚拟交换机,即OVS(Open vSwitch),并作为发起者领导了OpenStack的网络项目Quantum(即后来的Neutron)的开发。
2012年,VMware斥12.6亿美元巨资买下了在当时还没有盈利的初创公司Nicira,并将其解决方案加以改进,这就是后来的VMware网络虚拟化解决方案——NSX。VMware后来将NSX解决方案整合进了自己传统的服务器虚拟化解决方案,加上新推出的存储虚拟化解决方案VSAN,提出了软件定义数据中心(SDDC)的构想。
1.1.2 网络业务发展趋势
IT行业到底发生了什么样的变化,导致传统IT基础架构已无法适应,并且必须做出改变?
在信息时代,虽然存在部分企业寡头垄断的情形,但绝大多数中小型企业都面临着全球化的竞争,就算是寡头垄断的那些行业巨头们,也需要创造利润满足股东的利益,且需要满足其几万甚至几十万名员工日益增长的工资和福利要求,这就需要所有企业不断利用新的创造力、新的技术,来提升自己的竞争能力。这些技术的核心包括且不限于服务器虚拟化、存储虚拟化、应用加速、自动化工具等。在这个过程中,企业需要不断根据现今和未来可能出现的业务需求,来调整自己的IT基础架构。我们来看一个真实案例,此为新华网的新闻节选,为了保持新闻的真实性,我们没有对这段话进行任何修改和删减。
2015年11月12日下午,吉尼斯世界纪录认证官Charles Wharton公布天猫在双十一期间创造的9项吉尼斯世界纪录荣誉。其中24小时单一网络平台手机销量超过300万台,当日公司的交易总额高达912亿人民币。
天猫双十一所创造的9项纪录,除了当天91,217,036,022元人民币的交易额打破了“24小时单一公司网上零售额最高”吉尼斯世界纪录荣誉之外,还有其他的销售成绩包括牛奶10,124,263升、坚果6,567吨、苹果641,899公斤、蜂蜜269,821公斤、手机3,133,289台、电视机643,964台、手表1,112,561支、汽车6,506辆,八种产品成功刷新了销售业绩的吉尼斯世界纪录荣誉。
吉尼斯世界纪录认证官Charles Wharton表示:“非常高兴能再度见证天猫在双十一期间创造的销售纪录,希望消费者在参与打破纪录的同时,也能够获得便捷高效的消费体验。”
这个所谓的“购物狂欢节”,是企业竞争、吸引客户、刺激消费的一种手段,也带来了一连串连锁反应。首先,阿里巴巴公司作为活动发起者,在这一天的网站访问量、业务需求量会激增。我们知道,阿里巴巴作为中国互联网行业三巨头(BAT)中的一员,其旗下业务不仅仅是基于淘宝和天猫作为网购平台的电子商务服务,还包括蚂蚁金融服务、菜鸟物流服务、大数据云计算服务、广告服务、跨境贸易服务、阿里云服务等互联网服务。但是,在每年的11月11日,只有电子商务服务才是最重要的,需要有最高的优先级,保证900多亿交易量的业务可以流畅、安全地进行。这一天,在阿里巴巴公司后台的数据中心中,其他的业务可能需要暂时贡献出自己一部分网络、服务器、存储资源,供电商平台调用,以保证电商平台最高的优先级。而这一天之前的相当长的一段时间内,阿里巴巴公司数据中心的网络管理员、服务器管理员、存储管理员需要加班加点地工作,在得到市场部门对这一年“购物狂欢节”可能达到的交易量的分析和预测后,对IT基础架构平台的策略进行更改,并为电子商务服务的应用进行资源池中的再分配,保证最高优先级。而在这一天之后,所有新设定的策略,都需要回退到通常状态,新增资源可能也需要被回收。除了阿里巴巴公司外,物流公司也需要根据这一天可能达成的订单数量,对自己的IT基础架构的配置和资源分配做一定修正,以保证物流业务正常进行。此外,那些入驻天猫和淘宝的企业和卖家,尤其是一些中小企业,它们的网络、计算和存储资源可能并不充足,当这一天订单激增的时候,需要通过“云爆发”的服务方式,自动租用公有云资源,而公有云平台也会对针对使用情况进行自动计费。
这只是现代企业运作模式的一个缩影,不光是在每年的11月11日部分企业的IT基础架构可能面临巨大变化,比如春运时期的火车票订票网站、考试结束后的教育部查分系统、开放选课后的大专院校学籍管理系统、国家刺激经济政策出台后的股市交易系统、寒暑假或黄金周假期之前的旅游公司的酒店和机票订单系统,都可能会面临着类似的压力。
以上只是举了一些案例。从根本上看,这些压力导致现在的IT基础架构在大环境上已经发生了一些变化,无论云服务提供商、电信运营商还是企业都会面临这些变化。
服务器虚拟化:由于x86计算机的CPU制造商生产的CPU越来越强大,内存制造商的内存容量越做越大,服务器虚拟化技术应运而生。图1.2所示为VMware服务器虚拟化的基本逻辑架构。服务器虚拟化技术不仅能在一台物理服务器中实现多虚拟机和多应用,从而节省物理硬件成本和机房空间,还能通过虚拟机在线迁移技术实现动态资源分配和高可用性,大大提升应用的负载均衡和冗余性。但是由于虚拟机会在集群内部漂移,而传统的安全策略、QoS策略又是基于IP地址或端口的,这也意味着需要更复杂的策略。如今世界上每几秒就会诞生一台新的虚拟机,而应用、服务器、网络、存储又是分离的,这造成各种不同的系统管理员各司其职,无法通力合作,运维和管理效率低下。
层出不穷的新应用:抽象地来看,现代的IT应用架构无非是三个层面——前端(如Web界面、移动客户端的界面)、应用(App)和数据库(Database,简称DB)。用户可能先登录到前端界面才能使用应用,而真正使用应用时,又会调用后台数据库。其间,后台可能还会调用应用加速、应用交付服务和防火墙服务,保证应用交付的速度、负载均衡和安全性。由于每一层的服务都会比较多,调用策略各不相同,令IT管理员头疼的就是该如何去配置这些策略。因此,当遇到层出不穷的新应用,或是需求量激增或激退时,策略修改就成了一件重要却又极其繁琐的工作。
云计算:几年前,当“云计算”刚刚提出的时候,很多人还觉得这个概念还是“云里雾里”的。而现在,“云计算”概念已深入人心。虽然业内对云计算还没有一个明确的定义,但也有了一定的共识。根据NIST(美国国家标准与技术研究院)的说法,只要一个数据中心拥有“快速弹性的架构”和一个“资源池”,可以提供“按需自助服务”且这些服务是“可测量的服务”,而资源池里的服务最终是可以被“宽带接入”访问的,那么它就是一个“云”。云的服务方式分三种——架构即服务(IAAS)、平台即服务(PAAS)、软件即服务(SAAS)。云的部署模式分为公有云、私有云、混合云、社区云四种。云计算的特性、服务模式和部署模式如图1.3所示。然而“按需自助服务”,即云计算的最终目标——“像用水、用电一样用IT”,实现得并不完美。服务器虚拟机技术已经使得我们可以对计算资源和存储资源实现基本的按需自助式服务,但是我们却很难对物理网络资源进行资源调度,导致数据中心运维和管理极其复杂和繁琐。此外,由于基于物理网络设备对数据中心网络进行扩展实现得并不理想,“快速弹性的架构”也没有达到适合云计算的要求。我们需要使用一种全新的网络架构去实现云计算提出的这些要求。
数据中心的合并:越来越多的企业为了减少机房投入(包括机房场地租用、耗电、制冷、运维成本),会将全部或部分应用,或者是灾备应用迁移至公有云,这就需要在私有云与公有云之间打通一个隧道。实力雄厚的公司,也可能使用类似“两地三中心”的数据中心解决方案,在异地数据中心之间跨越三层链路,打通网络连接,实现更高的冗余性。当然,这意味着网络策略更加复杂。
在这里,我们做一个小小的总结:网络、服务器虚拟化、存储技术的发展,要求管理员可以便捷地管理数量更多、部署更加复杂的设备,从而面对更大流量的应用并可以迅速地让应用上线和下线。但是在当前的大环境下,如何去实现它并减少误操作率和故障恢复时间呢?这样的变化趋势最初主要发生在数据中心,但后来在企业网、运营商都出现了这样的变化。因此,我们需要像牛顿改变数学去适应物理学的变化一样,去改变网络基础架构,从而去适应应用的变化。在这样的背景下,SDN技术出现了。
1.1.3 SDN发展历史
在SDN出现之前,控制平面和转发平面是耦合的(在同一个机箱之内,或者直接相连的多机箱系统内)。这种多平面间的紧耦合导致的互相依赖产生了系统的技术革新、稳定性以及规模问题,而规模问题最终可能导致性能问题——一个网元就是一个“黑盒子”(box),数据中心的机房是以box-by-box的方式部署的,当网络管理员需要修改配置或策略时,必须登录每一台设备。但是当网络设备达到几千台,物理服务器达到几万台时,网络管理员该怎么办呢?前文讨论的问题,很多都是因为控制平面和转发平面的耦合而造成的。
可能在那个年代,还没有这样大规模的数据中心,但是斯坦福大学的博士研究生马丁·卡萨多(Martin Casado,见图1.4)敏锐地发现了这个在未来IT界可能出现的问题。他的研究课题是实现一个灵活的、能够像计算机一样可编程的网络系统。2004年,他领导了一个关于网络安全与管理的科研项目,2006年,这个项目的研究成果被发表——一个名为Ethane的网络模型,这个模型包括了现今SDN架构中的两个重要内容:基于流表的转发和中央控制器。
卡萨多的导师是业内大名鼎鼎的尼克·麦考恩(Nick McKeown)教授(见图1.5)。麦考恩非常重视卡萨多的Ethane项目,给了卡萨多很多建设性的指导和启发。在研究过程中他们俩觉得,如果将Ethane的设计更进一步,将传统网络设备的控制平面和转发平面两个功能模块进行分离、解耦,通过集中式的控制器以及可编程的标准化接口,可以便捷地对各种网络设备进行配置和管理。这样一来,网络的设计、部署、管理和使用就有了更多的可能,控制平面与转发平面的解耦也更利于推动网络行业的革新和发展。卡萨多和麦考恩从而开始着手研究一款叫做NOX的控制器,希望将这个控制器作为单独的控制平面。他们进而发现,如果每台交换机能对这个控制器提供一个标准的统一接口,那么控制起来就会非常方便。于是师徒两人着手开发这个控制器对交换机接口的控制协议——具有划时代意义的Openflow协议就诞生了。非常幸运,Ethane最终没有成为一篇设计精巧却深奥难懂的大学论文。
麦考恩和卡萨多为了进一步提出SDN的概念,邀请了加州大学伯克利分校的斯科特·申克(Scott Shenker)教授加入了自己的团队,他们3人于2007年成立了Nicira公司。2008年3月,麦考恩在ACM SIGCOMM(ACM组织在通信网络领域的旗舰型会议,也是目前国际通信网络领域的顶尖会议)上发表了著名论文OpenFlow: Enable Innvations in Campus Network。OpenFlow这个名词第一次浮出水面,引起业内广泛关注。麦考恩明确提出了OpenFlow的现实意义——在不改变物理拓扑的情况下,分离控制平面和转发平面,实现网络的集中管理和控制并不影响正常的业务流量。之后几年,Nicira不断完善其基于SDN的网络虚拟化解决方案——其主要利润来自其基于OpenFlow和Open vSwitch(OVS)创建的网络虚拟平台(NVP),为AT&T、eBay、NTT以及Rackspace等IT巨头的超大规模数据中心提供SDN和网络虚拟化平台,实现它们的数据中心自动化。Nicira还作为发起者领导了OpenStack的网络项目Quantum(即后来的Neutron)的开发。2012年7月,VMware公司宣布以12.6美元收购Nicira公司。
VMware在收购了Nicira后,目标方针非常清晰——将Nicira的网络虚拟平台解决方案融入自己的服务器虚拟化解决方案,所有的网络高级功能全部通过服务器内部虚拟化软件完成,硬件网络设备就可以只需要处理转发。这个解决方案就是NSX网络虚拟化解决方案。