前文《NFV是个啥?》大致介绍了:
NFV意为网络功能虚拟化,事实上是网络功能云化。其本质是将硬件网络设备拆开,把专有硬件改用通用硬件(如x86服务器),并将专有网络功能改为通用网络功能,进而通过将通用硬件进行虚拟化构成云化资源池,通用网络功能运行在这个资源池中。
简单说就是将“硬”的专有设备转变为“虚”的软件网络设备。
高大上一点,也就是“软硬件解耦、硬件通用化、网络功能软件化与虚拟化部署”。
一、NFV应该是什么样的?
ESTI(European Telecommunications Standards Institute,欧洲电信标准化协会)认为NFV应该是这样的:
上面的图看起来,就不太好理解,我们再来抽象一层:
再稍微优化一下,应该是这样:
现在我们来解释这几块内容:
网络功能原本在硬件盒子里面是软件,需要从专有硬件抽取出来,那么怎么个抽取法呢?是将原有功能经过适配后直接形成一个单体,还是做进一步的改造形成微服务,再或是面向网络领域的优化级微服务?
5G核心网中的微服务,你懂了吗?
不论是哪种抽取方法,网络功能都进行了软件化,最终为以软件包的形态存在,称之为VNF(虚拟化网络功能)。
VNF以软件的形态存在,需要部署在运行环境中,才能起到作用。之前我们习惯于将软件部署在物理服务器上,这与硬件盒子似乎也没啥区别,也就失去了NFV的意义。
所以说,VNF需要不是一粒“尘埃”,而是需要一片“沃土”,这片“沃土”进行VNF的承载,进行硬件资源的虚拟化、管理、监控,负责“承载”环境的创建、删除。
当前,这片“沃土”通常是OpenStack和Kubernetes,“承载”环境分别是虚拟机VM、容器运行环境。在这里,VNF就是虚拟机镜像或者容器镜像了。
一个VNF实现的是一种网络功能,如防火墙、路由器、交换机、负载均衡等等,不同用户所需要的网络服务可能是不同的,这就需要根据进行VNF的按需组合,形成链。
要想形成链(网络服务),就需要进行VNF进行编排,同时,也需要对VNF的生命周期进行管理,如创建、升级、删除、自愈等。
到这里,NFV的大致轮廓就清晰了。
二、NFV是如何运转起来的?
在前面我看到的是“离散”的点共同构成了NFV,如果要将NFV运转起来,那就需要将这些点连接起来,而如何连接又是根据用户需求进行的。
所以,我们从用户的需求来分析。用户规划好网络功能后,需要给用户提供一个“场所”进行:
① 选择VNF:在图形化界面进行拖拽VNF,并配置资源规格、性能要求等参数;
② 配置网络服务:将VNF进行编排,配置、转发图和 VNF 实例间连接;
③ 启动网络服务:触发网络服务构建,后台创建VNF网元和虚拟网络环境。
NFV环境,还需要做到:
① 监控网络服务:实时监控资源使用情况、可视化性能参数;
② 故障自愈:网元发生故障,则需要及时替换故障网元。
三、NFV有哪些应用场景?
NFV应用于电信网络和云数据中心。
1.电信网络
电信网络引入NFV的初衷是:
5G核心网应用较为广泛,其网络功能微服务化,使用的是面向云原生NFV技术。
2.云数据中心
云数据中心承载着互联网应用,而互联网应用架构又随着互联网业务的发展不断演进,其基础链路参见《云产品之负载均衡那些事儿》
每个基础链路可需要相应的虚拟网络,以实现安全隔离、转发、负载均衡等网络功能,基本上是4/7层协议的处理。
云网络的弹性要求这些网络功能可以快速、灵活地实现。
NFV是一种“软件形态”的虚拟网元,其本质上使用通用服务器CPU资源进行数据包的转发。可通过软件编码的方式满足云网络快速、灵活的需求。
总的来说,NFV技术在云网络中的应用,主要用来满足互联网应用程序的网络功能需求,进行4/7层协议的处理。
由于云网络面向海量的用户提供服务,NFV的性能就非常重要。
第一阶段:NFV的实现直接使用了Linux内核的网络转发能力,如负载均衡LVS;
第二阶段:NFV的实现借助了DPDK技术,绕过Linux内核,直接在用户空间实现各种网络功能,性能提升10左右;
总的来说,这两个阶段是将NFV直接部署在通用服务器上进行网络功能的实现。这会产生2个问题:
① 通用服务器从规划、申请、采购到上线的时间大约是1个月,如果遇到突发的业务需求,难以实现弹性扩展;
② 通用服务器使用不同的架构体系、不同型号,也面临着NFV需要不断适配的问题。
第三阶段:NFV直接部署在云主机上,云主机本身就具有弹性能力,能够较好地解决前2个阶段面临的问题。
全部0条评论
快来发表一下你的评论吧 !