《深入浅出DPDK》——DPDK网络功能虚拟化

DPDK网络功能虚拟化

NFV(Network Function Virtualization)即网络功能虚拟化。初衷是通过使用英特尔X86等通用服务器硬件平台以及虚拟化技术。来承载基于软件实现的网络功能。

NFV包含的模块:

  • NFVI(网络功能虚拟化基础设施),它提供了支持网络虚拟功能执行所需的虚拟化资源,包括符合COTS(Commercial-Off-The-Shelf) 开放式标准定义的硬件,必要的硬件加速器,可以虚拟和抽象底层硬件的软件层。

  • VNF(虚拟网络功能),是一个软件实现的网络功能,能够运行在NFVI框架之上。它可以和一个单元管理系统(Element Managmet System,EMS)工作,是适用于特定的功能。VNF类似我们今天的网络 节点,纯软件的实现可以帮助网络设备脱离对硬件依赖。更加通俗的理 解是,NFV是一种新型的网络设备部署方式,VNF则是其中某个被实例化的虚拟网络设备或节点。

  • NFV M&O(NFV管理与编排),主要负责所有与NFV相关的硬件和软件资源的管理与编排,覆盖整个虚拟网络基础设施的业务流程和生命周期管理。NFV M&O专注于在NFV架构下虚拟化相关的管理任务, 也负责与外部的场景进行交互,包括运营支撑系统(Operation Support System,OSS)和业务支撑系统(Buniess Support System,BSS),使 NFV能够顺利集成到一个已存在的网络管理系统。

OPNFV:涉及从芯片设计、操作系统、服务器,到设备研发、存储、运维的全产业链的规模。

DPDK在其中扮演了非常重要的角色,很多NFV的开源项目直接或间接用到DPDK,包括DPACC(数据面加速)、Open vSwtich for NFV、OpenContrail Virtual Networking for OPNFV、NFV Hypervisor/KVM、Software FastPath Service Quality Metrics、Service Function Chaining等项目。

除了网络数据转发之外,DPDK近期还推出了一些针对特定领域的数据处理功能,包括CryptoDev API(主要用于数据加密)、Pattern Matching API(广泛应用于字符的查找匹配)和 Compression API(用于数据的压缩与解压缩领域)。

NFV的部署分为四个步骤:

1.分解:第一个阶段是网络功能的模块化与软件化,将依赖专用下层硬件的设计进行软件化的修改,达到能够移植到通用服务器上的标准。

2.虚拟化:可以利用虚拟化技术带来部署上的灵活性,根据服务器平台运算资源的密度,动态部署。

3.云化:云计算需要实现动态扩容,按需增加处理能力。运算负荷与能力大量提升同时,网络数据处理量也会大幅增加。当基于虚拟化技术的VNF已经就绪后,还需要支持动态地将网络设备功能迁移的能力,提供弹性 的网络数据业务。

4.重构:重构是将虚拟化的资源和VNFs拆分成更小的功能单元,即所谓的微服务。

VNF部署的形态:

VNF是NFV的重要组成部分之一。VNF把传统的非虚拟化网络中的功能节点进行虚拟化。

VNF在NFV的基本架构中处于NFVI的上面,当考虑VNF的性能时,需要考虑本身的架构设计,以及NFVI能够提供的硬件资源能力和交互接口。

VNF可以由运行在多个虚拟机上的不同内部模块组成。

系统整体架构的设计方面,我们需要考虑如下几点:系统资源的分配、网卡虚拟化接口的选择、网卡轮询和中断模式的选择、硬件加速功能的考虑、QoS(服务质量)的保证。

VFN自身特性的评估:

主要通过两个方面去了解:虚拟网络设备本身的特点、设备的可扩展性。

通常数据平面的VNF设备(vRouter、vCDN等),主要是处理数据报文的接收、修改、转发等,这些都要求密集的内存读写操作,以及网络I/O操作。

而控制平面的VNF设备(vBRAS等),它们主要不是处理数据通信的,更多是处理会话管理、路由或认证控制等。与数据平面的VNF设备相比,对每个报文的处理逻辑要复杂点,所以更偏计算密集型。

但由于控制平面的报文速率偏低,因此它的整体处理器的利用率并不高。但是,数据信号处理的VNF(vBBU),其有大量的数字处理请 求,如快速傅立叶变换的编解码操作,这些设备就是计算密集型,对时延有较高的要求。

VNF的设计:

VNF虚拟网络接口的选择:

目前NFVI提供给虚拟机的网络接口主要有四种方式:IVSHMEM共享内存的PCI设备,半虚拟化virtio设备,SR-IOV的VF透传,以及物理 网卡透传。

IVSHMEM共享内存的PCI设备 :

IVSHMEM是Cam Macdonell提出的概念,基于Qemu的技术实现,用于虚拟机之间或虚拟机和主机之间共享内存的一个机制。它把主机上的一个内存块映射成虚拟机里的一个PCI设备,有三个BAR空间。

网卡轮询和混合中断轮询模式的选择:

如果在自身特性的评估中我们得出VNF自身特性是IO密集型的,并且是全时间段或大多时间段都是这种特性,那么毫无疑问我们应该选择 轮询模式,它能够最大限度地获得性能,当然也需要处理器100%地处于繁忙状态一直维持运行在最高的处理器频率上,这也意味着系统一直维持最大能耗。

但如果不是全时间段的IO密集型,是间歇性,一段忙一段闲的情况,那么选择轮询模式可能会浪费更多处理器资源和能耗。在这种场景 下,可以选用混合中断轮询模式。

硬件加速功能的考虑:

  1. SR-IOV:是否可以被虚拟机独占的,还是可以共享的?

  2. 报文处理路径:报文卸载到硬件处理后,是否还需要返回到CPU继续处理,或有多次CPU与硬件加速卡的交互,并且和传统的全软件处 理比较,其报文处理路径是否有增长,对性能的影响如何?

  3. 时延:由于宿主机的加入,会导致在虚拟设备上处理报文的时间变长。智能加速卡的引进,能否帮助减少处理报文时延?如果整个报文 处理时间增长,其时延是否可以被业务所接受?

  4. 智能加速卡的性价比、灵活度等。

服务质量的保证:

在NFV应用中,一些VNF设备(如防火墙,NAT等)可能会运行在同一个x86平台上,由于它们对这些共享资源的使用率不同,会导致它们的时延、抖动等整体性能具有不可确定性。

为了避免这个不确定性,保证每个VNF设备的服务质量,Intel推出了Platform QoS功能,里面包含有Cache监控技术(Cache Monitoring Technology,CMT)、Cache分配技术(Cache Allocation Technology,CAT)以及内在带宽监控技术(Memory Bandwidth Monitoring,MBM)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值