IT的发展历程是一个螺旋上升的过程。早期的大型电脑时期,IT是及其专业的领域,所有的电脑系统都是封闭系统,一个公司提供了从硬件到软件及维修甚至软体改版升级的服务,可以说那时系统的封闭是由于整个产业的不完善所造成的。但是整个IT产业却不断朝向开放的道路上前进,自从IBM PC标准开放以来,IT产业迅速成熟,时至今日完全改变了社会信息的传递模式。标准化的系统可以在短时间内迅速成熟,是因为在开放的系统中,标准是由几个大厂主导协商出来的,标准制定的过程可以看见各种妥协的影子,甚至有不同的标准互相竞争。理论上经过这种自由市场的运作机制,因为竞争激烈,消费者可以享有最好的标准化产品。而相反封闭系统的厂商在今天产业分工高度专业化和细化的背景下,将导致技术的进步幅度及其缓慢,也难以形成规模。
现在,在数据中心网络技术领域,也同样出现了开放系统和封闭系统两条路线之争,我们下面分析一下这种技术之争的来龙去脉。
道路之争一:VEB vs VEPA
随着商用虚拟化技术的成熟和x86 CPU性能的发展,越来越多的数据中心开始向虚拟化转型,新一代数据中心一个典型的特点是从“物理服务器互联”转变为“虚拟服务器”互联。虚拟化给数据中心带来了服务器整合、业务连续和弹性等特点,同时也给数据中心带来了新的挑战,即如何实现针对虚拟机的边缘虚拟桥接(Edge Virtual Bridge)。
惯性的解决思路是通过软件的方式,通过服务器内部平台解决,也就是所谓的虚拟边缘桥接(VEB, Virtual Ethernet Bridge)。所谓VEB就是在一个物理终端工作站/服务器上支持多个虚拟机的本地交换,通常是通过软件模拟一个虚拟交换机来实现。例如作为推动X86平台虚拟化的始作俑者,VMWare在其vSphere平台内置了虚拟交换机vSwitch,甚至更进一步,实现了分布式虚拟交互机VDS(vNetwork Distributed Switch),为一个数据中心内提供一个统一的网络接入平台,当虚拟机发生vMotion时,所有端口上的策略都将随着虚拟机移动。但是其存在两个根本的问题:
1. 虚拟交换机的功能过于简单。目前的vSwitch最多只是一个简单的SOHO级二层交换机,只是解决连通问题,没有ACL策略、没有流量监管、更别说QoS。当然这方面的原因主要是因为网络并非 VMWare所重点关注的领域。
2. 网络和主机管理界面模糊。多个虚拟机的数据交换都集聚于一个物理出口,虚拟服务器端口和实体网络端口之间不再是一一对应的关系,从传统网络管理者的角度出发,原来的一系列网络策略都是基于端口部署的,而现在则无法使用同样的方法部署,极大的增加了管理成本和难度。而目前的主流虚拟平台上,都没有针对网络管理和配置的独立界面,这就造成虚拟化服务器一旦出现问题,不仅故障定位需要更多时间,而且管理人员(网络管理者和服务器管理者)的权责定位及分工也会处于混乱状态。数据中心的接入层网络已从物理的实体网络延伸至服务器的虚拟机实例,必须要实现对虚拟机网络端口的对应接入。
业界网络巨头思科公司针对EVB提出了几种不同的解决方案路线,其中一个很重要的路线就是增强型VEB,具体点讲就是用CISCO自己的nexus 1000v软交换机代替vmware的vswitch,嵌入到VMware的虚拟化平台上去。这样一来,思科声称可以实现专业的虚拟交换机,这些nexus 1000v虚拟交换机具有思科交换机丰富的功能特性,同时可以实现和思科物理交换机的统一管理。思科公司在市场营销也对nexus1000v解决方案投入了大量的人力物力,使得这个方案听起来很美,但是实际情况呢?仔细的分析一下,我们可以看到这个解决方案存在下面的问题。
1. 还是没有解决网络和主机管理界面模糊的问题。Nexus 1000v作为用服务器CPU模拟的软件交换机,使得虚拟机的交换界面还存在主机内部,根本无法实现“网络的归网络,主机的归主机”这样的厘清管理界面的目的。
2. nexus 1000v是用CPU来模拟的软交换机,需要服务器额外开销,存在着交换性能低下的问题,并且可能造成系统的不稳定。
3. 最重要的问题,思科这个解决方案是一个封闭体系的解决方案,目前可以看到其只支持VMware虚拟化平台,针对其他虚拟化平台,如xen和hyper-V目前没有看到有相关的解决方案。
在某种程度上可以说思科利用其在业界的技术品牌优势,通过对一个封闭体系的解决方案进行大力营销,是一种对客户进行某种程度的“绑架”,使得客户失去了选择权。
因此,业界需要一个开放、标准、简单的解决方案。这时VEPA(Virtual Ethernet Port Aggregator)标准就应势而出。VEPA是HP协同H3C向IEEE提出的新一代数据中心虚拟接入解决方案标准草案,其目标是要将虚拟机之间的交换从服务器内部移出到接入交换机上。工作原理如下:当两个处于同一服务器内的虚拟机要交换数据时,从虚拟机A出来的数据帧首先会经过服务器网卡送往上联交换机,上联交换机通过查看帧头中带的MAC地址(虚拟机MAC地址)发现目的主机在同一台物理服务器中,因此又将这个帧送回原服务器,完成寻址转发。整个数据流好像一个发卡一样在上联交换机上绕了一圈,因此这个行为又称作“发卡式转发”。为了实现“发卡式转发”,VEPA需要修改生成树协议,或者说在下联端口上强制进行反射数据帧的行为(Reflective Relay)。同时VEPA使用Q-in-Q技术在基本的802.1q标记外增加了一层表示不同虚拟机的定义,基本就可以将不同的虚拟机流量区分开来,并进行处理。
我们可以看到,VEPA本着简单实用的原则,充分利用现有标准协议,实现了虚拟机的“硬交换”。目前的网络设备来说只要把软件稍做修改,就能够快速推出支持。正因为VEPA的标准化和开放化,使得其得到了Juniper、IBM、Qlogic、Brocade等等厂商的支持。H3C坚信,走开放标准化道路是王道,未来的EVB解决方案的主流一定是基于VEPA标准的解决方案。