“无招胜有招”听起来非常虚无,却是武侠世界第一高手独孤求败的成功秘诀。他从利剑无意、软剑无常、重剑无锋到木剑无滞、无剑无招,“四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。”
与练剑的境界相似,数据中心也正在经历从有形重剑到无剑无招转变的过程。用户把更多的注意力放在业务上,可以较少的关注这些业务运行在哪台具体的设备上。带来这一改变是正在进行的虚拟化进程。这个过程并非始于今日,但是,却在最近迎来了大发展。
网络虚拟化并不是一种全新的技术。现在广泛应用在网络的VLAN(Virtual Local Area Network,虚拟局域网)和VRF(VPN Routing/Forwarding,虚拟路由与转发)都是虚拟化应用在网络的积极尝试。VLAN是根据实际需求,把同一物理网络的不同用户逻辑地分成不同的域来传输和管理,最多可将网络划分为4094个广播域。从而在控制流量、提高设备使用效率、简化网络管理以及提高网络安全性方面得到更好的实现。
但是,传统的网络虚拟化技术在现在大量使用服务器虚拟化之后,显得捉襟见肘。多租户环境下,每个租户都需要多个VLAN,而VLAN数量是有限制的,其构建的网络规模非常有限。而通过附加技术扩展VLAN之后,会增加运营成本以及网络复杂程度,带来隐患。
VRF是三层网络虚拟化的一种,是VPN的一个实例。物理路由器支持多个虚拟路由实例,每个实例都运行自己的路由协议实例,维护自己的转发表。
如果把这些传统技术看作是虚拟化1.0版本的话,那么现在我们要谈论的就是虚拟化2.0版本。当我们重新面对网络虚拟化这一概念的时候,发现这已经是一个没有定义边界的话题。似乎网络虚拟化是个筐,什么都可以往里装。大二层的技术与之相近,SDN也与之有关,此外,FCoE也可以说是某种意义上的虚拟化,更不要说本来就有的VEPA等标准和vSwitch等应用了。
网络虚拟化是什么?“理论上来说,能够实现网络资源动态调配、动态管理的技术都可以算做是网络虚拟化技术。” 戴尔公司大中华区网络业务总监李海平总结说。如果分成步骤来看,“网络虚拟化基本上分成二个部分。第一部分是网络基础架构本身的虚拟化,比如原来单一的网络可以虚拟化成多个网络;原来多个单一的网络单元也可以虚拟成单一网络。第二部分指的是网络提供与虚拟化服务器、储存等数据中心环境适配的特性,这些特性包含与虚拟机的互动、虚拟机的识别、新兴数据中心技术如 SDN、VXLAN等的支持。” 博科公司高级技术顾问沈之千说。而H3C则把网络虚拟化分为了虚拟设备、虚拟通道和虚拟服务三个层次。虚拟设备技术类似计算虚拟化中的虚拟机,经常用到的N:1虚拟化和1:N的设备虚拟化就属于这一层次。虚拟通道是指网络从过去的静态虚拟化实现动态虚拟化,边缘的虚拟化就是众多技术典型的一种。在此基础之上,实现虚拟服务,虚拟服务面向应用的对接。具体的部署当中,在物理网络的基础上,运用虚拟设备和虚拟通道的技术,实现虚拟网络资源池,这个资源池和虚拟计算和虚拟存储的资源池是对等的架构,这样在构建虚拟资源池之后,再通过与自动化技术的结合,就可以给不同的应用分配动态虚拟通道。H3C解决方案部产品经理陆毅把虚拟化的概念从数据中心进一步扩充到园区网和广域网,他说:“网络虚拟化在园区网的作用就是精确定位用户,而在广域网的作用主要是屏蔽不同链路。” 神州数码网络(DCN)数据中心交换机产品线总经理陈翔把网络虚拟化总结成四个方面,其一是物理网络识别虚机更好的支持,识别虚机流量,可以实现更好的故障排除和QoS策略;其二是链路级别的虚拟化,比如FCoE;其三是设备的一虚多技术;最后是物理网络虚拟为多个逻辑网络提供了多租户的应用需求。“我们认为第四点最重要,多租户需求中要求每个租户可以是一个SMB企业、或者个人用户,他们有不同的带宽需求,不同的安全策略需求,不同的VLAN划分以及相互之间的隔离需求。”
网络虚拟化会对网络造成什么影响呢?陆毅说:“首先,是服务器虚拟化之后,为了解决服务器内部虚拟机之间以及虚拟机和外部网络之间通信的需求,引入了vSwitch,可以视为边缘网络向服务器内部的延伸。但是vSwitch占用服务器性能、管理边界不清晰,服务器内部虚拟机之间的流量不能很好的监控,都是vSwitch面临的一些挑战。针对这些问题,H3C的做法是把服务器内部的流量引出到外部传统网络来处理,这就是VEPA技术。通过VEPA把服务器内部流量引出之后,传统网络丰富的管理特性和硬件设备ASIC的高性能得以充分利用。网络向服务器内部延伸对于运营商目前来说,IDC业务可能会有一些影响。但是对网络流量的精细调度一直是网络演进的方向。用SDN的方式可以直接和上层应用系统接口,这样的实现方式可以更贴近应用的需求。”
#p#
那些网络虚拟化2.0的技术
在网络虚拟化2.0技术中,不得不提到的技术有VXLAN、NVGRE、STT和SPB MAC-in-MAC,TRILL等。这些技术基本上是采用封装或者隧道的方式来创建虚拟网络的。其中,SPB和TRILL的应用在《网络世界》不久之前采写过的《扁平化网络迷局》进行了比较深入的探讨。此外,在一些相对而言比较传统的技术,也实现了虚拟化的功能。比如,思科有VSS、H3C有IRF技术、博科有VCS网络架构、华为有CSS技术、极进网络采用跨机箱链路捆绑技术、锐捷有VSU技术、神州数码网络有VSF技术、戴尔网络的VLT技术等等。这些技术在实现设备虚拟化上都比较成熟的应用。
相对而言,VXLAN、NVGRE以及STT之前涉及的比较少,所以本次讨论的重点就放在这三个技术上。这些覆盖协议之间的主要差异在于其封装格式和控制平面的功能性,即允许封装设备将一个帧映射到适当的拆装设备。
VXLAN是在一个三层网络上借助MAC-in-UDP封装,叠加一个二层网络来实现网络虚拟的。目前,VXLAN是IETF标准草案的一个子集,支持厂商有VMware、思科、Arista网络、博科、红帽和Citrix。IBM也支持VXLAN。在hypervisor vSwitch和物理交换机上实现这个预标准的现象已开始出现。
具体来说,VXLAN采用MAC-in-UDP封装,包括24位网络标识符,50个字节的开销,可以提供16万个逻辑网络地址。对VM而言,VXLAN是透明的,仍然可以使用MAC来进行通信,理论上来说,同处于一个VXLAN网段的端点都可以进行通信,即使这两个端点属于不同的IP子网。这也就解决了一个问题,不使用大二层的构建技术也可以实现VM在较大网络范围的迁移和使用。
NVGRE与VXLAN非常类似,都是采用封装的方式来达到在已有的三层IP网络上承载二层网络的目的。只是NVGRE采用的不是UDP封装方式,而是GRE封装。在主要支持厂商微软看来,网络的某些性能问题可通过智能网卡来解决,即用智能网卡卸载hypervisor vSwitch上的NVGRE端点处理。智能网卡还拥有与覆盖控制器和hypervisor管理系统集成的API。在其中有一个起到重要作用的控制器,来解决控制平面遇到的一些问题。这种解决方案与现在大热的SDN中的控制器有类似的效果。
SST是另外一种技术,其主要支持厂商是Nicira。与VXLAN和NVGRE相比,STT有较大的不同。其在IP报头内使用了无状态TCP类报头,允许端系统的隧道端点利用驻留在服务器网卡上的TCP卸载引擎(TOE)的TCP分片卸载功能(TSO)。在控制平面上也缺乏具体的解决方案,现在来看这或许是短板,但是如果SDN能够实现,那么这一问题的解决也就显得非常自然了。
总结这三种技术,都并非是传统网络厂商主导的变革,而更多的感觉是从服务器虚拟化之后,从专业的虚拟化厂商角度提出的网络变革方案,虽然有一定的硬件依赖,但是核心却集中在软件领域。是否从网络出发的改变就没有用武之地了呢?。华为企业网络数据中心网络专家潘灏涛的观点是:“这其实是从原来IT和CT两个不同方向提供的两个不同方案,VXLAN和NVGRE等技术更多是原有的IT厂商解决问题的方式,网络虚拟化的主要功能部署在服务器操作系统内,适用于同构服务器的整合的场景,比如互联网企业,服务器主要是同构的开源的Linux环境,并且具有很强的二次软件开发能力,适用IT网络虚拟化的方案。而从原有CT方向出发的TRILL,SPB以及包括华为的CSS技术等,则可以应用于服务器异构的场景中,可以应用于更为普遍的企业网场景。当然,IT方案中,也不是纯粹软件的方案,也需要网络设备的配合。华为将针对客户的不同需求,提供IT和CT的网络虚拟化方案。”AVAYA亚太区数据网络产品架构师Gates Zeng的看法是这些技术会在各自的应用场景发展,完全替代的可能性很小。他总结说,从虚拟化厂商一端推出的解决方案往往是把问题在服务器一端,但很少考虑到网络实现和支撑的问题,而从网络厂商推出的方案来看,往往是希望从更大的范围来全面的解决问题。
#p#
大二层和虚拟化 其实不是一回事
在进行网络虚拟化和大二层的讨论中,这两个概念往往会纠结在一起,因为在构建在大二层网络的时候,往往需要用到某些设备虚拟化的技术,前文我们已经提到每个厂商都有各自的解决方案。而被认为是大二层代表技术的SPB和TRILL本身其实也在实现网络虚拟化的功能。但是,这是否就可以说大二层和网络虚拟化是一回事儿呢?
沈之千认为:“大二层网络产生的重要原因之一就是数据中心虚拟化要求大二层环境。网络虚拟化和大二层技术都是下一代数据中心的重要组成部分,二者相辅相成。”李海平认为:“大二层属于技术手段,而虚拟化是实现目标,从计算虚拟化、存储虚拟化以及网络虚拟化,最终实现端对端的架构虚拟化。”陆毅则把相似的三个概念SDN、大二层和网络虚拟化比作是一体多面,其中SDN是大框架概念,侧重用户业务,满足用户需求,虚拟化是具体的技术实现,侧重于技术层面,承接用户需求,而大二层则是在细节实现。与陆毅看法类似,潘灏涛同样认为大二层只是网络虚拟化的一种实现方式,其本身扩展了服务器虚拟化资源池。阿尔卡特朗讯企业集团网络产品中国区总监张小鹏认为这是在解决不同问题涉及到的不同解决方式,一些网络虚拟化技术实现虚拟机漂移的支持需求是当初大二层设计的一个重要出发点。但大二层还带来了扁平化的网络设计,多链路负载均衡技术为云计算数据中心提高高吞吐率的东西向通信等。
SDN远景美好却非一日之功
SDN的提出,给原来的解决方案提供了用另外一种方式来解决问题的可能。在虚拟化厂商的角度来看,完全可以把与网络的接口部分交给SDN控制器来实现,这从之前提到的三种网络虚拟化技术上就可见一斑。
但变革性技术往往会承担比较大风险,虽然现在表示支持SDN的网络厂商已经逐渐增多,但是对SDN的担忧仍然不少。Gates Zeng认为产品成熟需要过程,而在SDN中起到重要作用的控制器如果完美则SDN完美,反之亦然,此外在传输控制信息层面的问题也需要注意,还有网络自适应的能力也有待加强。
在SDN的跟随策略上,各个厂商也有不同。陆毅说:“H3C主要有三个方面,其一是通用API的开发,包括自定义开发网管等,其二是对OpenFlow的支持,将兼容OpenFlow1.3版本,第三方面是Comware的工作。Comware提供了虚拟网络开发环境,在虚拟服务的层面上具有重要意义。”而华为企业SDN的策略是多层次开放,包括设备层,资源层和业务层。但侧重在北向开放环境的开放上,对用户来讲,一方面能够抽象和屏蔽网络的复杂,另一方面提供灵活的网络定制和编程环境。而OpenFlow已经有部分用户开始尝试,“神州数码网络(DCN)和清华大学、中科院网络中心合作开始构建基于openFlow的大型实验局。目前,我们的DCRS-59/76/68系列已经全面支持OpenFlow。”陈翔说。“与其他公司提供单独软件不同相比,博科的做法有些不同,博科是推出将OpenFlow 嵌套于目前运行的多业务操作系统之中,并且提供混合模式,同一端口可以运行传统转发,也可以运行OpenFlow受制于控制器模式,并且可以提供OpenFlow优先匹配,一旦匹配不成功,还可以回到传统转发模式;同时博科公司也是目前为数极少的提供线速OpenFlow转发的(甚至是其100G以太网线卡)设备供应商。”沈之千说。
百花齐放是似乎是更多人愿意看到的结果,对SDN谨慎的乐观也是比较多的态度。Gates Zeng 说:“SDN不会消失,但是范围会比较小,最终结果一定不会是只剩下SDN,多种技术都会有应用场景,网络会变得更为智能。”但是,沈之千更为乐观,他说:“网络虚拟化是现阶段网络厂商提供的可靠、稳定和具有创新意义的下一代数据中心技术,而软件定义网络SDN技术是未来方向、也是业内正在探索的特性,目前能够提供的厂商不多。通过SDN软件定义网络特性,用户能够更为灵活地定义和开发网络虚拟化技术。”
锐捷网络有限公司产品营销部数据中心产品经理蒋波说:“网络虚拟化是未来网络的趋势,但当前存在着标准不一,各厂家实现方式不一的问题。但与服务器虚拟化不太一样的是,VMware在服务器虚拟化方面拥有着绝对的优势,故造成了当前的以其为圆心的市场格局,而目前包括锐捷网络在内的网络设备厂商在网络虚拟化方面各有特色,发展势头迅猛。未来是达成一致标准共同发展,还是各显神通分散发展,关键在于标准、厂商、用户三方的推动,现在下结论为时过早,我们认为SDN或许是未来网络虚拟化的统一标准之一。”
目前来看,网络虚拟化向前发展的动力仍然强劲,主要是服务器接入维度上需求越来越大,承载和适应虚拟机漫游和感知的需求,以及漫游之后的定位管理;此外是网络运营维度上,也就是用户实用维度,在云计算之后,从自建到租用的趋势。而SDN的成熟也需要时日,所以网络虚拟化技术本身的发展应该仍会快速向前发展。极进网络网络顾问苏和表示,网络虚拟化的核心是在网络设备中断的时候,仍然能够保证链路不中断,在服务器和存储等漂移时,仍然可以保证虚拟机网络的通畅。而链路的通畅永远都是网络承载的核心使命。
#p#
虚实之道 适用王道
虚实之道,《孙子兵法》的《虚实篇》中有这样的描述:“善用兵者,以虚为实;善破敌者,以实为虚。”可见,虚与实并非绝对,而是在应用中不断转化的过程。选择适合当前最适合自己的战术是一场战争胜利的关键,而在网络领域中,选择最适合自己的技术同样是对业务支撑的王道。
谁会对网络虚拟化有最强劲的需求呢?蒋波说:“需求最明显的行业是对网络健壮性、动态资源调整有较高要求的网络,主要体现在政府、金融、互联网、运营商等行业。目前来看,云计算、大数据、社交网络将是未来几年的热点,这些业务对网络虚拟化或多或少都会有持续的需求。”
我们毫不怀疑,数据中心的发展势头迅猛。基础架构如何支持这种增长呢?虚拟化仅仅是其中的一部分。未来网络可能还需要更多的特征。在诸多的特征中,如何选择构建自己的网络呢?用户的疑惑应该是最大的,特别是在SDN提出更多可能的情况下。但是目前来看,SDN的发展虽然很快,但是仍有许多地方需要完善,如果现在就要构建网络,那么成熟网络技术是必然的选择。而在未来的网络构建中,也许就可以尝试SDN带来的种种便捷。