1.3. NFV 数据平面连接
随着网络功能虚拟化(NFV)的推出,更多网络供应商开始将其传统设备实施为 VNF。虽然大多数网络供应商都在考虑虚拟机,但有些网络厂商也会调查基于容器的方法作为设计选择。由于以下两个主要原因,Red Hat OpenStack Services on OpenShift (RHOSO)环境应该非常丰富且灵活:
- 应用就绪性 -网络供应商目前正在将其设备转换为 VNF。市场中的不同 VNF 具有不同的成熟度水平;这种就绪性障碍包括启用 RESTful 接口在其 API 中启用 RESTful 接口,实现其数据模型变得无状态,并提供自动化管理操作。OpenStack 应为所有提供一个通用的平台。
广泛用例- NFV 包括广泛的应用程序,它们服务于不同的用例。例如,虚拟网络抢占(vCPE)旨在在客户内部提供多个网络功能,如路由、防火墙、虚拟专用网络(VPN)和网络地址转换(NAT)。虚拟 Evolved Packet Core (vEPC)是一个云架构,它为 Long-Term Evolution (LTE)网络的核心组件提供经济有效的平台,允许动态置备网关和移动端点,以保持智能手机和其他设备的数据流量增加。
这些用例使用不同的网络应用程序和协议实施,需要基础架构的不同连接、隔离和性能特性。在 control plane 接口和协议与实际转发平面之间分离也很常见。OpenStack 必须足够灵活,以提供不同的数据路径连接选项。
在原则上,有两种常见的方法来为虚拟机提供 data plane 连接:
- 直接硬件访问 可绕过 Linux 内核,并使用 PCI Passthrough 或单个根 I/O 虚拟化(SR-IOV)和物理功能(PF)直通等技术向物理 NIC 提供安全直接内存访问(DMA)。
- 使用虚拟交换机(vswitch),作为 hypervisor 的软件服务实施。虚拟机使用虚拟接口(vNIC)连接到 vSwitch,而 vSwitch 能够在虚拟机之间转发流量,以及虚拟机和物理网络之间的流量。
有些快速数据路径选项如下:
- 单根 I/O 虚拟化(SR-IOV) 是使单个 PCI 硬件设备显示为多个虚拟 PCI 设备的标准。它的工作原理是引入物理功能(PF),它们是功能齐全的 PCIe 功能,代表物理硬件端口和虚拟功能(VF),它们是分配给虚拟机的轻量级功能。对于虚拟机,VF 类似于直接与硬件通信的常规 NIC。NIC 支持多个 VF。
- Open vSwitch (OVS) 是一种开源软件交换机,旨在用作虚拟服务器环境中的虚拟交换机。OVS 支持常规 L2-L3 交换机的功能,还支持 OpenFlow 等 SDN 协议,以创建用户定义的覆盖网络(如 VXLAN)。OVS 使用 Linux 内核网络来通过物理 NIC 在虚拟机和主机之间切换数据包。OVS 现在支持带有内置防火墙功能的连接跟踪(Conntrack),以避免使用 iptables/ebtables 的 Linux 网桥的开销。Red Hat OpenStack Platform 环境的 Open vSwitch 提供了与 OVS 的默认 OpenStack Networking (neutron)集成。
- 数据平面开发套件(DPDK) 由一组库和轮询模式驱动程序(PMD)组成,用于快速数据包处理。它设计为在用户空间中运行,使应用程序能够直接从 或 NIC 执行自己的数据包处理。DPDK 可减少延迟并允许处理更多数据包。DPDK Poll 模式驱动程序(PMD)在忙碌循环中运行,持续扫描客户机中主机和 vNIC 端口上的 NIC 端口以获取数据包。
- DPDK 加速 Open vSwitch (OVS-DPDK) 是与 DPDK 捆绑在一起的,用于 Linux 内核的高性能用户空间解决方案,并将内存访问(DMA)直接发送到物理 NIC。其理念是将标准 OVS 内核数据路径替换为基于 DPDK 的数据路径,在内部使用 DPDK 进行数据包转发的主机上创建一个用户空间 vSwitch。这种架构的优点是用户最好是透明的。它公开的接口(如 OpenFlow、OVSDB、命令行)保持不变。