书名:新一代SDN——VMware NSX 网络原理与实践
ISBN:978-7-115-41922-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
• 著 范恂毅 张晓和
责任编辑 傅道坤
责任印制 张佳莹 焦志炜
• 人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
定价:79.00元
读者服务热线:(010)81055410
反盗版热线:(010)81055315
范恂毅,毕业于南京邮电大学,曾在NEC、Jardine OneSolution、Alcatel-Lucent等国际知名IT公司担任顾问和架构师,有约10年行业工作经验。精通网络和服务器虚拟化技术,并在存储、安全、应用交付、语音、无线等领域有深入研究,尤其对SDN、网络虚拟化、分布式存储、OpenStack等前沿IT技术保持着极高的热情和孜孜不倦的追求。持有三项Cisco CCIE认证(安全、语音、数据中心)和三项VMware VCP认证(数据中心虚拟化、网络虚拟化、桌面虚拟化)。曾主导多家跨国企业的中国区数据中心的架构设计,目前同时担任着国内最大的VMware虚拟化技术论坛——VMsky的NSX版块版主。
张晓和,曾就读于香港大学IMBA,目前是VMware公司网络虚拟化产品线高级经理,拥有18年的IT工作经历,先后在Bay Networks、Fore Systems以及Cisco Systems(2000年到2014年)担任资深系统工程师和销售经理等多个职位。是国内很早获得路由交换和安全双CCIE的网络从业者之一,曾经参与过国内很多重点行业的超大型客户网络架构设计,乃至业务拓展及推广。
作为VMware公司在中国区最早布局网络虚拟化(SDN)业务的资深产品经理,张晓和先生自2014年以来一直致力于推广和推进在新一代的数据中心和云机房中使用软件定义网络的NSX技术来替代物理网络设备和厂商功能绑定的传统方案。
本书特色
VMware NSX技术领域的第一本中文读物 VMware公司全球副总裁兼大中华区CTO亚洲研究院总经理李映先生作序 众多业内技术专家倾力推荐 本书由资深NSX技术专家著作,全面介绍了VMware NSX的相关知识,还从自身的经验和体会出发,阐述了NSX与其他技术、产品、服务进行整合的解决方案,可以作为NSX部署方案的最佳指导。
VMware NSX是VMware网络虚拟化平台,是结合了Overlay技术的新一代SDN解决方案。本书作为市面上第一本专门讲解VMware NSX的中文图书,揭开了这项新技术的神秘面纱。
本书共分为12章,主要介绍了SDN与网络虚拟化的起源与现状,NSX网络虚拟化概览,NSX-V解决方案基本架构,NSX-V逻辑交换与VXLAN Overlay,NSX-V逻辑路由,NSX-V安全,NSX-V的Edge服务网关,多vCenter环境中的NSX-V,多虚拟化环境下的NSX-MH,NSX与OpenStack,在NSX之上集成第三方服务,NSX的底层物理网路设计等知识。
本书适合网络和虚拟化设计架构师、项目实施工程师和IT管理人员阅读。
在本书著作过程中,我得到了亲友和业内同行们的大力支持,在这里需要一一致谢。首先需要感谢的是我的家人,我用了大量本该陪伴你们的时间去写作本书,没有你们的支持和理解,本书很难如期面世。对于书中NSX与其他厂商的融合解决方案章节,前Palo Alto公司的陈剑先生、F5公司的周辛酉先生、Arista Networks公司的杨文嘉先生、Brocade公司的李鹤飞先生都进行了细致的审校工作,保证书中所述没有偏差,在这里向他们一并表示感谢。此外,VMware公司前大中华区总裁宋家瑜先生、F5公司大中华区技术总监张振伦先生、Brocade公司大中华区CTO张宇峰先生、盛科网络软件总监张卫峰先生、南京邮电大学的黄海平教授也给予了我关怀和帮助,在此一并感谢。最后需要特别感谢我的朋友宋健先生,他为我动用了各种资源,提供了整套真实的NSX部署环境,并牺牲了多个周末陪伴我一起搭建环境并实现NSX的各个功能。再次由衷感谢上述所有亲友和同行。
—范恂毅
在本书著作过程中,得到了公司领导和同仁的大力支持,在此表示感谢!首先感谢VMware公司亚太及日本地区技术副总裁兼亚洲研究院总经理李映博士为本书作序。特别感谢VMware公司SDDC大中国区业务总监林世伟先生和VMware公司大中华区高级市场总监陈致平先生促成了本书能够系统性地与大家见面。同时感谢中国区市场总监邵颖女士、VMware公司大中华区高级产品经理傅纯一先生和市场部数字营销经理朱亮的关注和帮忙。还要特别鸣谢VMware公司中国研发中心网络与安全开发部总监韩东海先生在相关章节给了很好的建议;以及感谢VMware公司叶逾健、尤贵贤和叶毓睿先生等多位的大力支持。
—张晓和
今天,移动通信正在重新定义我们的社会。新的移动应用和业务,不仅让我们的衣食住行变得更加便利,新的创新和商业机会也层出不穷。通过和传统行业的深度融合,也就是我们所说的“互联网+”,各种传统行业加上了一双“互联网”的翅膀,诞生出了很多激动人心的技术创新和业务创新,进一步推动着社会进步。
IT部门,作为信息技术的领导者和实践者,它的作用也在这一轮互联网浪潮中变得无比重要。我们的业务部门不仅需要IT部门更敏捷、更安全、更高效和更灵活,也需要IT部门成为引领创新的创造者、推动者和实施者。这种新的要求,也让我们每一位IT从业者重新思考我们的基础架构、IT管理流程和IT安全模式。云计算作为移动互联网的基石,也成为IT部门的重要战略举措。通过虚拟化,打造软件定义的数据中心,也成为企业IT转型的重要一步。软件定义数据中心通过虚拟化、资源池化和自动化,把企业数据中心的各种资源,包括存储、计算和网络资源,打造成统一管理、水平扩展的资源池,能按需地给业务部门的应用提供相应的IT资源,极大地提高了反应的敏捷度和运行效率。
VMware公司作为虚拟化和云基础架构的全球领导厂商,一直在软件定义数据中心和混合云的领域中投入大量资源进行创新。我们提出的软件定义数据中心的理念,也逐步被业内和全球上千万用户接受。今天VMware公司不仅成为成长速度第一的软件公司,也成为业内公认的最具颠覆性的科技公司之一。今天VMware的产品和技术,已经覆盖了计算、存储、网络虚拟化、混合云和终端用户计算各个方面。VMware公司已经成为CIO们最信赖的技术合作伙伴之一。
作为软件定义数据中心非常重要的一环,软件定义网络一直是VMware创新的重点之一。VMware通过2012年并购Nicira,已经开拓出了领导全球数据中心网络架构的NSX软件定义网络解决方案。VMware NSX是具有跨时代意义的颠覆性产品和技术,它在应用于客户现有网络环境中时,无须颠覆性地替换和改造客户网络硬件和设备,大大节省和保护了投资,目前已经被全球成百上千的行业大客户大规模部署和商用。SDN/NSX通过微分段(Micro-Segmentation)也能让企业网络更加安全,同时其独有开放性和分布性的优势又可以帮助数据中心的基础架构提升自动化、智能化、可靠性和可用性,并且十分易于管理。
范恂毅先生和张晓和先生,作为软件定义网络领域多年的一线技术专家和从业者,把他们在SDN/NSX的经验和体会浓缩在本书中。这些经验和总结,具有极大的参考价值,不仅能帮助广大IT从业者很好地理解SDN和NSX,也能帮助大家把SDN/NSX实施到具体的IT项目中。希望本书的出版,能有助于软件定义网络和软件定义数据中心的进一步技术创新,为IT技术变革贡献一份力量!
李映博士
VMware公司亚太及日本地区技术副总裁兼亚洲研究院总经理
当企业需要搭建一个“云”的时候,无论它是公有云还是私有云,其基础架构一定涉及网络、计算和存储这三大块。NIST对云计算的定义中,明确提出了云中资源需要实现“按需自助服务”。对于计算和存储,我们通过最早由VMware主导的服务器虚拟化技术,已经很好地实现了这样的要求,而之前对于网络的“按需自助服务”,则一直实现得不理想,这是因为传统物理网络很难在虚拟化环境中进行资源的调配。因此,传统网络阻碍了数据中心的自动化实现,我们需要通过创新,用一种全新的架构去改变这种现状。
回顾网络近30年的发展,大致可以分为三个阶段。第一个阶段(1985~1998年),是多种协议参差不齐、并行使用的窄带网时代,是Novel SPX/IPX、10Mbit/s以太网乃至ATM/帧中继百家争鸣、百花齐放的时代,网络领导厂商也不只是Cisco一家。第二个阶段(1999~2012年),网络终于演进到以TCP/IP一统天下的高速互联网时代,整个网络应用模型从C/S架构演进至B/S架构,网络与业务形态结合的需求开始显现并逐步成型,并开始进入俗称的Web 2.0互联网时代。网络发展的第三个阶段(2013年至今),是以全分布式数据中心网络与移动互联网为主要特征的全新时代,VMware公司通过兼容并蓄Nicira首创的SDN理念和技术推出了NSX网络虚拟化解决方案,并且里程碑式地在业界第一个提出了软件定义的数据中心(SDDC)的架构,包含了软件定义计算、软件定义网络和安全、软件定义存储,辅以VMware强大的云管平台(如vRealize、vCloud和vSOM等系统及组件),从而构成了数据中心云计算的全新一代基础架构,这一阶段最为凸显的本质特征是Network as a Service的云网融合。
根据第三方权威资料显示,随着云计算年代的到来,网络流量模型发生了很大的变化—16%的流量集中在运营商网络,14%集中在企业网络,而70%的流量位于业务和应用集聚的数据中心内部。数据中心流量和带宽的指数级增长,已经远远超出了人们对传统网络的想象,这将彻底改变网络的格局,世界再也不是云是云、网是网的世界。今后的网络应只与业务和应用有关,而与硬件和品牌无关;云网融合元年已经开启。我们深信VMware率先发布和积极倡导的软件定义的数据中心架构能够将企业带入真正的云计算时代,并将由此催生出原生态级的大数据和物联网业务平台、产业集群。同时,人工智能识别、量子通信和前沿数学模型带来的海量数据计算、全新的空间信息网络及虚拟现实等技术,将为网络演进和产业升级进入第四个阶段打下坚实基础。
这些科技和技术发展的源动力,就是创新。克莱顿·克里斯坦森(Clayton Christensen)先生在其著作《创新者的窘境》中认为创新分为两种:渐进性创新和颠覆性创新。渐进性创新指的是在原有道路上改进产品性能,精益求精。颠覆性创新则是用一种完全不同的方法来解决问题,彻底改变业务模式,这样的创新往往可以重新制定行业规则,并催生新的行业领导者。
那么,VMware NSX网络虚拟化解决方案是一种渐进性创新还是颠覆性创新呢?它当然是一种颠覆性创新。10年前,人们或许还在质疑VMware服务器虚拟化平台是否稳定,性能是否良好,但现今不考虑服务器虚拟化的企业还有多少呢?VMware服务器虚拟化技术已经做到了一次颠覆性创新,它的出现间接催生了云计算。而VMware NSX网络虚拟化解决方案,很可能会像服务器虚拟化技术在当年颠覆了x86服务器市场一样,在未来颠覆网络市场。为什么这么说?这是因为VMware NSX网络虚拟化平台,可以无需关心底层物理网络架构,做到物理网络和逻辑网络的完全解耦,并分离网络的管理、控制和数据三个平面,还能在逻辑网络内部重现以往物理网络中实现的所有高级功能。这些功能都将极大地改变传统网络的理念和部署方式,是一种完全的颠覆性架构—我们可以在UI界面中点点鼠标就完成了逻辑网络的全部配置,并实现了整网的自动化、安全性和业务连续性。有了这样的能与底层物理网络完全解耦的逻辑网络,我们就可以在虚拟化环境中按需自动化地调用网络资源,实现与计算、存储按需自助服务类似的“网络按需自助服务”,并最终迈入云网融合的时代。
由于NSX解决方案发布时间不长,尽管它的理念极其先进,但大多IT从业人员还只是听说过这个名词,而对其架构、组件、相关配置了解甚少;而希望对其深入了解的IT从业人员发现市面上并没有一本介绍它的中文书籍,甚至网上也只有一些极其简单且翻译质量堪忧的中文资料。为此,我们花了相当长的时间,同时参考了大量英文资料,写作了这本专门阐述NSX解决方案的中文书籍,并搭建了一套环境,将NSX的各种功能的配置步骤以文字和图片的形式呈现在书中。本书从全新一代数据中心的视角,在中国地区第一次全面性、系统性地阐述了VMware新一代SDN—NSX网络虚拟机的技术原理和实践,希望本书可以将VMware在SDN和网络虚拟化方面最新的先进理念传达给读者。
最后,由于作者水平有限且时间仓促,书中难免会出现差错,且个人的一些观点可能与读者的观点存在偏差。如有任何问题,都恳请读者不吝赐教,作者不胜感激。
本书作为市面上第一本全面介绍VMware NSX网络虚拟化技术的图书,其内容编排良好,组织有序,读者可以从头到尾逐章阅读,也可以只阅读自己感兴趣的内容。
本书共分为12章,其每章主旨如下。
第1章,SDN与网络虚拟化的起源与现状,通过追溯SDN技术的起源,引出网络虚拟化技术的起源—当今的网络虚拟化技术是SDN技术发展到一定阶段的产物。
第2章,NSX网络虚拟化概览,针对VMware服务器虚拟化技术的发展,引出VMware NSX网络虚拟化技术的整体介绍,并将其与行业内其他厂商的类似解决方案进行对比。
第3章,NSX-V解决方案基本架构,针对NSX部署在VMware vSphere环境中的情形(即NSX-V),介绍了其底层架构和管理、控制平面。
第4章,NSX-V逻辑交换与VXLAN Overlay,全面介绍NSX-V环境下的逻辑交换。
第5章,NSX-V逻辑路由,全面介绍NSX-V环境下的逻辑路由。
第6章,NSX-V安全,全面介绍NSX-V环境下的逻辑防火墙。
第7章,NSX-V的Edge服务网关,介绍NSX-Edge之上实现的高级网络功能。
第8章,多vCenter环境中的NSX-V,介绍跨vCenter环境中的NSX。
第9章,多虚拟化环境下的NSX-MH,针对多虚拟化环境中的NSX进行介绍,阐述了如何利用安装在KVM或Xen上的OVS实现NSX网络虚拟化。
第10章,NSX与OpenStack,针对目前火热的OpenStack技术,介绍了VMware如何与之集成并提出融合解决方案,尤其是如何利用VMware NSX来进行OpenStack Neutron的集成。
第11章,在NSX之上集成第三方服务,介绍VMware NSX如何与第三方安全、应用交付解决方案进行集成。
第12章,NSX的底层物理网络设计,介绍如何打造最适合VMware NSX的底层物理网络平台。
本书适合于已经对网络和服务器虚拟化技术有一定了解,且希望对SDN和网络虚拟化技术,尤其是VMware NSX进行深入了解的读者。本书同时也适用于正在筹备、设计、部署、实施网络虚拟化项目或需要对其进行维护的的IT人员,可作为他们进行网络虚拟化项目的评估与设计的指导。
SDN是一个内容丰富却又定义模糊的名词。说它内容丰富,是因为在当今云计算大行其道的情况下,SDN已成为实现云计算的一种重要方法,其技术已席卷了企业私有云和公有云服务提供商的数据中心方方面面。说它定义模糊,是因为SDN还不像其他计算机或网络技术被一些组织或企业进行了标准化定义,当人们谈到SDN时,可能还在讨论“SDN究竟是什么”这个问题。
网络虚拟化则是云计算和SDN发展到一定阶段的产物。服务器虚拟化技术的飞速发展间接催生了云计算的兴起。而在云计算环境中大规模部署虚拟机,其底层物理网络平台的局限性也越来越明显,哪怕使用SDN来配置和部署底层物理网络——这就需要在云计算环境中引入网络虚拟化技术。有人说网络虚拟化也是一种SDN技术,因为它不同于传统的物理网络,是在传统物理网络之上通过协议和软件创建了一种虚拟网络,因此属于所谓的“软件定义网络”。我们不能对这种说法的正确与否妄下定论,因为每个IT从业人员看待SDN的角度都是不同的。但是,随着网络虚拟化技术的发展,现代的网络虚拟化技术也逐渐与SDN的核心思想变得一脉相承——控制平面与转发平面的分离。除了控制和转发平面的分离外,网络虚拟化还做到了物理网络和逻辑网络的解耦。
本章从介绍SDN、网络虚拟化的前世今生开始,逐步揭开这两种技术的神秘面纱,从而在后续章节中介绍VMware NSX是如何实现网络虚拟化的。尽管本章不涉及具体的VMware NSX技术,但是建议读者不要跳过这一章,哪怕您再心急。这是因为在SDN和网络虚拟化技术的发展历程上,还是出现了很多有意思的事情,能增加您的阅读乐趣,而且本章也介绍了SDN和网络虚拟化技术的基本概念(尽管其定义并不被所有人认可),相信这对您深入理解VMware NSX网络虚拟化技术会有所帮助。
在现今,SDN的影响力已经席卷了各种大型和小型数据中心,无论数据中心提供的服务是公有云服务还是私有云服务,其影响力正在逐渐向企业网中渗透。SDN可以被认为是继个人电脑、互联网、云计算之后,又一个革命性的IT浪潮,或者也可以这样理解——利用SDN实现的云计算,是云计算的第二阶段。未来,在数据中心内的设计、部署、实施、运维,可能都离不开SDN技术,这将大大改变IT从业人员甚至全人类使用信息技术的方式。
或许您没有想到,现今大红大紫的SDN技术架构,其实早在本世纪的前几年——互联网刚刚普及、云计算还没提出的年代,就被人构想、设计和实现了。经过十多年的发展,这个技术虽然还没有完全被标准化定义,但其理念已经深入人心,它已从高校中的计算机科学家脑海中的构想,成为了实实在在的技术。各大IT厂商、云计算提供商也如雨后春笋般地推出了基于这个技术的产品,或利用该技术推出了自己的服务。
在本节中,我们首先来看“为什么需要SDN”,然后分析网络业务的发展趋势,最后引入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)发现传统数学无法解释他正在研究的物理问题的时候,发明了微积分。这样,他就能使用新式的数学模型,解释他之前无法解决的物理问题了。
图1.1 艾萨克·牛顿(1643~1727年)
当企业(尤其是互联网、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)的构想。
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基础架构在大环境上已经发生了一些变化,无论云服务提供商、电信运营商还是企业都会面临这些变化。
图1.2 VMware服务器虚拟化的基本逻辑架构图
图1.3 云计算的基本特征、服务模式和部署模式
在这里,我们做一个小小的总结:网络、服务器虚拟化、存储技术的发展,要求管理员可以便捷地管理数量更多、部署更加复杂的设备,从而面对更大流量的应用并可以迅速地让应用上线和下线。但是在当前的大环境下,如何去实现它并减少误操作率和故障恢复时间呢?这样的变化趋势最初主要发生在数据中心,但后来在企业网、运营商都出现了这样的变化。因此,我们需要像牛顿改变数学去适应物理学的变化一样,去改变网络基础架构,从而去适应应用的变化。在这样的背景下,SDN技术出现了。
在SDN出现之前,控制平面和转发平面是耦合的(在同一个机箱之内,或者直接相连的多机箱系统内)。这种多平面间的紧耦合导致的互相依赖产生了系统的技术革新、稳定性以及规模问题,而规模问题最终可能导致性能问题——一个网元就是一个“黑盒子”(box),数据中心的机房是以box-by-box的方式部署的,当网络管理员需要修改配置或策略时,必须登录每一台设备。但是当网络设备达到几千台,物理服务器达到几万台时,网络管理员该怎么办呢?前文讨论的问题,很多都是因为控制平面和转发平面的耦合而造成的。
可能在那个年代,还没有这样大规模的数据中心,但是斯坦福大学的博士研究生马丁·卡萨多(Martin Casado,见图1.4)敏锐地发现了这个在未来IT界可能出现的问题。他的研究课题是实现一个灵活的、能够像计算机一样可编程的网络系统。2004年,他领导了一个关于网络安全与管理的科研项目,2006年,这个项目的研究成果被发表——一个名为Ethane的网络模型,这个模型包括了现今SDN架构中的两个重要内容:基于流表的转发和中央控制器。
图1.4 马丁·卡萨多
卡萨多的导师是业内大名鼎鼎的尼克·麦考恩(Nick McKeown)教授(见图1.5)。麦考恩非常重视卡萨多的Ethane项目,给了卡萨多很多建设性的指导和启发。在研究过程中他们俩觉得,如果将Ethane的设计更进一步,将传统网络设备的控制平面和转发平面两个功能模块进行分离、解耦,通过集中式的控制器以及可编程的标准化接口,可以便捷地对各种网络设备进行配置和管理。这样一来,网络的设计、部署、管理和使用就有了更多的可能,控制平面与转发平面的解耦也更利于推动网络行业的革新和发展。卡萨多和麦考恩从而开始着手研究一款叫做NOX的控制器,希望将这个控制器作为单独的控制平面。他们进而发现,如果每台交换机能对这个控制器提供一个标准的统一接口,那么控制起来就会非常方便。于是师徒两人着手开发这个控制器对交换机接口的控制协议——具有划时代意义的Openflow协议就诞生了。非常幸运,Ethane最终没有成为一篇设计精巧却深奥难懂的大学论文。
图1.5 尼克·麦考恩
麦考恩和卡萨多为了进一步提出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网络虚拟化解决方案。
介绍完为什么需要SDN和SDN的起源后,是时候介绍SDN到底是什么了。理解SDN架构,对于理解VMware NSX网络虚拟化解决方案的三个平面架构以及其逻辑网络、物理网络解耦的设计,是非常重要的——SDN的核心思想是控制平面与转发平面的分离,这与NSX中管理平面、控制平面和数据平面的设计如出一辙。
SDN其实直到现在也没有清晰的定义,但是其核心理念已逐渐被人们接受。本章将下来会讨论SDN的理念、架构,以及它如何面对当前的IT难题。
SDN是Software Defined Network的缩写。正如业内很难回答“云计算”的定义是什么一样,业内也很难回答SDN的定义。但是SDN在经历了几年的发展后,业内也对其概念达成了一个基本的共识。前文已经介绍了SDN的历史,在这里我们介绍一下SDN的模糊定义。
SDN其实并不是一种技术,也不是一种协议,它只是一个体系框架,一种设计理念。这种框架或理念要求网络系统中的控制平面和转发平面必须是分离的。在转发平面,它可能希望与协议无关,管理员的意志最重要。管理员可以通过软件来执行自己的意志,控制转发行为,并驱动整个网络。
除此之外,SDN的理念还希望控制器与转发平面的接口标准化,我们把这样的接口称为南向接口。因为如果软件想要真正控制转发行为,就应该尽量不依赖特定的硬件。除了硬件设备,该控制器也可以对网络中的应用程序进行集中控制,一般来说这是通过硬件提供一些可编程的特性来实现的。控制应用程序的接口称之为北向接口。
当前业内比较认可的SDN的特征属性如下:
其中前两点是SDN的核心。如果一个网络系统具备了这两点特征,那么就可以宽泛地认为这是一个SDN架构。
OpenFlow作为目前主流的南向接口协议,这个名词当然被炒得火热,有人认为SDN就是OpenFlow。这是不正确的。因为SDN是一种框架,一种理念,而OpenFlow只是实现这个框架的一种协议。
如今,VMware公司、Cisco公司和Microsoft公司都在大力宣传自己的网络虚拟化(Network Virtualization)技术。有人认为网络虚拟化也是SDN,这种观点是不完全正确的。早期的网络虚拟化雏形(如早期的Cisco Nexus 1000v和VMware内嵌在vSphere里的虚拟交换机),指的是在服务器虚拟化平台中加一层虚拟交换机,用于与虚拟机连接,细分虚拟机的接口策略,而不是在服务器网卡上用一个Trunk把所有VLAN封装并连接上行链路。而现在,网络虚拟化特指实现方式是基于一种叫做Overlay技术(现在还没有很好的中文翻译,我们姑且先把它叫做“叠加网络”技术)的网络虚拟化。有了这种技术,用户可以突破一个网络系统中的VLAN数量、MAC地址容量等的限制,轻松跨越三层网络打通二层隧道,对于超大规模数据中心、多租户数据中心、双活/灾备数据中心来说,这种技术相当合适。Overlay可以由物理网络搭建,也可以通过服务器的hypervisor来搭建。通过物理网络搭建的Overlay并没有真正实现控制平面和转发平面的分离,不符合SDN特征。通过服务器的hypervisor搭建的Overlay,即基于主机的Overlay,现在一般会有集中的管理平面和控制平面,以及分离的转发平面。因此,网络虚拟化是SDN发展到一定阶段的必然趋势,可能是SDN的一个分支,但不是SDN本身。因此,有人把基于主机的Overlay称为新一代SDN,因为它和第一代SDN有很大区别。本书的重点——VMware NSX网络虚拟化解决方案正是基于SDN思想的网络虚拟化的绝佳解决方案,是新一代SDN,后文会详细阐述。
一些运营商和软件厂商现今正在推广自己的网络功能虚拟化(Network Function Virtualization,NFV)技术。NFV也不是SDN,它的目标是利用当前的一些虚拟化技术,在标准的硬件设备上运行各种执行网络功能的软件来虚拟出多种网络设备。由于这些虚拟的网络设备(如虚拟交换机、虚拟路由器、虚拟防火墙、虚拟负载均衡设备)可能会有统一的控制平面,因此NFV和SDN是一种互补的关系。VMware NSX具备NFV的属性——NSX使用x86服务器的软件来实现各种网络功能,但由于NSX中的Overlay属性过于明显,因此VMware更愿意将NSX解决方案称为一种网络虚拟化解决方案,而不是NFV解决方案。
另外,近来一些热门词汇如Openstack、Cloudstack、OVS等,与SDN都没有任何直接的关系。其中Openstack和Cloudstack是云管理平台,而OVS之前已经提到过了,是SDN鼻祖Nicira公司开发的一款虚拟交换机,现在已经开源。这些新技术和SDN也是一种互补的关系,可以共同实现融合解决方案。
图1.6所示为SDN架构中的各个层面,它直观地阐述了SDN架构,我们具体解释一下图中的各个层面。
图1.6 SDN架构中的各个层面
介绍完SDN的几个工作层面,接下来讨论SDN究竟如何应对前文提到的IT行业架构遇到的问题。SDN解决这些问题的核心思想是改变传统网络中控制数据流的方式。在传统网络中,报文从源转发到目的的过程中,转发行为是逐条控制并独立进行配置的,这种控制也不是统一的。
而SDN是将每台设备里的控制平面剥离出来,放到一个控制器中,由这个控制器通过统一的指令来集中管理转发路径上的所有设备。这个控制器知晓整网的拓扑,知晓转发过程中所有的必需信息,而且上层应用程序也可以通过控制器提供的API以可编程的方式进行控制,这样可以消除大量手工配置(无需管理员登录到每一台设备上进行配置),从而大大增加了网络灵活性和可视性,提高了部署和维护效率。
我们来解析一个SDN的应用案例:一个对外提供服务的托管数据中心,需要增加一个租户,并为这个租户增加一台新的虚拟机。在SDN环境中,只要管理员将其属性定义好,管理平台就可以自动按照其所需资源进行配置——申请多少内存,申请多大容量的存储空间,虚拟网络和物理网络的路由策略、安全策略、负载均衡策略,都是自动完成的。而这一切的配置都可以通过SDN控制器自动发布到各个设备中。这样一来,一个业务上线的时间,可能由10小时缩短为10分钟——如果没有SDN,网络管理员、服务器管理员和存储管理员必须通力合作,在不同的网络设备、服务器虚拟化软件、存储设备上进行逐步配置和资源分配,而且中间还可能会产生错误配置。这也解决了我们之前提到的网络资源无法实现按需自助式服务的问题。
此外,SDN还可以更细颗粒度地进行流量优化。Nicira创始人、SDN的提出者卡萨多先生曾经用一个生动的比喻形容数据中心内部的流量:小股数据流构成的突发流量称为“老鼠流”,持久且负载较高的稳定流量则称为“大象流”。对于数据中心中大多数流量的性能问题,我们都可以将其视为大象踩着老鼠前进的状况,而从用户的角度看,就是持久稳定的流量挤占了小股突发流量的资源。而在SDN的帮助下,系统可以对流量进行智能识别。换句话说,基于SDN的网络系统会辨认出其是否属于大象流,并对这些流量加以优化、标记、识别,确保它不会踩着老鼠前进,这样就达到了大象流和老鼠流的共存。这是因为在SDN架构中,控制器可以知晓全网的拓扑和健康状况。
SDN的引入还能防止厂商锁定。只要设备支持SDN,支持可编程,那么系统管理员就可以通过南向接口和北向接口,通过控制器对设备进行控制,改变转发行为。这也是Google、Facebook在其内部数据中心大力推进SDN的原因之一。厂商锁定问题不仅带来成本问题(尤其是大型数据中心网络),还会受其创新能力、私有协议的限制,带来扩展性和维护方面的问题。而有了SDN后,网络管理员需要学习的知识大大减少——异构设备、私有协议等都大大减少了,只要SDN控制器的界面足够友好和美观即可。就算SDN控制器的界面操作性一般,如果网络管理员的编程能力强,部署和运维也就不是问题。当然,真正解决了厂商锁定的问题之后,可能会导致白牌交换机大行其道,这显然是网络硬件厂商不愿意看到的。
理论上,越是复杂的网络越适用SDN架构。在当前的大型复杂数据中心中,如果现有网络问题到了非解决不可的时候,也就是SDN发挥其用武之地的时候。
由于各个设备和软件厂家、各个大专院校和研究机构对一项技术有不同的理解,这就需要成立一个组织去推动这项技术的发展,如推动网络协议标准制定的IEEE和IETF。按常理来说,一项技术只应由一个标准组织去推动,这样才可以集中力量将其标准化,但是事与愿违——不同的厂家和科研机构有不同的见解和利益关系,这就产生了分歧,导致出现了多个组织去推动某一项技术的发展,SDN也不例外。
此外,各大IT厂商由于在产品线、功能和特性上的差异,因此它们看待SDN的角度也不尽相同,应对SDN浪潮的手段也不同。
目前,SDN领域最具影响力的组织就是ONF(Open Networking Foundation)了。它由Google、Facebook、Microsoft等公司共同发起(这些发起者都不是网络设备制造商),成立于2011年,是最早着手定义并希望推动SDN标准化的非盈利组织,其科研和活动经费来自于会员公司的赞助和年费。该组织成立至今已有近5年时间,其主要工作成果就是制定了OpenFlow、OF-Config版本的标准。该组织也是全球范围内各个厂商间SDN互通互联测试的组织人和协调人,并定期组织学术研讨会。
在SDN被提出后的很长一段时间,ONF都是唯一的标准化组织,但是2013年4月,18家IT厂商联合推动了ODL(Open DayLight)的成立。这18家厂商是Brocade、Cisco、Citrix、Ericsson、IBM、Juniper、Red Hat、Microsoft、NEC、VMware、Arista Networks、Fujitsu、HP、Intel、PlumGrid、Nuage Networks、Dell与Big Switch(后退出)。这18家公司绝大部分是IT行业内的巨头,多为网络设备制造商,它们不满ONF制定的游戏规则,另起炉灶。
表1.1比较了ONF和ODL这两个组织的异同。
表1.1 ONF和ODL的比较
ONF(Open Networking Foundation) |
ODL(Open DayLight) |
|
发起者 | Google、Facebook、Microsoft | Big Switch、Brocade、Cisco、Citrix、 Ericsson、IBM、Juniper、RedHat、 Microsoft、NEC、VMware、Arista Networks、Fujitsu、HP、Intel、 PlumGrid、Nuage Networks |
成立时间 | 2011年 | 2013年 |
宗旨 | 制定SDN标准,推动SDN产业化 | 打造统一开放的SDN平台,推动SDN产业化 |
工作重点 | 制定唯一的南向接口标准OpenFlow,制定硬件转发行为标准 | 不制定任何标准,而是打造一个SDN系统平台,利用现有一些技术标准作为南向接口 |
与OpenFlow的关系 | OpenFlow是其唯一的南向接口标准 | OpenFlow是其南向接口标准中的一个 |
北向接口 | 目前没有做任何北向接口标准化的工作,而且不倾向于标准化北向接口 | 定义了一套北向接口API |
转发平面的工作 | 通过OpenFlow定义转发平面标准行为 | 不涉及任何转发平面工作,对转发平面不做任何假定和设定 |
不难看出,ONF站在网络用户的角度,希望彻底摆脱厂商锁定,希望所有的接口都能被标准化,而硬件也应当是标准化的硬件,可以由标准的OpenFlow协议去管理。但由设备厂商主导的ODL不同,它们希望部分接口被标准化,保证设备厂商的利益,防止白牌交换机侵蚀其市场。
此外,运营商和一些软件公司基于SDN的一些想法,提出NFV(前文有提到)。斯坦福大学、加州大学伯克利分校联合了一些IT公司,建立了开放网络研究中心(Open Networking Reserch Center,ONRC)。IEEE、IETF这两个网络界的龙头组织也有一些想法,由于不是本书重点,在这里不多赘述。
尽管网络设备制造商联合发起了ODL组织,但是它们并没有抛弃ONF。换句话说,由于OpenFlow巨大的影响力,网络设备厂商还没有牛到能完全另起炉灶的程度。Google、Facebook旗帜鲜明地站在ONF这边,没有加入ODL。Amazon是个特例,它既没加入ONF,也没加入ODL,而是封闭式地发展自己的AWS(Amazon Web Service)。而那些耳熟能详的网络设备制造商或软件公司,如Brocade、Cisco、Citrix、Juniper、IBM、NEC、VMware、Arista Networks、Dell、Alcatel-Lucent、H3C、华为,都既是ONF会员,也是ODL的黄金/白银会员。这些厂商都开放了自己物理或虚拟网络设备的接口,可以将自己的设备交给SDN控制器管理。然而,这些IT厂商也都会在自己的交换机中加入有自己特色的东西,否则自己的设备岂不是任由其他厂家摆布,任由别人的控制器来定义了吗?因此,这些IT巨头们有些靠自己研发,有些靠并购,希望在SDN浪潮下不至于被竞争对手落下。它们大多使用Hybrid模式,而非纯OpenFlow的方法来实现SDN。对于自己设备的可编程接口,除了支持OpenFlow外,还加入了JSON API、XMPP、Phyton API等。在芯片方面,它们有些使用商用芯片,有些混合使用商用芯片和自研芯片。而这些内部研发和并购中,又以VMware收购Nicira和Cisco收购Insieme最为重磅——VMware收购Nicira后推出的NSX解决方案、Cisco收购Insieme后推出的ACI解决方案,都是将SDN和近年兴起的网络虚拟化技术完美融合在了一起。而Microsoft作为史上最成功的IT公司之一,自然不甘落后,Hyper-V在Windows Server 2012版本中也增加了基于其自主研发的NVGRE协议的网络虚拟化功能。但Microsoft并没有特别强调SDN,且刻意淡化OpenFlow(虽然它们是ONF的发起者和核心会员,且加入了ODL)。此外,Juniper收购SDN初创公司Contrail后也推出了同名的Contrail解决方案。这些不同厂商之间的解决方案的比较,会在下一章详细分析。
前文已经提到,网络虚拟化是云计算和SDN发展到一定阶段的产物,因此可以认为网络虚拟化是新一代的SDN。而云计算又是随着服务器虚拟化技术飞速发展而诞生的。因此,我们从介绍服务器虚拟化技术开始,引入网络虚拟化技术。
早期的网络虚拟化与现在的网络虚拟化在架构上有很多的不同,这会在本节中进行介绍,以使得读者在后续章节更好地理解VMware NSX网络虚拟化技术。
近年来,服务器虚拟化技术被炒得火热,也日趋成熟。它是伴随着x86计算机性能飞速发展的产物——CPU的处理能力越来越强,内存容量越来越大,如果一台x86服务器只安装一个操作系统、一个应用,就会产生大量闲置资源。于是有人就在考虑一个问题:为什么一台服务器里不能运行多套操作系统,同时使用多个应用呢?这样CPU和内存的闲置资源是不是就能得到有效利用了吗?终于在1999年,成立不到一年的VMware公司推出了业界第一套x86计算机的虚拟化软件,多操作系统可以安装在一台基于x86的PC或服务器里。之后,该软件还内建了对网络的支持,同一台物理服务器里的不同虚拟机可以在物理服务器内部进行通信,而不需要经过外部网络(当然在当时这个功能需要虚拟机同属一个IP子网)。2003年,存储巨头EMC公司斥资6.35亿美金,收购了成立仅5年的虚拟化软件初创公司VMware,这桩收购在后来被很多人认为是IT史上的最佳收购,没有之一——之后的十多年,VMware的市值翻了几乎100倍,成为了领航服务器虚拟化行业的公司。
为什么服务器虚拟化技术如此吃香?随着IT行业的发展,人们需要随时接入互联网,使用互联网上的各种应用,应用需求就会因此一直增长。如果新的应用通过安装在物理服务器上来实现,以现在的应用需求量来看,IT管理员可能根本无法忍受服务器的采购流程和上架安装时间,因此企业在需要增加应用时,希望通过虚拟化的方式进行便捷地扩展。另外,如果需要实现物理服务器的冗余,需要通过1:1的方式,即每个应用都安装在两台服务器里,服务器购买量与不做冗余的情况相比,增加了一倍,由此增加的成本可想而知。而使用了虚拟化,可以使用N+1的方式实现冗余,即多台物理服务器共享1台备用服务器,在出现故障时进行迅速在线迁移。这种迁移过程也是可动态资源分配的,实现了服务器的负载均衡。除此之外,通过虚拟化,不仅实现了之前提到的服务器闲置资源的高效利用,还节省了机房面积、制冷成本、用电成本,符合每个国家都在推行的绿色环保和可持续发展战略。
除了VMware外,Microsoft公司和Citrix公司在2008年也开始推出自己的虚拟化平台。其中Microsoft公司的Hyper-V解决方案,是Windows Server的一个新功能——底层安装了Windows Server后,可以在此之上开启虚拟机,跨物理服务器的虚拟机也可以被统一管理,有一致的安全和在线迁移策略(Microsoft的公有云Azure也是基于Hyper-V搭建的);Citrix公司的服务器虚拟化方案叫做XenServer,它通过收购剑桥大学开发的Xen开源系统并进行了再开发,主要用于其桌面虚拟化和应用虚拟化产品的底层系统。亚马逊的公有云服务AWS也是基于这个开源的Xen系统搭建的。此外使用较多的还有Red Hat公司主导的KVM开源虚拟机系统。
服务器虚拟化的飞速发展,让人们开始有了遐想空间——我们能否把网络也做成虚拟的,让一套物理网络承载多套逻辑网络,并可以通过编程的方式快速部署网络,解决数据中心仍然存在的问题(如自动化部署和运维问题、规模问题、流量不优问题、成本问题),且能将解决方案完美融合到现在的多租户数据中心环境中?
现今的网络虚拟化技术(特指基于主机Overlay的网络虚拟化技术)之所以会兴起,是因为现今的数据中心架构中存在三个问题。随着服务器虚拟化的飞速发展,网络虚拟化也被提出,用来解决数据中心存在的这些问题。
虚拟机迁移范围受到网络架构限制——网络的复杂性
服务器虚拟化的发展催生了一种叫做“虚拟机迁移”的技术,这在数据中心实现动态资源分配和高可用性时尤为重要。如果虚拟机从一个物理机上迁移到另一个物理机上,要求虚拟机不间断业务,则需要其IP地址、MAC地址等参数保持不变,这就要求数据中心网络是一个二层网络(这个限制直到VMware公司于2015年年初发布vSphere 6.0版本之后才被消除,但二层交换仍然会比三层路由效率高),且要求网络本身具备多路径的冗余和可靠性——各大网络厂家在提的“大二层”技术,其实主要都是为虚拟机迁移和存储的备份复制服务的。传统的生成树(Spaning Tree Protocol,STP)技术部署繁琐,且协议复杂,网络规模不宜过大,它限制了网络在虚拟化环境中的扩展性——一旦规模大了,生成树就很难控制,就会产生环路等网络问题,甚至导致整网瘫痪。基于各厂家私有的IRF/VPC等技术,虽然可以消除生成树,简化拓扑,具备高可靠性,但是灵活性上有所欠缺,只适合构建小规模网络。而为了适应大规模网络扩展而推出的TRILL/SPB/FabricPath等技术,虽然解决了上述技术的不足,但网络中的设备均要软硬件升级来支持此类新技术,这带来部署成本的上升,且该技术也没有解决下面会提到的两个问题,即MAC和VLAN的限制问题。
虚拟机规模受网络规格限制——网络备MAC地址表数量级不够
在大二层网络环境下,数据流都需要通过明确的网络寻址以保证准确到达目的地,因此网络设备的二层地址表项大小(即MAC地址表),成为决定了云计算环境下的虚拟机的规模上限。而且这个二层地址表项并非百分之百有效,这使得可用的虚拟机数量进一步降低。特别是对于低成本的接入交换机设备而言,因其表项一般规格较小,更加限制了整个数据中心中的虚拟机数量——如果接入交换机的地址表项设计为与核心设备在同一档次,则又会提升网络构建的成本。减小接入设备压力的做法可以是分离网关,如采用多个网关来分担虚拟机的终结和承载,但这样也会带来成本的上升——核心或网关设备是不是要多购买一些?
网络隔离/分离能力限制——网络设备的VLAN数量不够
当前的主流的网络隔离技术为VLAN,它在大规模虚拟化环境中部署会有两大限制:一是VLAN数量在标准定义中只有12个比特,即可用的数量为4000个左右(精确数量为4096,但由于有一些保留VLAN不能使用,姑且称之为4000左右),这样的数量级对于公有云或大型云计算的应用而言是远远不够的——其VLAN数量会轻而易举地突破4000;二是VLAN技术当前为静态配置型技术,这样一来在整个数据中心网络中,几乎所有VLAN都会被允许通过(核心设备更是如此),任何一个VLAN下的目的未知的广播数据包都可能会在整网泛洪,非常消耗网络交换能力和带宽。
对于小规模的云计算虚拟化环境,现有的网络技术如虚拟机感知(VEPA/802.1Qbg)、数据中心二层网络扩展(TRILL/SPB/FabricPath)、数据中心间二层技术(EVI/OTV)等,可以很好地满足业务需求,上述限制可能不会成为瓶颈。然而,这些技术完全依赖于物理网络设备本身的技术改良,目前来看并不能完全解决大规模云计算环境下的问题,在一定程度上还需要更大范围的二层技术革新来消除这些限制,以满足云计算环境的网络需求。在这样的趋势下,网络虚拟化架构开始浮出水面,它基于的是一种叫做Overlay的技术。
Overlay指的是一种在网络上叠加网络的虚拟化技术,其名字是根据底层物理网络层Underlay而取的,其大体框架是对基础网络架构不进行大规模修改的情况下,实现应用在网络上的承载,并能与其他网络业务分离。这种模式其实是对传统技术的优化而被提出的——行业内早期就有了支持Overlay的技术,如RFC 3378(EtherIP:Tunneling Ethernet Frames in IP Datagrams)就是早期的在IP网络之上运行的二层Overlay技术。后来,H3C与Cisco都在物理网络的基础上发展了各自的私有二层Overlay技术——EVI(Ethernet Virtual Interconnection)与OTV(Overlay Transport Virtualization)。EVI与OTV都主要用于解决数据中心之间的二层互联与业务扩展问题,对于承载网络的基本要求是IP可达,而且在部署上相当简单且扩展方便。但是,它们仍旧没有解决前文所说的大型数据中心的三个问题。
图1.7很好地阐述了Overlay的工作机制——Overlay以服务的形式,运行在底层物理网络之上,设备到设备间的访问无需关心物理路径。这也有利于数据中心的二层链路的建立。它非常像VPN的工作机制,即通过封装使得特定流量在隧道中进行通信。这种工作机制是通过物理网络设备完成的隧道封装来实现的。
随着云计算和虚拟化技术的发展,基于主机虚拟化的Overlay技术开始出现,我们可以在服务器Hypervisor内的虚拟交换机上支持基于IP的二层Overlay技术,从更靠近应用的地方来提供网络虚拟化服务,其目的是使虚拟机的部署与应用承载脱离物理网络的限制,使云计算架构下的网络形态不断完善,虚拟机的二层通信可以直接在Overlay之上承载。因此,Overlay可以构建在数据中心内,也可以跨越数据中心进行构建,异地数据中心的二层问题迎刃而解。
图1.7 Overlay的工作机制
现在,Overlay也支持从主机到物理网络的模式,即从虚拟交换机到物理交换机的Overlay。三种Overlay的部署模型如图1.8所示。
图1.8 基于物理网络、主机和混合模式的Overlay
2008年,Cisco公司和VMware公司联合开发了一款虚拟交换机——Nexus 1000v系列,它在VMware虚拟交换机的基础上,增加了很多网络功能,如安全功能、更强的QoS和可视化,可以与物理网络(Nexus交换机)实现一致的策略和统一的命令行配置,使得网络管理员可以有效地管理基于虚拟机的网络,并统一管理物理网络。后来,两家公司联合研发了VXLAN协议,并将运用在vSphere分布式交换机(VDS)和Nexus 1000v之上,这使得用户可以在不同虚拟机之间建立隧道,在一套物理网络中构建多拓扑的虚拟网络。这就是最早的基于主机虚拟化的Overlay。
这种基于主机虚拟化的Overlay的出现解决了以下问题。
虚拟机迁移范围受到网络架构限制
Overlay是一种IP报文封装技术,具备大规模扩展能力,对设备本身没有特殊要求。而且网络本身具备很强的故障自愈能力、负载均衡能力。采用Overlay技术后,企业部署的现有网络便可用于支撑新的云计算业务,而且改造难度也较低。
虚拟机规模受到网络规格限制
虚拟机的IP数据包在封装之后,对网络只表现为封装后的网络参数,即隧道端点的地址。因此,对于承载网络(特别是接入交换机)而言,MAC地址规格的需求就极大降低了,当然,对于核心设备表项(MAC/ARP)的要求依然较高。当前的解决方案仍然是采用分散方式,通过多个核心设备来分担表项的处理压力。
网络隔离/分离能力限制
针对VLAN数量约4000的限制,Overlay技术中引入了类似12比特的VLAN ID的用户标识,并用24比特进行标识,可以支持2的24次方,即千万级以上的VLAN数量。其实在这里很难称这是VLAN数量了,Overlay在这里沿袭了云计算“租户”的概念,将其称之为千万级的Tenant ID(租户标识)数量。针对VLAN技术下网络的Trunk All(所有VLAN穿越所有设备)问题,Overlay对网络的VLAN配置没有要求,可以避免网络本身的无效流量带来的带宽浪费——流量都是经过隧道封装来完成的,无需在端口允许所有VLAN(或租户)通过。同时,Overlay的二层连通基于虚拟机业务需求创建,在云环境中全局可控,可以通过云管理平台观察到全局的健康状况和流量负载。
在很长一段时间内,Nexus 1000v系列交换机是业内唯一一款拥有高级功能的虚拟交换机,因此Nexus 1000v几乎垄断了市场,VMware获得了支持自己虚拟机所需的高级网络功能,Cisco则通过向部署VMware虚拟化平台的用户收取Nexus 1000v license费用来获得利润。这种状况随着Nicira的横空出世而改变——Nicira提出的完整网络虚拟化平台(NVP)逐渐开始为AT&T、eBay、NTT以及Rackspace等IT巨头的数据中心提供虚拟交换平台,它基于SDN理念,将它的NVP网络虚拟化平台做的更好(因为Nicira本身就是SDN的提出者与OpenFlow的发明者),实现了Overlay层面的控制平面、转发平面的分离,带来了真正的新一代SDN和网络虚拟化解决方案。NVP平台使用OpenFlow作为控制协议,有自己的控制器,还有自己的虚拟交换机OVS(Open vSwitch)系统,是SDN和网络虚拟化的完美结合。它在诸多功能上都胜于Nexus 1000v,增加了更多网络虚拟化功能,借助OpenFlow的集中控制和管理,目标直指数据中心的复杂部署问题——它通过向云计算管理平台提供的可编程接口,将数据中心的自动化变为可能,同时将虚拟机部署和运维难度大大简化,效率大幅提高。并且,Nicira通过研发STT这个私有的Overlay技术,也可以实现类似VXLAN的Overlay功能,这个技术还能通过一个伪装的TCP包头,使得服务器网卡对大数据包进行分片,从而有效减轻服务器的CPU负担。这是第一个真正基于SDN的网络虚拟化平台,也是完整的网络虚拟化解决方案架构。之前的纯Overlay技术,无论基于硬件还是基于Nexus 1000v,都不能认为是真正的、完整的网络虚拟化解决方案——控制平面和转发平面没有分离。
当SDN结合了网络虚拟化后, SDN已经发展到了第二阶段,这就是新一代SDN。它与之前的SDN有什么不同呢?因为传统SDN仍然是基于五元组(IP地址,源端口,目的IP地址,目的端口和传输层协议)的TCP/IP协议,这样就意味着一个问题——改变了IP或端口,就改变了一切。因此,传统SDN并没有完全消除网络的复杂性,它只是把复杂性集中了起来。在当前数据中心内部,虚拟机会因为高可用性或动态资源分配而迁移,在迁移过后,IP地址和端口都可能发生变化,这就意味着传统SDN控制器要做的策略非常复杂,这些策略包括前文提到的为Web前端、最终应用、数据库之间通信配置的各种策略。要实现真正的自动化,必须使用网络虚拟化,在数据中心内部消除五元组的TCP/IP协议,打通大二层网络,通过MAC地址进行源目地址的寻址工作。因此,SDN和网络虚拟化这二者的结合,即新一代SDN才是未来自动化数据中心的趋势。
Nicira提出的这个架构引起了业内的强烈震荡,也引来了很多融资,后来各大IT巨头都希望斥资收购这家初创公司,尤其是Cisco和VMware——Cisco希望把Nicira的NVP平台融入自己的Nexus 1000v系统,做到真正的基于SDN的网络虚拟化;而VMware认为自己是服务器虚拟化行业的领头羊,一旦收购Nicira,就可以抢占并不成熟的网络虚拟化市场,这样一来,它们的服务器虚拟化平台之上就不用再部署Nexus 1000v,而且可以和其他的网络供应商实现更好的融合方案。VMware认为自己的服务器虚拟化解决方案已非常成熟,一旦将服务器虚拟化和网络虚拟化解决方案进行整合,就可以抢占下一代自动化数据中心(SDDC)的市场。
最终,VMware笑到了最后。2012年7月,它们收购了Nicira。2013年,VMware在整合了自己的服务器虚拟化产品、云管理平台和前文提到的Nicira NVP平台后,推出了完整的网络虚拟化解决方案,即NSX解决方案,这意味着VMware和Cisco的合作基本告一段落。Cisco无奈在Nexus 1000v中逐渐加入了对Microsoft Hyper-V和KVM的支持,并于2013年年底发布了ACI解决方案。而Microsoft和其他一些厂商也不甘示弱。一场围绕着网络虚拟化的战争打响了。
VMware收购Nicira之后推出了融合SDN和网络虚拟化的解决方案,即NSX。
网络虚拟化技术诞生后,有不少厂商都推出了所谓的网络虚拟化解决方案。这些厂商实现“网络虚拟化”的方式各异,有些是自己研发的项目,有些是通过收购,有些是利用开源项目进行再开发。而VMware NSX网络虚拟化平台的基本架构到底是怎样的,它与别的厂家有哪些不同?这些问题会在本章进行探讨。
尽管VMware NSX网络虚拟化平台是通过收购Nicira而获得的,但是在收购一年多时间之后,NSX才正式发布。在这一年多时间里,VMware的研发人员与前Nicira的极客们一起通力合作,将VMware服务器虚拟化平台与Nicira网络虚拟化平台进行了融合,我们现在会发现NSX架构和技术细节(尤其是用于vSphere平台的NSX-V),其实与早期的Nicira NVP平台还是有很大区别,它增加了很多VMware的基因在里面。
本节在介绍VMware NSX的一些功能和特性之前,还简单介绍了虚拟化技术以及VMware公司诞生和发展的历史,这些都是值得去了解的故事。
IT行业已经直接从服务器虚拟化中获得了显著好处。服务器虚拟化解决方案降低了物理硬件的复杂性,提高了运营效率,带来了更好的安全性和冗余性,并且能够动态地重新调整底层资源的用途,以便以最佳方式快速满足日益动态化的业务应用需求。除此之外,服务器虚拟化还能节省机房空间,节省用电和制冷成本。
VMware NSX网络虚拟化技术与VMware一直致力推动的服务器虚拟化技术,究竟有什么联系,有哪些类似的地方?读者可以在这一节找到答案。本节会介绍NSX基本架构和基本组件。
介绍VMware网络虚拟化之前,不得不先提VMware服务器虚拟化的发展历史和一些功能特性,因为NSX的很多设计思路和理念,都像极了已经深入人心的服务器虚拟化解决方案。有很多读者可能近几年才接触到服务器虚拟化,其实早在1959年,计算机科学家克里斯托弗· 斯特雷奇(Christopher Strachey)就发表了一篇名为Time Sharing in Large Fast Computers(大型高速计算机中的时间共享)的学术报告。在该报告中,他第一次提出了虚拟化的概念,即使用“时间共享”技术,使多操作系统可以运行在一台计算机之上。但是在当时,他的思想太超前了,计算机也完全没有普及,实现其想法也就困难重重。在相当长的时间内,虚拟化只能作为一个概念存在于新兴的计算机学世界里。
随着科技的发展,大型机出现了,但是它的价格非常昂贵,如何有效利用之成了一个难题。伟大的IT公司IBM基于斯特雷奇的理论,开发了最早的虚拟机技术,允许在一台IBM大型机上运行多个操作系统,让用户尽可能地充分利用和共享昂贵的大型机资源。
20世纪七、八十年代,虚拟化技术进入低谷期——因为随着大规模集成电路的出现,计算机硬件变得越来越便宜,需要增加操作系统时,人们往往选择再购买一台计算机。当初为了共享昂贵的大型机资源而设计的虚拟化技术就无人问津了。
虚拟化技术在20世纪90年代末期迎来复兴。随着x86计算机的普及、CPU的处理能力越来越强、内存容量越来越大,新的基于x86平台的虚拟化技术诞生了,其主要目的是充分利用x86计算机的闲置资源。1998年成立的VMware公司于1999年最早正式发布了基于x86计算机的虚拟化软件,虽然VMware虚拟化技术在刚刚推出时并没有引起轰动,但是为之后的IT变革埋下了伏笔——基于x86计算机的虚拟化技术的飞速发展,使得计算资源可以实现池化,进而催生了之后的云计算。
1997年,斯坦福大学的蒙德尔·罗森布洛姆(Mendel Rosenblum)、艾德瓦德·巴格宁(Edouard Bugnion)和斯科特·迪瓦恩(Scott Devine)三人,在ACM SOSP(Symposium on Operating Systems Principles,计算机操作系统研究领域的旗舰会议)上发表了著名论文Disco: Running Commodity Operating Systems on Scalable Multiprocessors。Disco其实就是他们在斯坦福大学里的一项科研课题,即在x86计算机之上同时运行多个多操作系统,这也是现代虚拟化技术的开山之作。一年之后,罗森布洛姆在加州大学伯克利分校求学时相识的妻子戴安娜·格林(Diane Greene)也加入了他们的团队(夫妇俩的照片见图2.1),加上一名华裔青年爱德华·王(Edward Wang),他们五人在美国加州的Palo Alto市创立了这家之后在IT界扬名立万的VMware公司。VMware公司的名字是Virtual Machine Software的缩写,公司名字彰显了它从成立之初就一直在坚持的事情——致力于推动虚拟机软件的发展。如今,罗森布洛姆夫妇分别是斯坦福大学教授和Google董事会成员。值得一提的是,巴格宁后来还成为了Cisco UCS之父。
图2.1 戴安娜·格林与蒙德尔·罗森布洛姆
1999年5月,具有划时代意义的VMware Workstation产品被这群具有创新精神的年轻人研发出来了。这是业内第一款基于x86平台的虚拟化软件,它允许在一台x86计算机上同时运行多个操作系统,安装环境是Windows 98/NT 4.0。2001年,专门用于x86服务器的虚拟化软件VMware ESX Server正式发布,它无需Windows操作系统,而是直接运行在计算机底层。ESX(现在叫做ESXi)这个一直沿用到今天的VMware服务器虚拟化软件内核程序(Hypervisor),是当时VMware实验室里的研发代号Elastic Sky X的缩写。2003年,vCenter发布,它允许多台物理计算机上的所有虚拟机被同一个集中式的管理平面来管理,且可以利用同时发布的vMotion技术在不同物理机之间实现迁移。2004年,这家成立不到6年的年轻公司,被存储巨头EMC公司斥资6.35亿美金收购。今天,VMware的市值较EMC收购时翻了近100倍,有人不禁感慨:如果晚几年再卖掉,能卖多少钱?如果不卖,现在的VMware又可能是什么样子?
在VMware被EMC收购后,EMC并没有将其并入自己的一个业务部门,或融入自己的产品和解决方案中,而是任由其独立发展,其目的可能是为了2007年的VMware拆分上市——一旦并入EMC的一个部门中,就无法上市了。就结果而言,VMware因为独立发展,势头非常良好。随着CPU和内存的能力不断提升、应用越来越多,市场对虚拟化的需求量也越来越大——企业自然不希望闲置的CPU和内存不能被有效利用,而且通过购买更少的服务器,安装虚拟化软件,还能有效节省物理服务器的采购成本,节省机房空间、用电和制冷成本。VMware将自己的虚拟化软件以每个物理CPU需要一个license的形式卖给客户,从中取了利润,加上上市和融资,VMware有了更多资金,可以不断完善自己解决方案中的功能。
2008年,Microsoft公司和Citrix公司也开始推出自己的虚拟化软件,其中Citrix公司通过收购得到了开源的Xen虚拟化系统的核心技术,而另外一款基于开源代码的KVM虚拟化系统也开始兴起。服务器虚拟化技术蓬勃发展,理念已深入人心,越来越多的企业近几年运用各种虚拟化解决方案来实现P2V,即将物理服务器迁移至虚拟化环境。
有竞争对手的市场总比垄断要好,竞争促使VMware公司研发新的解决方案。如今,VMware不断更新服务器虚拟化的功能,在vSphere 5.5版本中,VMware加入了存储的DRS和存储的I/O控制等功能;在vSphere 6.0版本发布之后,跨越vCenter的vMotion、长距离vMotion的功能实现,FT也突破了一个vCPU的限制。此外,最近几年,用来管理云环境的工具的功能也不断完善,加上VSAN和NSX解决方案的提出,都与VMware传统虚拟化解决方案一起成为了VMware SDDC的拼图。VMware公司还有能力通过桌面虚拟化(VDI)技术帮助企业打造虚拟桌面。
VMware vSphere解决方案的底层使用了ESXi(以前叫做ESX)的虚拟机管理程序,它不依赖于任何一个操作系统,可以被安装到本地物理硬盘、外置SAN环境、闪存、USB驱动器等地方,但必须能够直接访问物理服务器的底层,作为物理服务器的Hypervisor,知晓物理服务器所有信息。安装了ESXi程序的物理服务器叫做ESXi主机。图2.2阐述了VMware vSphere的底层体系结构。VMware服务器虚拟化解决方案的核心思想有以下几点。
图2.2 VMware vSphere的底层体系结构
VMware使用了vCenter系统来统一部署和管理安装在跨多个物理服务器上的虚拟机。vCenter系统在一个统一的平台管理多台物理服务器上的虚拟机后,能够实现的其他主要功能如下。
目前最新的VMware vSphere软件已走到了第六代,它有多个版本,分为基础版(Essentials)、基础加强版(Essentials Plus)、标准版(Standard)、企业版(Enterprise)、企业加强版(Enterprise Plus)五种。不同的版本能实现的功能也不同,其价格是随着其版本不同而不同。表2.1所示为每个版本能实现的功能概览。
表2.1 vSphere不同版本的功能比较
Vsphere版本 |
ESXi Hypervisor |
vMotion |
HA |
数据保护 |
vSphere复制 |
存储的 vMotion |
F T |
DRS |
DPM |
存储的 DRS |
分布式交换机 |
---|---|---|---|---|---|---|---|---|---|---|---|
Essentials |
✓ |
|
|
|
|
|
|
|
|
|
|
Essentials Plus |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
|
|
|
|
Standard |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
|
|
Enterprise |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
Enterprise Plus |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
值得注意的是,VMware vSphere试用版本支持所有功能,但是使用期有60天的限制。
此外,可以看到,只有企业加强版(Enterprise Plus)的license才能够支持分布式交换机(VDS),而NSX-V网络虚拟化平台必须建立在分布式交换机之上。因此,搭建NSX-V网络虚拟化平台时,必须确保企业中vSphere的license是企业加强版。但是这个限制在NSX 6.2版本发布之后已经消除——NSX 6.2 licence自带VDS功能,这意味着现在低版本的vSphere同样可以支持NSX-V网络虚拟化环境。
以前的大二层技术一般是在物理网络底层使用IS-IS路由技术,再在此基础之上实现数据中心网络的二层扩展,如公有的TRILL、SPB技术和Cisco私有的OTV、FabricPath技术。前沿一些的网络虚拟化技术使用了VXLAN、NVGRE等协议,突破VLAN和MAC的限制,将数据中心的大二层网络扩展得更大(这些在第1章都做了阐述)。而使用VMware NSX,则更进一步——可以对网络提供与对计算和存储实现的类似的虚拟化功能。就像服务器虚拟化可以通过编程方式创建、删除和还原基于软件的虚拟机以及拍摄其快照一样,在NSX网络虚拟化平台中,也可以对基于软件的虚拟网络实现这些同样的功能。这是一种具有彻底革命性的架构,不仅数据中心能够大大提高系统的敏捷性、可维护性、可扩展性,而且还能大大简化底层物理网络的运营模式。NSX能够部署在任何IP网络上,包括所有的传统网络模型以及任何供应商提供的新一代体系结构,无需对底层网络进行重构,只需要注意将底层物理网络的MTU值设置为1600即可,这是因为VXLAN封装之后的IP报文会增加一个头部。不难看出,VMware NSX的核心思想其实就是将VMware多年致力发展的服务器虚拟化技术移植到了网络架构中,如图2.3所示。
图2.3 服务器虚拟化逻辑架构与网络虚拟化逻辑架构
实现服务器虚拟化后,软件抽象层(服务器虚拟化管理程序Hypervisor)可在软件中重现人们所熟悉的x86物理服务器属性,例如CPU、内存、磁盘、网卡,从而可通过编程方式以任意组合来组装这些属性,只需短短数秒,即可生成一台独一无二的虚拟机。而实现网络虚拟化后,与Hypervisor类似的“网络虚拟化管理程序”可在软件中重现二到七层的整套网络服务,例如交换、路由、访问控制、防火墙、QoS、负载均衡。因此,与服务器虚拟化的理念相同,可以通过编程的方式以任意组合来部署这些服务,只需短短数秒,即可生成独一无二的虚拟网络(逻辑网络)。
除此之外,基于NSX的网络虚拟化方案还能提供更多的功能和优势。例如,就像虚拟机独立于底层x86平台并允许将物理服务器视为计算容量池一样,虚拟网络也独立于底层网络硬件平台并允许将物理网络视为可以按需(如按使用量和用途)进行自动服务的传输容量池。对于第1章中提到的业务或应用的激增和激退的情形,数据中心就实现了网络资源的快速分配。与传统体系结构不同,NSX可以通过编程方式调配、更改、存储、删除和还原虚拟网络,而无需重新配置底层物理硬件或改变拓扑。这种革命性的组网方式与企业已经非常熟悉的服务器虚拟化解决方案有着异曲同工之妙。
由于使用了NSX解决方案后的逻辑网络架构产生了质的变化,以NSX网络平台搭建的数据中心最终达到的效果就是:无论系统规模多大,无论物理服务器、虚拟机有多少台,无论底层网络多么复杂,无论多站点数据中心跨越多少地域,在NSX网络虚拟化解决方案的帮助下,对于IT管理人员和用户来说,这些运行在多站点数据中心复杂网络之上的成千上万台的虚拟机,就好像是连接在同一台物理交换机上一样。有了VMware NSX,就有可以部署新一代软件定义的数据中心所需的逻辑网络。
之前讨论过NSX无需关心底层物理网络,那么它是否一定要部署在VMware的虚拟化环境中?答案也是否定的。NSX可以部署在VMware vSphere、KVM、Xen等诸多虚拟化环境中,这也是Nicira NVP平台本来就具备的功能。
NSX网络虚拟化分为vSphere环境下的NSX(NSX-V)和多虚拟化环境下的NSX(NSX-MH)。它们是不同的软件,最新版本(2016年3月3日更新)分别是6.2.2和4.2.5。这点在部署之前就需要了解,以避免错误部署。之后会分别详细讨论这两种不同环境下部署的NSX网络虚拟化平台。
无论使用NSX-V还是NSX-MH,其基本逻辑架构都是相同的,不同点仅体现在安装软件和部署方式、配置界面,以及数据平面中的一些组件上(NSX-V中的虚拟交换机为vSphere分布式交换机,而NSX-MH中的虚拟交换机为OVS)。图2.4是NSX网络虚拟化架构的基本示意图,它分为数据平面、控制平面(这两个平台的分离,与第1章提到的SDN架构完全吻合)、管理平面。其中数据平面中,又分分布式服务(包括逻辑交换机、逻辑路由器、逻辑防火墙)和NSX网关服务。控制平面的主要组件是NSX Controller(还会包含DLR Control VM),而管理平面的主要组件是NSX Manager(还会包含vCenter)。
图2.4 NSX逻辑架构
下面简单说明一下各个组件(后续章节会进行更具体的分析)。
NSX数据平面主要由NSX虚拟交换机组成。虚拟机交换机基于vSphere中的分布式交换机(VDS),或基于非VMware虚拟化环境中的OVS(Open vSwitch)。通过将内核模块(VIB)安装在Hypervisor之上,实现VXLAN、分布式路由、分布式防火墙等服务。
这里的NSX虚拟交换机可以对物理网络进行抽象化处理并直接在Hypervisor层之上提供交换、路由、防火墙功能。这样能获得哪些好处呢?首先,NSX虚拟交换机有了一个统一的配置界面。此外,NSX虚拟交换机利用VXLAN或STT协议实现Overlay功能,在现有物理网络之上创建一个与之解耦的独立虚拟网络,容易部署和维护。而这个虚拟网络和以前我们所熟悉的网络架构并不一样——传统的网络,不同VLAN之间地址是不能重复、冲突的,而运行在Overlay之上的虚拟网络,允许不同租户使用相同的网关或IP地址,同时保持隔离。NSX虚拟交换机连接的虚拟机是独立于虚拟网络的,并且就像连接到物理网络一样运行,新创建的虚拟交换机可以有效进行配置备份和还原,而它在连接虚拟机时还能实现QoS和链路聚合等诸多功能。NSX虚拟交换机还有利于实现大规模扩展,而端口镜像、NetFlow、网络运行状况检查等多种功能可以在虚拟网络内进行全面的流量管理、监控和故障排除。
数据平面还包含边界网关设备,它可以作为虚拟网络和物理网络进行通信的网关。这种设备通常是NSX Edge(NSX-V中)或二/三层网关(NSX-MH中),它以虚拟服务的形式注册到NSX Manager,在虚拟网络与外界通信时,VXLAN到VLAN的转换无论发生在二层网络(桥接时)还是三层网络(路由),都可以由边界网关来进行处理。Edge、二/三层网关除了处理南北向流量外,也提供了类似NFV的一些功能,如实现NAT、VPN、负载均衡等。
NSX控制平面中的主要组件是NSX Controller。它仍然是以虚拟机的形式安装,并以虚拟服务的形式与NSX Manager集成。NSX Controller在虚拟网络内部,可以看作是数据平面的控制单元。它与数据平面之间不会有任何数据流量的传递,只会将信令发布给数据平面,再由数据平面进行工作。因此NSX Controller发生任何故障都不会对数据平面的流量造成影响(其实这种故障也不常见,因为NSX Controller一般都是冗余部署的)。而对外(物理网络),NSX Controller可以使用OVSDB和OpenFlow协议,作为物理网络的SDN控制器,但是VMware尚未针对这个功能提供官方的图形化配置界面,因此要实现这个功能,需要开发人员在API之上通过编程来实现。目前Arista Networks和Brocade两家物理硬件网络厂商的研发人员通过再开发,实现了其网络设备可以交由NSX Controller控制。
除了NSX Controller,控制平面中的其他组件还包括DLR Controller VM,用来处理三层路由协议的控制。
NSX管理平面中的主要组件是NSX Manager,可以通过NSX Manager提供的Web界面配置和管理整个NSX网络虚拟化环境的所有组件。NSX Manager提供的REST API可以为VMware高级云管理平台或第三方云管理平台(CMS/CMP)提供接口。OpenStack同样可以在这里与NSX Manager集成,使得NSX与OpenStack实现融合。
有了这些组件,我们不难看出,NSX可以提供如下网络服务(见图2.5)。
图2.5 NSX网络虚拟化平台能够提供的服务
有了NSX网络虚拟化解决方案,VMware进一步完善了软件定义数据中心(Software Defined Data Center,SDDC)解决方案,即在数据中心中同时满足软件定义网络、软件定义计算、软件定义存储,并实现应用交付的自动化、新旧应用的快速创建和删除,如图2.6所示。SDDC解决方案的核心是让客户以更小的代价来获得更灵活的、快速的业务部署、运维和管理。
图2.6 VMware的完整SDDC解决方案架构
SDDC是相对于传统的硬件定义数据中心(HDDC)提出的。由于没有任何一家IT厂商可以提供底层网络、存储、x86服务器平台与虚拟化软件的全套产品,对不同厂商的产品,也没有一个统一的管理界面,因此传统的HDDC解决方案的效率比较差——IT管理人员需要一一登录到不同设备中进行特殊的、差异化的配置。这样的模式不仅部署和运维的效率较低,而且根本无法实现自动化。而SDDC的核心理念就是通过一套单一的数据中心管理软件,可以在任何x86平台、存储平台、网络平台之上,实现高效地部署和运维,最终实现数据中心自动化。
尽管VMware并不生产物理硬件,但对于数据中心的底层功能而言,其在SDDC拥有全套解决方案——软件定义网络(NSX)、软件定义计算(vSphere)、软件定义存储(VSAN)。该解决方案无需绑定任何物理硬件厂商设备,即可实现数据中心自动化。VMware还有针对SDDC统一部署和管理的云管理平台。
NSX网络虚拟化平台,适用于所有不同类型的行业中的各种客户。
一句话总结NSX网络虚拟化平台的应用场景:当企业的网络需要实现高灵活性、高安全性、自动化和业务连续性的时候,NSX网络虚拟化平台就是极佳的解决方案。这些技术的实现方法,在本书都会有详细阐述。
目前,市面上除了VMware外,Cisco和Microsoft等公司都能提供网络虚拟化解决方案。在介绍其网络虚拟化解决方案并进行对比之前,需要先讨论一下现在的网络虚拟化使用的Overlay技术分为哪几种。经各大厂商努力,已经有三种Overlay技术成形,即VXLAN、NVGRE、STT。
首先讨论VXLAN。VXLAN是Virtal Extensible LAN(虚拟可扩展局域网)的缩写。它是为了解决前文提到的数据中心的三个问题,由Cisco、VMware、Broadcom这几家行业内的巨头,外加快速窜红的新兴网络设备公司Arista Networks联合向IETF提出的。它能将通过OTV、TRILL、FabricPath等技术实现的二层网络扩展得更大。
VXLAN的核心技术理念是对现有标签技术进行彻底的改变,以优化VLAN的缺陷。其实Cisco之前提出的OTV协议已经使用了类似的技术——通过隧道机制,在使用了IS-IS协议的三层网络之上,叠加一个二层的虚拟网络,从而绕过VLAN标签的限制。而VXLAN则更进一步,它是将以太网报文封装在UDP传输层上的一种隧道转发模式。
VXLAN定义了一个名为VTEP(VXLAN Tunnel End Point,VXLAN隧道终结点)的实体。VTEP对数据包的封装可以在虚拟交换机上完成,也可以在物理交换机上完成。它会将数据在出服务器(主要是虚拟机,其实也可以是物理服务器)时封装到UDP中再发送到网络,在传输过程中这台服务器的MAC地址、IP地址、VLAN信息等,都不会再作为转发依据。如果VTEP功能直接集成到虚拟机的Hypervisor内,那么所有虚拟机流量在进入物理交换机之前,就可以在虚拟交换机所在的Hypervisor之上打上VXLAN标签和UDP包头,相当于在任意两点间建立了隧道。因此,VXLAN技术更适合虚拟化环境,且更应该把VTEP功能集成到服务器的虚拟交换系统内——如果VTEP在物理交换机上实现,那么物理交换机与虚拟交换机通信时,需要执行一次VXLAN-VLAN的转换,这样效率并不高。
由于虚拟机本身的VLAN信息对外已不可见,VXLAN添加了一个新的标签VNI(VXLAN Network Identifier,VXLAN标识符)。VNI取代VLAN用来标识VXLAN的网段,只有拥有相同的VNI,即在同一个VXLAN里的虚拟机才能实现二层通信,它类似于VLAN ID的作用。VNI是一个24比特的二进制标识符,把VLAN的4096(2的12次方)做了一个级数级别的扩展,达到了16777216(2的24次方)个网段,就目前超大规模数据中心而言,暂时是绰绰有余了。
新的UDP包头意味着VNI有新的帧结构。VTEP收到数据包时,会在这个数据包上增加4个部分,以形成新的帧头。如图2.7所示,这个新的帧头从内而外分别是VXLAN头部、UDP头部、外部三层IP头部、外部二层MAC头部。
图2.7 VXLAN帧结构
VXLAN头部的作用是携带VTEP分配的VNI标识符。UDP头部是一个标准的UDP头部,包含了源目端口号,其中源端口号是VXLAN通过将原始以太网数据头部(MAC、IP、四层端口号等)进行哈希后得出的值,这样就能提供更好的负载均衡、更好的等价多路径;而目的端口尚未从IANA申请固定端口号。外部三层IP头部已不再是虚拟机的通信地址,而是隧道两端VTEP的通信地址——如果虚拟机的Hypervisor直接承担VTEP的工作,那么这个地址就是两台服务器的物理网卡IP地址。外部二层MAC头部与虚拟机原本自带的MAC地址已经没有任何关系了。
有了新的帧头,VTEP就可以依照VNI来决定流量走向,在整网的物理交换环境内完成数据转发。转发过程中,新的包头只有到达了目的地才会被对端的VTEP终结掉,这就意味着,VXLAN数据包在转发过程中保持了内部数据的完整性。这种数据转发机制叫做隧道机制——即链路两端有一对用于隧道封装的设备,类似IPSec VPN,其好处是可以减少对现网拓扑的改动,且方便网络在改动时实现快速收敛。
介绍完了VXLAN,再来讨论NVGRE。NVGRE是Network Virtualization using Generic Routing Encapsulation的缩写,是将以太网报文封装在GRE内的一种隧道转发模式,最初由Microsoft提出,并联合了Intel、HP、DELL等公司,向IETF提出。其实与VXLAN相比,它除了将MAC封装在GRE内(与VXLAN将MAC封装在UDP内不同)外,其他功能几乎完全相同。比如,NVGRE定义了一个类似VNI的TNI(Tenant Network Identifier),长度同样是24比特,同样可以扩展到16777216(2的24次方)个网段(NVGRE里面叫做租户)。
硬说两者有什么区别的话,就是VXLAN新的UDP头部中包含了对原始二层帧头的哈希结果,容易实现基于等价多路径的负载均衡,而GRE的头部实现负载均衡要困难些——很多网络设备不支持用GRE的Key来做负载均衡的哈希计算。
VXLAN和NVGRE技术有惊人的相似之处,或许两者都无法最终成为行业标准,只能在围绕着Cisco、VMware、Microsoft的战略联盟(Ecosystem)内部进行标准化。
再来讨论另一种隧道技术STT(Stateless Transport Tunneling,无状态传输隧道),它是Nicira的私有协议。STT利用MAC over IP的机制,与VXLAN、NVGRE类似,把二层的帧封装在一个IP报文之上。STT协议很聪明地在STT头部前面增加了一个TCP头部,把自己伪装成一个TCP包。但和TCP协议不同的是,这只是一个伪装的TCP包,利用了TCP的数据封装形式,但改造了TCP的传输机制——数据传输不遵循TCP状态机,而是全新定义的无状态机制,将TCP各字段的意义重新定义,无需三次握手建立TCP连接,也没有用到TCP那些拥塞控制、丢包重传机制,因此STT被Nicira称为无状态TCP。STT技术除了用于隧道封装,还可以用于欺骗网卡——数据中心内部的TCP报文往往非常大,在发出去之前经常需要分片,但分片以前往往需要CPU处理,从而影响CPU性能,因此现在绝大多数服务器网卡支持报文分片,不由CPU来处理,也就减轻了CPU的负担。然而通过网卡进行分片只能针对TCP报文,通过VXLAN或者NVGRE协议封装的原始TCP报文到达网卡后,网卡认为它们不是TCP报文,就无法分片了,这就还是需要CPU来进行分片工作,也就增加了CPU负担,降低了服务器性能(最新推出的一些网卡声称可以对VXLAN进行分片,但其技术上不成熟)。而STT的头部是TCP格式,这样网卡就会认为它是TCP,从而对大包进行分片。但实际上它不是TCP,也无需三次握手,因此提高了CPU的效率。STT技术在Nicira被VMware收购前只能用于Nicira NVP平台之上,被收购后主要用在部署了多Hypervisor的NSX网络虚拟化环境,即NSX-MH架构中。
介绍完三种Overlay隧道技术,我们将其做一个对比,如表2.2所示。
表2.2 不同Overlay隧道的比较
|
VXLAN |
NVGRE |
STT |
---|---|---|---|
提出者 |
Cisco、VMware |
Microsoft |
Nicira |
适用场景 |
物理或虚拟交换机 |
物理或虚拟交换机 |
虚拟交换机 |
原理 |
MAC in UDP |
MAC in GRE |
TCP over IP |
优势 |
可以更好地进行负载均衡 |
可以利用现有技术,大多设备都支持GRE |
可以依靠网卡对包分片,降低CPU负担 |
劣势 |
需要新购或升级硬件或软件设备来支持 |
有些设备不支持用GRE Key做负载均衡 |
Nicira私有协议,且不能用于硬件交换机 |
VMware的NSX-V网络虚拟化解决方案在Overlay层使用VXLAN技术,为虚拟网络提供服务——利用VMware的NSX环境中支持VXLAN的分布式逻辑交换机对数据包进行封装和解封装,从而实现网络虚拟化,而其中间的物理网络变得就不重要了。VXLAN甚至可以在多数据中心之间进行扩展,因为无论数据中心之间的运营商链路、路由协议多么复杂,只要打通了隧道,就可以看作一个简单的二层链路。VMware NSX利用这个技术,在三层网络之实现了大二层扩展和多租户环境。
其他物理硬件厂商近几年新推出的交换机,大多都支持VXLAN,可以由连接服务器的ToR交换机对VXLAN流量进行封装和解封装。当然这种解决方案不是基于主机的Overlay,也没有实现控制平面和转发平面的分离。
而STT作为先前的Nicira私有协议,在其被VMware收购后,主要运用在NSX-MH网络虚拟化架构中,是NSX-MH中的默认隧道协议。这是因为STT有其绝佳的优势——可以减轻服务器CPU的负担。当然NSX-MH同样也支持GRE和VXLAN。
而NVGRE目前已广泛用于以Microsoft Hyper-V搭建的虚拟化环境中,但主要应用在Azure公有云,而没有在企业级的虚拟化环境中广泛部署。它与VMware的Overlay方案非常类似——在Hyper-V的Hypervisor之上给数据包打上Tag(标签),封装进GRE隧道,到达目的Hypervisor时解封装。
未来Overlay技术究竟走向何方,这就要看几大IT巨头如何斗法了。这些巨头们身边都有战略合作伙伴,都打造了一个属于自己的生态圈。
最后来介绍另一种未来会出现的Overlay技术。诚然,Overlay解决了一些问题,但其封装头格式固定,不利于修改和扩展——毕竟一些特殊应用的数据包需要在封装过程中添加一些额外的信息。比如在端口镜像的报文附加逻辑交换机目的端口信息,用于目的端口不能在隧道终点被可视化的情况;比如在报文附加逻辑交换机源端口信息或应用及服务的上下文,以指导隧道终端的转发决策或服务策略实施;比如标识Traceflow报文,用于抓包或整网健康状况的可视化。因此,VMware、Microsoft、Red Hat、Intel几家公司正在联合研发Geneve(Generic Network Virtualization Encapsulation)协议来解决这些问题。它的报文格式其实也使用了UDP进行封装,也有24比特的网段级别,但是它在报文中增加了一个可选字段(Option),允许虚拟化应用实现扩展。Geneve设想的报文如图2.8所示。
图2.8 Geneve设想的报文结构
在将来,Geneve协议会非常适用于服务链的场景。例如,NSX可以创建一个服务的逻辑连接(如图2.9所示,它可以为VPN服务、防火墙服务、第三方服务之间的关系创建成一个逻辑关系),而这些逻辑链的节点之间需要传递元数据。有了Geneve协议,头部可以进行变更和扩展后,就可以指示报文的下一个链节点,并将报文分类(Classification)的结果传递到一个服务。
图2.9 服务链的逻辑关系
Geneve协议不仅支持将IPv4封装在UDP里,还支持IPv6。该研发项目已提交IETF。或许在不久的将来,我们就可以看到这种技术被标准化,并广泛用于数据中心内部。
介绍完几种Overlay技术之后,我们就需要对比一下几大厂商基于Overlay技术的网络虚拟化解决方案了。各家厂商的解决方案各有千秋,各有利弊。在这里介绍它们的网络虚拟化解决方案,目的是让读者对整个行业的趋势有一个了解,也让读者了解VMware NSX网络虚拟化解决方案在行业中所处的地位。
Cisco ACI是Cisco公司提出的SDN和网络虚拟化解决方案,它的主要组件有应用策略基础设施控制器(APIC)和ACI交换矩阵,其逻辑架构如图2.10所示。
图2.10 Cisco ACI解决方案逻辑架构
APIC是Cisco ACI解决方案的主要组件。它是Cisco ACI解决方案中实现交换矩阵、策略实施、健康状态监控、自动化和进行中央管理的统一平面。目前,APIC一般是以软件形式安装在Cisco UCS服务器中,一般建议购买3台以上从而实现集群和冗余。
Cisco APIC负责的任务包括交换矩阵激活、交换机固件维护、网络策略配置和实例化。Cisco APIC完全与数据转发无关,对数据平面只有分发指令功能。这意味着即使与APIC的通信中断,交换矩阵也仍然可以转发流量。
Cisco APIC通过提供CLI和GUI来管理交换矩阵。APIC还提供开放的API,使得APIC可以管理其他厂家的设备。
Cisco在推出ACI解决方案的同时,还推出了Cisco Nexus 9000系列交换机。Nexus 9500为机箱式的核心交换机(骨干节点交换机),Nexus 9300为2U或3U高度的非机箱式汇聚/接入交换机(枝叶节点交换机)。Cisco Nexus 9000系列交换机可以部署在ACI环境下,也可以独立部署。如果是独立部署,以后也可以升级到ACI环境,但需要其软件和板卡支持ACI才行。这些Nexus 9000系列交换机实现了ACI环境下的底层物理网络,在这套物理网络之上,可以非常便捷地通过VXLAN实现虚拟网络。
除了物理交换机外,ACI解决方案还可以在虚拟化环境中安装Cisco AVS(Cisco Application Virtual Switch),作为虚拟交换机。
Cisco在Nexus 9000交换机中混用了商用芯片和自主研发的芯片——商用芯片处理普通流量,而自主研发的芯片处理ACI流量,即SDN和网络虚拟化中的流量。APIC控制器直接将指令发布给Nexus 9000中的自主研发芯片,再由芯片分布式地处理数据流量。换言之,ACI环境中真正的控制平面是Nexus 9000交换机中的自主研发芯片。这样设计的好处是,数据控制和转发都与软件无关,而是听命于芯片,消除了软件控制可能带来的瓶颈。因此Cisco的ACI解决方案与SDN反其道而行之,其实是一种HDN(H为Hardware)。
对于传统SDN集中了网络复杂性的问题,Cisco ACI解决方案中引入了一个完全与IP地址无关的策略模型。这个模型是一种基于承诺理论的面向对象的导向模型。承诺理论基于可扩展的智能对象控制,而不是那种管理系统中自上而下的传统命令式的模型。在这个管理系统中,控制平面必须知晓底层对象的配置命令及其当前状态。相反,承诺理论依赖于底层对象处理,由控制平面自身引发的配置状态变化作为“理想的状态变化”,然后对象作出响应,将异常或故障传递回控制平面。这种方法减少了控制平面的负担和复杂性,并可以实现更大规模的扩展。这套模型通过允许底层对象使用其他底层对象和较低级别对象的请求状态变化的方法来进行进一步扩展。
Microsoft也提供了基于Hyper-V虚拟化平台的网络虚拟化产品,由于它不像NSX、ACI那样有完整的解决方案,因此目前还没有被正式命名,一般被称为HNV(Hyper-V Network Virtualization),它以Windows Server 2012中的网络附加组件形式加载在Hyper-V的虚拟化平台之上。
Microsoft HNV的研发代码是通过Scratch编写的,且只支持Hyper-V一款Hypervisor,没有进行公开化。也就是说,这种网络虚拟化平台只能部署在纯Hyper-V环境。部署HNV所需的最低Hyper-V版本为3.0,它在Windows Server 2012(包括R2)操作系统中以角色的方式提供给Hyper-V,作为服务模块加载。在HNV中,使用的是NVGRE协议实现Overlay(之前已阐述)。为了将流量从物理环境迁移到虚拟环境,或者将虚拟网段迁移到其他虚拟网段,需要部署Windows Server 2012 R2 Inbox Gateway或者第三方网关设备。Microsoft使用Hyper-V可扩展交换API对HNV进行了扩展,我们可以使用PowerShell cmdlets对API进行再编程,最终实现网络虚拟化的自动化部署,进而实现整个数据中心的自动化。
HNV可以通过以下两种方式进行部署:System Center Virtual Mmachine Manager(SCVMM)和HNV PowerShell cmdlets。SCVMM其实也是在后台使用HNV PowerShell cmdlets,在Hyper-V平台上配置HNV组件,有一个统一的图形化界面。
在管理上,SCVMM提供了跨越部署Hyper-V的物理服务器之间的HNV配置管理。同时,SCVMM是一款服务器虚拟化与网络虚拟化一体化的管理工具。
但是,由于Microsoft的网络虚拟化平台并没有基于SDN的理论基础实现,且只能支持Hyper-V平台,很多高级的网络功能也是缺失的,因此它不能算完整的网络虚拟化解决方案。当然,当Hyper-V结合其System Center产品的时候,还是能达到较高的用户使用体验——System Center可以为数据中心从基础架构到上层应用的绝大部分角色提供统一、便捷的管理。
2012年初,Cisco、Google、Juniper和Aruba公司的几名前高管创立了Contrail公司,专注于SDN解决方案。12月,这家公司以1.76亿美元被Juniper公司收购,其产品和解决方案融入Juniper,Contrail也成为Juniper的SDN和网络虚拟化解决方案的代名词。
Juniper认为,当今数据中心逐渐采用基于OpenFlow的SDN控制器来对物理交换机进行编程,以实现自动化。然而,这种方法具有与基于VLAN的多租户虚拟化方法相似的缺陷,即存在可扩展性、成本和可管理性的缺陷。OpenFlow是基于流表转发的,数据中心内存在数以千计的虚拟机,更有数百种数据流,因此在现今的低成本物理交换硬件中进行流编程是一项艰巨的任务和挑战,或是仅能通过支持流管理的昂贵交换设备加以缓解。此外,这种方法会降低管理基础结构的能力,因为租户/应用程序的状态编程在底层硬件之中,一个租户/应用程序的问题会影响到其他租户/应用程序。
Juniper认为它们的Contrail解决方案通过Overlay提供高级网络特性,从而解决了这些自动化、成本、扩展性和可管理性的问题。所有网络特性(包括交换、路由、安全和负载均衡)都可从物理硬件基础结构转移到Hyperisor中实现,并有统一的管理系统。它在支持系统扩展的同时,还降低了物理交换基础结构的成本,因为交换硬件不贮存虚拟机或租户/应用程序的状态,仅负责在服务器之间转发流量。此外,Contrail系统还解决了敏捷性问题,因为它提供了全部必要的自动化功能,支持配置虚拟化网络、联网服务。
Contrail是一种横向扩展的网络堆栈,支持创建虚拟网络,同时无缝集成现有物理路由器和交换机。它能支持跨公共云、私有云和混合云编排网络,同时提供有助自动化、可视化和诊断的高级分析功能。图2.11是Contrail解决方案的架构。可以看到,Contrail可以控制物理网络,还可以通过XMPP协议管理虚拟化环境中的逻辑网络,它支持的网络功能包括交换、路由、负载均衡、安全、VPN、网关服务和高可用性,此外,它还提供面向虚拟网络和物理网络的可视化和诊断功能,以及用于配置、操作和分析的REST API,并能够无缝集成到云编排系统(例如CloudStack或OpenStack)或服务提供商运营和业务支持系统(OSS/BSS)。
图2.11 Juniper Contrail解决方案架构
Juniper的Contrail解决方案在Overlay层面其实并不是通过VXLAN或NVGRE协议来搭建的,它的架构比较复杂。首先,它通过再编程,在KVM或Xen虚拟机上生成一个vRouter(Vitural Router,虚拟路由器),值得注意的是,vRouter不是虚拟交换机,而是虚拟路由器。Contrail控制器是通过XMPP协议控制vRouter,使得加载vRouter的KVM或Xen主机之间实现了基于MPLS技术的互连。而Contrail控制器在物理网络层面使用BGP协议来互连和扩展物理网络。
各个厂商的网络虚拟化解决方案其实各有千秋,本节将对其进行比较。
NSX有如下优势:它无需关心底层物理网络架构,实现了真正的物理网络和逻辑网络的解耦,并将防火墙、负载均衡等功能集成到网络虚拟化平台中,无需特别加入第三方插件。NSX可以使用分布式的架构部署多台NSX Controller作为集群,消除基于软件的SDN控制器带来的瓶颈,且VMware的分布式交换机、分布式路由器有与自身服务器虚拟化的天然集成优势,能做到一致的策略,简化复杂性,保证虚拟机在迁移时,各种网络策略无需绑定其IP地址或端口。其私有的STT协议可以使用网卡进行大包分片工作,也能在NSX-MH环境中大大减轻了服务器CPU的负担。此外,由于NSX的前身是OpenFlow和OVS的发明者Nicira公司的NVP平台,因此NSX对OpenFlow和OVS的支持非常好。NSX适用于几乎所有行业和客户的数据中心场景——现有数据中心的改造、数据中心新建、数据中心大规模扩容、在多数据中心打通连接、多租户数据中心、对东西向流量安全有需求的数据中心环境、大量部署虚拟桌面的数据中心环境,还能支持混合云,打通公有云和私有云间的隧道。
Cisco认为其ACI架构是完全以应用为中心的,并指责NSX解决方案是“以VMware为中心”的。其实,NSX解决方案支持所有主流开源虚拟化平台和开源数据中心管理平台,并无“以VMware为中心”一说。而NSX解决方案与F5等应用交付解决方案提供商的软件定义应用服务(Software Defined Application Service,SDAS)解决方案相结合,同样可以构筑一套以应用为中心的架构。其实Cisco ACI本身也需要F5这样的应用交付厂商的支持,才能实现真正的以应用为中心的架构。就目前而言,ACI“以应用为中心”的理念,其实看起来更像是“更好地实现了应用的QoS”而已,而无法独立地对应用进行自动化的部署和运维。
ACI的优势在于可以更好地支持有物理服务器的数据中心环境,因为连接物理服务器的Nexus 9000系列交换机可以直接作为VXLAN的VTEP终结点,并且其解决方案提出的承诺模型能够有效地解决应用的QoS配置难题。另外,物理网络和虚拟网络得到了APIC控制器的统一管理和一致的可视化视图。然而,ACI解决方案最大的问题在于其物理网络硬件的局限性——ACI架构必须使用Cisco Nexus 9000系列交换机搭建底层物理网络,且在Nexus 9000上需要配置专门的支持ACI的板卡,其他任何网络厂商的设备,甚至Cisco自己的其他型号交换机,都无法支持ACI。因为这个原因,ACI架构无法适用于数据中心改造和扩容项目,只能用于数据中心新建或重建。
Microsoft HNV网络虚拟化解决方案的优势在于价格,因为使用HNV解决方案不会产生任何额外的费用,它只是Hyper-V的一个附加功能。实现NSX网络虚拟化环境,需要在每台安装ESXi的物理服务器上按照CPU数量购买license,或根据部署KVM或Xen的物理服务器的CPU数量进行收费;而实现ACI,则需要将底层交换机全部换成Nexus 9000系列及支持ACI的二层、三层板卡,且至少需要购买3台物理APIC控制器。另外,对于Microsoft的应用,如SharePoint、Exchange,其网络虚拟化解决方案能达到最佳融合。Microsoft解决方案的劣势在于不能安装在非Hyper-V环境,NVGRE协议负载均衡较差,不能将物理网络和虚拟网络进行融合,并且它的管理平台也不是单一、集中的,而其底层的Windows Server操作系统,也需要经常停机维护并进行打补丁和升级的工作——这是Windows Server所有应用的通病。
根据前面的介绍可知,Juniper的Contrail解决方案其实存在不少问题。首先,它只能运用在KVM和Xen环境,对于非开源的ESXi和Hyper-V无能为力。此外,它实现Overlay的方式极其复杂,是通过安装vRouter并在vRouter之上实现基于MPLS的互联,租户之间的隔离则是使用传统的VRF技术。最后,Contrail通过XMPP协议管理vRouter,对于物理网络,用的又是BGP协议,整个架构非常复杂,而且打造的也不是一个真正意义上的大二层网络(可以看成是一个大三层网络)。Juniper公司是一家以运营商网络和安全著称的公司,因此在数据中心架构的设想上,结合了大量运营商的路由技术。虽然其在功能上有优势,但是由于实现复杂,流量不优,不易实现大二层网络,因此现在在市场推广上阻力重重。
资格认证是IT行业的生命线,这些认证可以标识一名工程师或销售人员对某具体领域的知识和能力掌握的特定级别。有一些认证是通用的,不会具体到特定产品,如PMP、CISSP等。而几乎每家IT厂商都会为自己的产品和解决方案设计特定的资格认证,如Cisco、Microsoft、Oracle等。VMware自然也不会例外。本节会介绍VMware的认证体系以及与NSX相关的认证考试。
VMware于2003年开始针对自己的服务器虚拟化产品推出了相关认证,即VMware认证工程师(VCP,VMware Certified Professional)。
苏珊·古登考夫(Susan Gudenkauf)是VMware在美国明尼苏达州的一名员工,她在2003年获得了VCP认证,也是全球第一位VCP。当时这个认证考试以笔试形式出现,其中一部分为多项选择题,一部分为主观题,试题都是基于ESX 1.5版本的。现在全球差不多有近十万名工程师拥有VCP认证。VCP认证考试这些年来随着产品版本的不断变化而更新。
想要成为一个VCP,首先必须参加认证的培训课程,并且通过笔试。参加培训课程是强制性的——即使是经验丰富的工程师也必须参加一个基础课程才有资格参加考试。之后在测试中得分达线的话,就成为VCP了。
之后,Vmware针对初级工程师又推出了VCA(VMware Certified Associate)级别的认证。该认证考试并不强迫参加培训。而对于高级工程师,VMware推出了高于VCP的VCAP(VMware Certified Advanced Professional)认证,必须在获得VCP之后才有资格参加该考试。而最高级别的认证VCDX(VMware Certified Design Expert)是IT行业内难度最大的认证之一,拥有业内最高的含金量。至本书截稿为止,全球VCDX的总人数也仅为200余人,其中一半以上是VMware员工,而国内还没有人员获得任何方向的VCDX认证(国际上,有极少数的几名外籍华人获得了数据中心虚拟化方向的VCDX认证)。
之后,VMware的产品不再局限于服务器虚拟化,还涵盖了桌面虚拟化软件和数据中心运维和管理工具。2013年,随着NSX网络虚拟化平台的推出,VMware的产品线更加丰富。因此,VCP、VCAP、VCDX的认证方向越来越多——包含了4个方向。表2.3为2015年12月之前的VMware认证考试框架。
表2.3 2015年12月之前的VMware认证考试框架
角色 |
认证级别 |
数据中心虚拟化 |
云管理与自动化 |
桌面虚拟化 |
网络虚拟化 |
解决方案设计架构师 |
VCDX |
VCDX-DCV |
VCDX-Cloud |
VCDX-DT |
VCDX-NV |
项目实施工程师 |
VCAP |
VCAP5-DCA |
|
|
VCIX-NV |
VCAP5-DCD |
|
|
|||
系统管理员 |
VCP |
VCP5-DCV |
VCP-Cloud |
VCP5-DT |
VCP-NV |
系统助理 |
VCA |
VCA-DCV |
|
|
VCA-NV |
而2015年12月之后,VMware的考试框架发生了很大变化,首先,数据中心下虚拟化方向的两门VCAP考试(部署、设计)进行了合并,新的考试与网络虚拟化的认证VCIX在名称上统一了起来,其次,由于vSphere版本全面进入6.x时代,因此所有认证考试环境都是基于vSphere 6.x版本的服务器虚拟化平台而搭建——各方向的认证名称中都加了“6”字。而云管理、桌面虚拟化方向的VCA、VCIX考试也相继被推出。新的认证架构如表2.4所示。
表2.4 2015年12月之后的VMware认证考试框架
角色 |
认证级别 |
数据中心虚拟化 |
云管理与自动化 |
网络虚拟化 |
桌面虚拟化 |
---|---|---|---|---|---|
解决方案设计架构师 |
VCDX |
VCDX6-DCV |
VCDX6-CMA |
VCDX6-NV |
VCDX6-DTM |
项目实施工程师 |
VCIX |
VCIX6-DCV |
VCIX6-CMA |
VCIX6-NV |
VCIX6-DTM |
系统管理员 |
VCP |
VCP6-DCV |
VCP6-CMA |
VCP6-NV |
VCP6-DTM |
系统助理 |
VCA |
VCA6-DCV |
VCA6-CMA VCA6-HC |
VCA6-NV |
VCA6-DTM |
VMware于2014年推出了与NSX网络虚拟化相关的认证考试,分别为VCP-NV、VCIX-NV、VCDX-NV,难度逐渐递增,证书含金量逐级增加。2015年,又增加了VCA-NV考试项目。2015年11月30日之后,认证考试分别更新为VCA6-NV、VCP6-NV、VCIX6-NV、VCDX6-NV,考试环境基于NSX 6.2和vSphere 6.0版本,而旧的考试项目是基于NSX 6.0和vSphere 5.5的。
VCA6-NV的全称为VMware Certified Associate 6 - Network Virtualization,它是VMware推出的网络虚拟化助理工程师认证,即入门级。在VUE考试中心注册并付款后,即可参加考试。考试形式为开卷的网络在线考试,只要有互联网连通即可进行考试,考试内容全部为选择题,本书完全涵盖该门考试的所有考点。
VCP6-NV的全称为VMware Certified Professional 6 - Network Virtualization,它是VMware推出的网络虚拟化专业工程师认证,拥有较高的含金量。想要获得该门考试资格,必须持有其他任何一门方向的VMware VCP证书。如果没有其他方向的VCP证书,就必须参加VMware NSX的原厂培训课程,之后才能获得该门考试资格。获得考试资格后,需要在VUE考试中心注册并付款,然后前往指定的VUE考点参加考试。考试形式为闭卷,内容全部为选择题,本书完全涵盖该门考试的所有考点。
VCIX6-NV的全称为VMware Certified Implementation Expert 6 - Network Virtualization,它是VMware推出的网络虚拟化部署专家认证,拥有极高的含金量。想要获得该门考试资格,需持有至少一门任何方向的VMware VCP证书(当然包括VCP-NV)。获得考试资格后,需要在VUE考试中心注册并付款,然后必须前往指定的VUE考点,才能参加考试。考试形式为闭卷,内容全部为操作题,4小时内完成约10个实验,在实现考试要求的大部分实验现象后,才算通过该门考试。本书完全涵盖该门考试的所有考点,但是需要考生在考试前进行大量实验,对部署、配置和排错能力进行训练,以熟悉NSX各组件的动手操作过程。国内目前获得该门认证的人数寥寥无几。
VCDX6-NV的全称为VMware Certified Design Expert 6 - Network Virtualization,它是VMware推出的网络虚拟化设计架构师认证,与其他方向VCDX证书一样,是虚拟化行业内最高等级的认证证书,拥有业内最高的含金量,也是IT行业内最难通过的考试之一。想要获得该门考试资格,必须持有VCIX-NV证书。在考试付款成功后,VMware总部会安排考生进行英文面试,现场回答面试官提出的各种问题,并按照面试官要求设计出一整套完整的网络虚拟化架构。至本书截稿为止,全球通过VCDX-NV方向认证的人数仅为40余人。