比特网 发表于:14年11月06日 09:27 [综述] DOIT.com.cn
服务器虚拟化技术在提升物理服务器CPU利用率、降低数据中心能耗、方便数据中心管理等方面有诸多优势,我们常说的虚拟机就是虚拟化技术的具体应用形式。虚拟化技术是运行在内存中的一个操作系统实例,它与服务器的物理网卡没有直接的联系,对外的数据交互是通过Hypervisor模拟出来的网络接口实现的。
随着虚拟化技术的成熟和X86 服务器CPU性能的提升,越来越多的数据中心开始向虚拟化转型,如今在数据中心内的服务器上运行虚拟化软件已经非常普遍了。正如唯物主义辩证法一样,一个问题的解决必然会伴随着新的问题产生,服务器的虚拟化有这么多的好处,却给连接服务器的网络带来了难题。
举个最简单的例子,原来的服务器是一个网卡一个 IP地址,通过一条链路连接到网络中,而现在通过虚拟化可以虚拟出很多歌IP地址,而这些IP地址实际物理上还是通过一条链路连接到网络中,在同时工作时流量都会全部挤在这一条链路上,多个虚拟化应用和网络端口之间形成了多对一的关系,这样就很难在单个端口上下发管理策略,增加了网络管理的复杂度。
面对服务器虚拟化的热潮,显然数据中心网络的技术不会停滞不前,为了满足服务器虚拟化的顺利部署,数据中心网络也迎来了新的变革,涌现出来一批新兴的网络技术,以满足服务器虚拟化的需求。当服务器部署了虚拟化后,网络端口和服务器之间的对应关系由一对一变成了多对一,网络技术首先要解决这个多对一的对应问题。
显然已经有人想到了解决的办法,那就是VEB技术。VEB(Virtual Ethernet Bridges,即虚拟桥接网络),用于连接虚拟机到接入网络设备的网络服务,VEB既可以通过软件在 VMM中实现,也可以通过硬件支持SR-IOV特性的网卡完成。软件VEB指的是Hypervisor内部的虚拟交换机,目前主要指的就是Vmware的 VSWITCH。VSWITCH从物理网卡上接收以太网报文,根据VMM下发的虚拟机MAC与VSWITCH逻辑端口对应关系表来转发报文。软件VEB节省了接入层网络设备,对现有网络标准兼容性好,但是却在运行的过程中会耗费CPU资源,也缺乏网络控制策略的实施能力,因此在实际应用中更偏向于使用硬件 VEB技术。
基于硬件实现的VEB技术是将软件VEB的实现移植到服务器物理网卡上,通过网卡硬件改善VSWITCH占用CPU资源而影响虚拟机性能的问题。到后来HP又提出将虚拟交换机的实现移植到硬件交换机上,实现虚拟机之间的“硬件换”。采用这种方法,通常只需要对网卡驱动、VMM桥模块和外部交换机的软件做很小的改动,从而实现低成本方案目标,对当前网卡、交换机、现有的以太网报文格式和标准影响最小,这种方式已经得到了绝大多数网络厂商和服务器厂商的认可。不过这种方式需要在网络中引入新的支持VEPA的交换机设备,增加了投入成本。
目前来看,针对服务器虚拟化应用最佳的方案就是部署支持 VEPA的硬件交换机。除了部署VEPA交换机之外,还需要数据中心网络做到更多。
由于服务器部署虚拟化后整体运行效率提高,但是却加大了网卡、网络的承载能力。原来的服务器CPU利用率普遍运行在20%左右,部署虚拟化之后一般都运行在80%左右,网卡的速率也会加大,这增加了网络的压力。原来连接一台服务器的千兆网络端口可能只需要处理200M的平均流量,现在还处理800M的流量,这就需要接入网络设备的性能要比较高。
很多网络设备虽然端口是千兆、万兆但并不代表其有能力完全将这个线速流量转发出去,在网络设备内部会有很多可能产生拥塞的点,所以在部署虚拟化时,应该对未来的流量提升做好评估,现有的网络设备能否满足要求。对于服务器的网卡也一样,虽然标称是千兆网卡甚至万兆网卡,但是我们都知道网卡是无法达到线速的,而且对突发流量的应对能力不足,这时就需要将压力传递到网络设备上,可以在网络设备和网卡上都开启流控功能,当服务器网卡能力不足时,可以及时发出流量,网络设备收到流控报文后减缓流量发送。
服务器部署虚拟化后,一台服务器往往要承载多种应用,而服务器仅通过一条链路连接到网络设备商显然是不行的。现在的服务器都支持双网卡或多网卡同时工作,因此一般要在服务器上开启多网卡同时工作。这些网卡和网络设备如何互连,实现流量的负载分担,满足多网卡同时工作,都给网络设备出了难题。现在网络设备和网卡之间普遍采用聚合方式、NLB、单链路等方式实现互连。
虚拟化技术造成了多对一的连接关系就要求网络设备的运行可靠性要高,因为就算是数据中心网络里最常见的一个链路端口出现了UP/DOWN,可能会导致数十个应用无法运行,影响很大。因此要在网络部署聚合、LLDP、DLDP等协议,实时检测链路状态,邻居状态,一旦有问题流量可以切换到备用链路上,保持应用不中断。部署虚拟化之后,传统的二层环路协议很难发挥出作用,需要尝试新的数据中心二层协议技术,网络上关于这类新兴技术描述很多,在此不再详述。
服务器的虚拟化应用给数据中心网络带来了冲击,原有的数据中心网络已经无法满足应用需求,除了本文以上介绍的内容,网络还需要做出更多的改变。解决了服务器虚拟化多对一的问题只是完成了有无的问题,如何为服务器的虚拟化提供更好的网络服务,才是未来数据中心网络技术的发展方向。不久的将来会有越来越多的网络新技术得到应用,伴随着服务器的虚拟化应用普及,新一代的数据中心网络时代也即将到来。