容器技术在移动核心网的应用
2018-05-04何宇锋林奕琳张琳峰
何宇锋,林奕琳,张琳峰
(中国电信股份有限公司广州研究院,广东 广州 510630)
1 引言
根据思科Mobile Visual Networking Index(VNI)报告预测,全球移动数据流量在2016年至2021年间将增长7倍,推动流量增长的因素主要包括移动用户、智能手机和物联网连接的迅猛增长,网络速度的快速提升,以及移动视频消费的大幅增加。同时传统网络存在着封闭、专用、不能灵活调度、缺乏高效管理、运营成本高、利用率低等问题。
面临众多新型的网络业务、极大的流量压力及传统网络带来的问题,运营商必须对网络架构进行改革,在这样的背景下,运营商牵头提出了网络功能虚拟化(NFV, Network Function Virtualization)。移动核心网使用虚拟化技术带来的优点包括以下几个方面:
(1)降低运营商采购成本和运营成本;
(2)基于资源池灵活配置网络功能,提高网络使用效率;
(3)动态地配置网络,给用户提供的服务具有更高可用性和弹性;
(4)提升网络灵活性,缩短传统运营商的创新周期,加快业务推向市场的速度。
目前的移动核心网虚拟化主要是通过虚拟机承载,而容器作为一种轻量级的虚拟化技术,已受到越来越多的运营商关注,如何将虚拟化的移动核心网承载到容器上,逐渐成为研究热点。
本文首先介绍了容器技术,并对比了容器技术和虚拟机技术的特性,然后使用了开源软件验证了容器技术在4G核心网应用的可行性,最后介绍了容器技术在5G核心网的应用承载方案,并给出了后续建议。
2 容器技术
2.1 容器技术介绍
容器(Container)是一种基于系统内核的轻量级虚拟化技术,可以在单一宿主机上同时提供多个拥有独立进程、文件和网络空间的虚拟环境(即容器)。同时,容器也是一种敏捷的应用交付技术,将应用依赖的软件栈整体打包,以统一的格式交付运行。
容器具有以下的技术特点:
(1)轻量级:镜像体积小,占用资源少,单机一般可以同时运行上百个容器;
(2)易部署:应用整体打包成标准格式、仓库存储、单命令部署的组件;
(3)快速启停:无需加载整个操作系统,仅受进程自身启动时间影响;
(4)高性能:直接通过内核访问磁盘和网络I/O,I/O性能接近物理机;
(5)弱隔离:依赖Linux内核机制隔离资源,内核隔离机制成熟度较低。
容器技术核心体系包含了三大部件,分别是容器引擎、镜像仓库和容器管理。
容器引擎是整个容器技术栈的核心,负责容器的创建、运行和管理,为容器挂载存储和网络资源,并对外提供轻量级的容器管理接口。目前主流的开源容器引擎包括Docker公司的Docker、Ubuntu的LXC/LXD和CoreOS团队的Rocket,其中Docker是容器引擎的事实标准。
镜像是容器创建的基础,容器镜像采用分层结构构建,打包了应用软件、运行环境和依赖库,通过镜像仓库提供镜像文件的保存和分发,保证了开发测试生产环境的一致性和应用快速复制的高效性。目前主流的开源镜像仓库包括Docker公司的Registry和VMware公司的Harbor。
容器管理是为了支撑分布式系统的复杂工作负载,让众多跨主机的容器协同工作的框架和解决方案,用来支撑容器集群的服务编排、资源调度和服务发现,保证整个集群能够可靠、高效、合理地运转。Kubernetes、Swarm和Mesos是当前主流的三大容器集群管理系统,其中Kubernetes的技术领先,成熟度最高,市场占用率超过50%,接近成为容器集群管理的事实标准。
容器拥有着双重属性,包括:
(1)资源属性:面向资源,是一种操作系统的虚拟化方式;轻量化,节省了GuestOS开销;启动快,秒级;隔离能力弱,共享OS内核;
(2)应用属性:面向应用,是一种应用打包和发布方式;依赖自包含、跨平台兼容;Build-Ship-Run的一致性,便于发布、分发、加载。
容器的双重属性决定了它是微服务的最佳载体。
2.2 容器技术与虚拟机技术的特性比较
根据Docker官网介绍,容器与虚拟机对比如图1所示,容器共享宿主机操作系统,比虚拟机少了GuestOS层,因此在体量上,容器较虚拟机更轻量级,同时由于直接通过系统内核访问硬件,在理论上具备更佳的性能,但容器在安全性和成熟度上不如虚拟机。
表1具体总结了使用容器技术与虚拟机技术的特性比较,可见容器技术在许多场景下都具有巨大优势,特别是在业务交付敏捷和资源利用率高的应用场景。
图1 容器与虚拟机对比
表1 容器技术与虚拟机技术的特性比较
3 容器技术在4G核心网的试验
为验证容器技术在4G核心网应用的可行性,同时对容器、虚拟机的特性进行对比,本文将在实验室使用开源软件NFV_LTE_EPC进行试验。
试验步骤:首先在技术成熟的虚拟机上进行编译,在虚拟机上部署验证后再进行容器化方案研究;
硬件环境:惠普C7000刀框、每个刀片包含2个8核2.4 GHz CPU、256 GB内存、2个800 GB SSD硬盘;
软件环境:NFV_LTE_EPC、Linux操作系统、Qemu-KVM、kubernetes、Docker Engine、MySQL、Xshell。
3.1 开源vEPC的虚拟机部署试验
本次试验采用开源软件NFV_LTE_EPC从GitHub下载,模拟网元如图2所示,对开源软件所需的环境进行配置、编译后,可以获得如图3、图4所示的运行状态。在启动终端模拟器进行用户附着后,可以得出图5的运行结果。
图2 开源软件NFV_LTE_EPC模拟的网元架构图
图3 网元vSGW和vPGW的运行状态
3.2 开源vEPC的容器部署试验
(1)容器镜像的生成
镜像是一个只读的容器模板,含有启动容器所需的文件系统结构及其内容,因此是启动容器的基础。可以这么理解,镜像是容器的静态视角,容器是镜像的运行状态。
图4 网元vMME和vHSS的运行状态
图5 开源软件NFV_LTE_EPC的运行结果
在这次的试验过程中所使用到的基础镜像是官方所提供的tutorialtest纯净ubutnu镜像,元镜像比较小(不到100 M),在此基础上,使用DockerFile方式封装和层叠所需的文件。图6为hss镜像的DockerFile文件,里面主要是加入了vepc_hss.out进程模块和autosh.sh自动化脚本,ENTRYPOINT是容器启动时的进程执行入口,可通过该入口在启动容器时执行相关的指令操作。
图6 开源vEPC的容器镜像生成
在完成Docker File的编写后,只要执行相应的docker build指令,就能通过脚本打成镜像。图7是将各个NFV_LTE_EPC模块打包好后的镜像:
图7 NFV_LTE_EPC的网元容器镜像
(2)容器的kubernetes集群环境脚本与执行
Kubenetes是一款由Google开发的开源的容器编排工具(GitHub源码),在Google已经使用超过15年,支持对容器集群进行调度、负载均衡、应用伸缩、管理和监控等功能,截至2017年底,使用Kubernetes作为容器管理工具的企业占比达77%,已经成为了事实标准,本次试验使用Kubernetes实现对各个网元的实例化、扩容、缩容、升降级等管理功能。图8展示了各网元在容器化环境下的运行状态:
图8 NFV_LTE_EPC各网元的容器化部署
3.3 容器与虚拟机的性能比较
在NFV_LTE_EPC各网元分别在虚拟机和容器试验成功后,本文对两种部署方式的特性进行了测试对比,表2为具体的对比数据:
表2 容器技术与虚拟机技术部署NFV_LTE_EPC的特性比较
从表中可以看出,在启动速度、扩缩容时间、重启时间以及升级及回滚的性能方面,容器相比虚拟机都有着明显的优势。但为了更好地适应容器部署环境,EPC自身需要进行一定的改造,主要包括:
(1)以微服务理念拆分业务服务与基础服务,更加吻合容器的“小”、“快”的特点;
(2)无状态设计改造,业务处理和数据存储分离,使无状态服务可以随时扩展、收缩和重启;
(3)通过标准化、透明化、轻量级的协议封装服务通信接口。
这些特点都在5G核心网架构设计中得以体现。
4 容器技术在5G核心网的应用研究
5G涵盖了三大应用场景:增强移动宽带业务(eMBB, enhanced Mobile Broadband)、海量机器通信(mMTC, Massive Machine Type Communication)和高可靠低时延(URLLC, Ultra Reliable Low Latency Communications),每种技术场景都提炼于各行各业对未来通信的需求。
而车联网、大规模物联网、工业自动化、远程医疗、VR/AR等,这些服务对网络要求不一,比如工业自动化要求低时延、高可靠但对数据速率要求不高;高清视频无需超低时延但要求超高速率;一些大规模物联网不需要切换,部分移动性管理对之而言是信令浪费等,为此5G要多功能满足差异化的网络服务。在面向未来万物互联、垂直行业灵活多变的需求基础上,5G核心网相对于4G核心网的区别包括:
(1)控制与承载彻底分离,引入服务化架构;
(2)网络功能模块化,颗粒度进一步细化;
(3)网络功能模块对外提供基于HTTP的API服务化接口;
(4)无状态化、业务处理与数据存储分离;
(5)引入网络切片,网络业务“搭积木”式按需灵活定制。
相对于4G核心网,5G核心网最显著的区别在于引入“互联网化”基因,基于云原生原则,实现了服务化架构(SBA, Service-based Architecture),如图9所示。而容器的双重属性(资源属性和应用属性),决定了它是微服务的最佳载体,因此容器技术将是5G核心网的重要的备选资源载体。
图9 5G服务化架构
对于实现5G核心网容器化承载方式,主要会有三种:虚拟机容器、虚拟机和容器混合承载以及裸机容器承载,如图10所示。
对于虚拟机容器承载,是在虚拟机上叠加容器承载5G VNF,可利用IaaS现有成熟的网络和存储能力,同时通过虚拟机隔离,以更灵活的方式实现租户间安全隔离,有效地弥补了容器在网络和安全方面的不足。但由于容器部署于虚拟机之上,存在5%~10%的性能损耗,同时容器资源调度受限于虚拟机。
对于虚拟机和容器混合承载,5G VNF将按需部署在IaaS的虚拟机或容器中,IaaS将统一管理承载虚拟机/容器的裸机,能充分发挥容器的性能优势。但容器管理平台如何与虚拟机管理平台进行统一将是一项挑战。
对于裸机容器承载,将直接基于裸机部署的容器承载5G VNF,能够充分发挥容器性能和大规模调度优势。但容器平台及周边生态成熟度仍有待提升。
对比容器承载5G核心网的三种方式,裸机容器承载模式是最能发挥容器整体性能、大规模资源调度的承载模式,然而由于容器的网络、安全以及周边生态仍未成熟,通过虚拟机容器承载和虚拟机与容器混合承载5G核心网都将在一段时期内并存。
5 结束语
本文从原理上介绍了容器技术特点,并与虚拟机技术进行了理论对比。同时结合开源软件,对4G核心网进行了试验,通过数据对比了容器技术与虚拟机技术的不同特性,验证了容器技术快速启停、快速部署等优势。最后针对未来承载5G核心网服务化架构的三种方式进行了对比讨论,指出容器技术与虚拟机技术将在相当一段时间内并存。
对于容器技术在移动核心网的应用前景,有以下建议供探讨:容器技术在CT领域尚未有规模商用案例,在容器技术发展成熟前,4G核心网虚拟化以虚拟机承载为宜;而微服务化是移动网络的演进方向,容器是重要的备选承载方式,各厂商都计划在2018年下半年推出容器部署的5G核心网测试版本,建议继续紧跟容器产业和生态发展,适时开展5G核心网容器化部署的关键技术研究及功能/性能测试验证。
参考文献:
[1]3GPP TS 23.501 V1.5.0. System Architecture for the 5G System[S]. 2017.
[2]3GPP TS 23.401 V14.3.0. General Packet Radio Service(GPRS) enhancements for Evolved Universal Terrestrial Radio Access Network[S]. 2017.
[3]陆钢,杨新章,何震苇,等.电信运营商对容器技术的探索和思考[J]. 电信科学, 2016(8): 159-160.
[4]赵慧玲,解云鹏,史凡. 网络虚拟化及网络功能虚拟化技术探讨[J]. 中兴通讯技术, 2014(3): 8-11.
[5]赵河,华一强,郭晓琳. NFV技术的进展和应用场景[J].邮电设计技术, 2014(6): 62-67.
[6]崔萌. 移动核心网NFV部署及演进分析[J]. 电信科学,2016(3): 77-80.
[7]邵广禄. SDN/NFV重构未来网络[M]. 北京: 人民邮电出版社, 2016.
[8]史凡,赵慧玲. 中国电信网络重构及关键技术分析[J]. 中兴通讯技术, 2017,23(2): 2-5.
[9]李素游,寿国础. 网络功能虚拟化(NFV架构开发测试及应用)[M]. 北京: 人民邮电出版社, 2017.
[10]徐雷. 网络功能虚拟化技术及应用[M]. 北京: 人民邮电出版社, 2016. ★