网络设备在虚拟化后是否依旧可以快速提供良好的性能?这是目前大家最为关注的问题之一。下面就讨论一下传统网络设备和虚拟化后面临的问题以及怎样使用网络设备才能提供实时管理监控,保护SDN/NFV网络的安全。
虚拟化的性能瓶颈
虚拟化进程中,服务器虚拟化和存储虚拟化因为大部分属于软件技术,发展较为迅速,并快速商用。网络虚拟化,是对网络资源如端口、带宽、IP地址等进行抽象,并支持按照租户和应用进行动态分配和管理。网络虚拟化因为网络标准、网络处理芯片更新周期长而发展较为滞后,成为数据中心虚拟化过程中的难点和关键点。网络虚拟化技术走过了一条由软件到硬件、由服务器内部到物理网络的发展道路。
从很多方面来看,现在对网络设备虚拟化已经做的比较完善了,可以基于标准的x86架构的服务器硬件设备运行与之匹配的应用,但是性能却一直不尽如人意。不过,即使是物理网络设备,高速运行时性能也不太理想。这就是为什么大多数高性能设备使用分析加速硬件。尽管分析加速硬件释放CPU进行分析处理,但大多数网络设备依旧会将所有CPU处理能力用来执行任务。
从虚拟化角度来看,设备的虚拟化只能实现到一定程度。如果待处理的数据速率和数据数量比较低,那么就可以使用虚拟化设备。一旦数据速率和数量上升,对虚拟设备的处理需求就会提高。首先,这就意味着虚拟化设备需要单独访问所有可用的CPU资源。即使那样,使用标准NIC接口的虚拟化设备还是会遇到与物理设备一样的问题,例如丢包率、时间戳精确性、跨多个可用的CPU内核的有效负载均衡等方面的问题。
虚拟化性能优化的努力
服务器虚拟化通过嵌入在基础物理服务器和操作系统之间的中间软件层Hypervisor实现,其接管操作系统对CPU、内存、I/O资源的控制,为每个VM(Virtual Machine,虚拟机)分配一定的资源,并实现VM之间的隔离和通信。Hypervisor提供一个或多个模拟物理交换机的软件虚拟交换机vSwitch(Virtual Switch)来进行VM之间的通信,并为每个VM分配一个虚拟网口和一定的带宽。vSwitch除了具备物理交换机基本的MAC学习和转发、VLAN功能外,还具有配置灵活和成本低廉的优点。由于vSwitch通过软件实现,其分配的网络资源实际还是由服务器CPU资源来保证。
软件虚拟化交换机(包括I/O加速的vSwtich)虽然有部署灵活和便宜的优点,但也存在着一些缺点:第一,性能提升受限于CPU以及网卡的I/O架构;第二,软件交换机实现的网络功能相对简单,只实现了转发功能,被称为VEB(虚拟网络桥),缺少交换控制、网络监视、QoS、安全等功能;第三,管理界限模糊,软件交换机运行在服务器内部,而服务器管理团队对于网络理解不深;第四,VM和vSwitch数量激增带来的管理难题。为进一步优化性能、简化管理并继承传统交换机特性,网络设备商和相关标准组织提出边缘交换机虚拟化技术,把VM交换功能再进一步由网卡卸载到物理交换机上来。涉及到的关键技术有VEPA(Virtual Ethernet Port Aggregator)/Multi-Channel和PE(Port Extender)两种,分别由IEEE 802.1Qbg和IEEE 802.1Qbh(现由IEEE802.1BR替代)两个标准定义和推动。
物理和虚拟的融合
事实上,物理设备即使虚拟化也无法摆脱曾经面临的那些问题,需要将这些问题一一解决。解决方法之一就是考虑采用物理设备监控、保护虚拟网络。虚拟化感知网络设备可以作为“服务链”的环节同虚拟客户端一起充当服务定义的一部分。这就要求网络设备能够识别虚拟网络,目前这个工作由大部分高性能设备和分析加速硬件所支持的VLAN封装技术完成,确保设备提供与具体VLAN、虚拟网络相关的分析功能。
在向SDN、NFV阶段性转移的过程中这个方法显得尤为实用。人们广泛的认为目前高性能的功能很难在实现虚拟化的同时保证性能几乎不损耗。因此,务实的解决方案所倡导的SDN和NFV管理、编排方法既考虑了物理网络元素又考虑了虚拟网络元素。这样一来,策略和配置无需考虑资源是否虚拟化了,只需要使用相同的机制即可。
因此我们应该想到的是,引进SDN和NFV需要一个通用的架构以及通用的接口和拓扑机制,将传统的网络管理、网络安全解决方案和新的解决方案结合起来。只有这样,才能随时、随地虚拟化网络功能并且不影响整个网络架构和进程。