随着虚拟化技术在服务器领域的成熟,它开始具备了担当电信运营商核心网级硬件架构虚拟化的能力。于是,网络功能虚拟化(NFV, Network Function Virtualization)从传统电信运营商内部发酵,开始了对核心网传统专用网络硬件的革新之旅。简单来说,传统核心网的智能被内嵌在专用的硬件和芯片里,致使其价格昂贵、管理成本居高不下、变更困难。 这是因为当年通用的硬件架构没法满足电信运营商级性能、功能等要求。今天运行在标准x86服务器上的虚拟化已经能够支撑各种关键业务,为此,电信运营商开始拥抱软件定义数据中心(SDDC, Software-Defined Data Center)。
SDDC建设中,电信运营商正面临诸多挑战:一方面新的5G架构投入巨大,正吞噬大量利润。同时,OTT(Over-The-Top)供应商正通过互联网提供增值服务来蚕食传统电信运营商的客户和利润。传统电信运营商迫切需要推出下一代的新服务来和OTT供应商竞争,走上架构和应用的革新之旅。
从2015年开始,国内三大运营商陆续发布了自己的下一代网络重构战略技术白皮书,开始了运营商网络重构的进程。这是一个自下而上的革命性架构变革,从应用层面基于开源Linux操作系统的VNF(Virtualization Network Functions,虚拟网络功能)网元,到承载VNF网元的虚拟化内核系统及网络数据流量转发依赖的数据平面,再到顶层与运营商OSS/BSS(Operation Support System/Business Support System,运营支撑系统/业务支撑系统)运维系统平滑对接的业务灵活编排与统一调度管理系统。
紫光股份旗下新华三集团作为国内优秀的虚拟化厂商之一,也积极参与虚拟化部分相关标准制定、集采测试、分层解耦测试,围绕电信级Linux、电信级KVM、电信级vSwitch提出一整套解决方案,并推出H3C CAS电信级实时虚拟化版本。
电信级网络服务和IT服务的区
虚拟化技术是NFV(网络功能虚拟化)的一项重要使能技术,其使得在标准化的通用硬件设备(x86服务器、存储和交换设备)向上提供一致的接口和环境,上层的多种网络设备功能可以透明地使用和访问底层资源。如图2所示,在NFV环境中,虚拟化系统运行在通用硬件设备和应用之间,提供了物理硬件(即通用设备)的虚拟化功能,将物理硬件的计算、存储和网络通信资源进行池化,并以虚拟机和虚拟网络的形式提供给应用(即虚拟化的网元功能VNF)。
图2 虚拟化在ETSI NFV ISG的架构中的位置
NFV的虚拟化系统大多数是基于云计算技术实现的,但是上层的电信级网络服务和IT服务却不同,电信级网络服务和IT服务的主要区别如下:
1. 资源消耗方面:IT服务以计算为中心,其性能主要取决于CPU和内存的数量和能力;电信级网络服务则以网络和转发能力为中心,I/O的带宽和内存大小是主要的影响因素。
2. 业务模型方面:IT服务器一般使用数量较多的小虚拟机(VM),且虚拟机之间相关性较小;NFV虚拟化中间件上的电信业务VNF则往往使用数量相对较少的大虚拟机,且各个虚拟机之间相关性较强。这里的大和小指的是虚拟机所配置的vCPU、内存、虚拟硬盘和虚拟网卡等资源的耗用量。
3. 性能要求方面:IT服务只关心可达性,对时延和QoS的要求不高;而电信级网络服务则需要保障端到端的时延和QoS。
由于电信级网络服务和IT服务的差异性,导致NFV虚拟化系统与IT云计算中的虚拟化系统存在很多差异,特别是在高可靠、高性能、高实时性、运维管理几个方面的更高要求。下面将结合CAS电信级虚拟化实践经验来具体展开阐述。
虚拟化内核优化
电信网络服务中有一些实时确定性要求强的业务,比如实时语音通话,传统上采用实时嵌入式操作系统(比如vxworks等)来满足对业务实时调度和低延时的需要。虚拟化以后,在通用硬件以及上层业务应用之间还隔着一个虚拟化平台,如果虚拟化平台不具有实时确定性,这些业务很难实现虚拟化。
虚拟化平台的实时确定性可以从两个方面来强化。一方面,对虚拟化平台的操作系统进行增强,当前虚拟化系统要对开源的Linux进行实时化适配。另外一方面,对虚拟化中间件自身进行增强,通过优化来提高自身的实时性和调度确定性。
针对通用Linux在实时方面的缺陷, H3C CAS虚拟化系统基于实时抢占补丁(Realtime Preemption Patch)二次开发实时性改进,着眼于通用Linux内核的内部实现,在原有的低延迟补丁和抢占补丁基础上,直接修改内核源代码,加入了中断线程化、高精度时钟、优先级继承等新特性,将通用Linux内核修改为完全可抢占式内核,核心思想是改造内核的不可抢占区域,降低操作系统层面的时延,使通用Linux操作系统成为能够承载电信级关键业务应用的电信级Linux系统,针对KVM在NFV领域的不足, CAS则在NUMA配置、时钟优化、虚拟机CPU隔离、IRQ亲和性、迁移优化等方面做了深度优化。
虚拟化高可靠机制优化
电信运营商系统要求保持99.9999%~99.999%级别的高可靠,确保每年的停机时间不超过5分钟,对于虚拟化平台来说,本身也必须具有高可用设计,以满足整个虚拟化系统的电信级可靠性。比如沿用传统设备的主备模式来设计双控制节点的高可用,实现控制节点多种系统服务主备的独立切换以及关键软件进程故障自我修复;能够快速探测控制节点,计算节点和存储节点的故障,并做相应的业务自动迁移等。
系统的可靠性也同样依赖于业务本身的可靠性。为此,除了业务设计上的鲁棒性考虑以及主备设计,也需要虚拟化系统提供能力来保证业务最终的高可靠性。比如,提供计算节点反亲和性功能,避免业务的主备跑在同一个计算节点带来单点故障等;能够快速感知业务虚机的系统故障,并且提供监控虚机内部应用的机制以探测虚机应用级粒度的故障到几百毫秒。
针对以上要求,H3C CAS在网络、虚拟机、宿主机、管理节点等四个层面进行了高可靠机制优化:
1. 网络分平面高可靠:采用四网分离式的架构方案,不同平面之间物理隔离,避免不同性质网络流量的混杂传输与交叉影响,单个平面的故障不影响其它平面继续工作,运维管理权责清晰,同时,各个网络平面建议采用多链路聚合冗余方式,避免单一故障点导致的网络中断。
2. 虚拟机故障HA:虚拟机监控服务进程保持与运行在虚拟机内的CAStools程序的实时通信,以检测运行在用户态的虚拟机进程的存活状态。同时,为了保证虚拟机健康状态数据传输的可靠可信,HA监控服务进程还设计了一种watchdog机制,两套心跳检测机制互备,避免在毫秒级的高频度心跳环境中存在虚拟机状态误判的可能性。
3. 宿主机故障HA:虚拟化管理节点在管理平面网络内通过心跳机制集群内宿主机是否能够正常响应,一旦确认宿主机设备故障,资源管理服务将故障宿主机上的虚拟机迁移到集群内计算资源最富余的正常宿主机上,以继续提供服务。
4. 虚拟化管理节点HA:提供状态检测、数据同步、数据备份三种管理节点的高可靠性机制,主备管理节点采用管理平面的心跳检测,备用节点内的主通信服务实时检测主用节点的健康状态,一旦发现主用管理节点故障,备用管理节点立即接管主用节点业务,持续对外提供服务。主管理节点内的双机热备服务程序实时将管理数据库和虚拟机配置文件的变化增量通过数据交换服务同步到备用节点。管理数据可以定时自动备份和手工定时备份到指定的存储位置。
电信级vSwitch
运营商核心网转发面设备通常具有较高的转发性能要求。比如,承载运营商网络数据流量的分组域核心网网关设备,大多数传统电信设备厂商都采用专有的转发芯片(例如,ASIC或NP)实现高性能转发的目标,但是这种硬件形态的设备可扩展性差。采用虚拟化之后,使用通用x86硬件,在运算能力、内存访问能力、以及存储访问能力方面,需要尽量减少虚拟化平台带来的能力损耗,同时提供策略保证不同的虚机在平台上特别是在同一个计算节点上不会互相干扰,确保业务能获得可预测的、一致性的表现,业务转而依赖虚拟化平台来提供相应的性能加速,比如报文的加速收发、报文的加解密处理等。有些需要虚拟化平台提供对底层加速芯片的支持,比如加解密,而有些则要求虚拟化平台提供灵活的接口供上层业务使用,比如基于纯软件虚拟交换机的虚拟化接口的DPDK报文加速处理。
OVS(Open vSwitch,开放式虚拟交换机)是一个高质量的基于Apache 2.0许可协议的开源虚拟交换机。但是,OVS在NFV应用场景下的转发性能、时延与抖动都离商业应用有一段距离。H3C CAS虚拟化管理平台利用DPDK加速的思想,对OVS进行了虚拟化层面的功能改造和性能上的加速优化处理,主要通过基于轮询的PMD驱动、基于无锁环形队列的内存池管理、内存大页、流分类、CPU亲和性、内存零拷贝、缓存分配、硬件加速等技术层面进行优化加速。
图3 DPDK加速思路
结束语
当前,5G技术发展迅猛,5G网络是面向多连接和多样化业务的弹性网络,网络切片是其中的技术热点,而实现网络切片,NFV是先决条件。作为软件基础设施的虚拟化也会面临更多的挑战,如何为不同SLA的服务提供更多的QoS控制,如何充分利用通用硬件的安全、卸载能力,如何对内核进行更深层次的优化,如何对各种协议栈进行优化,这些都是虚拟化平台需要长期投入的优化工作。