网络功能虚拟化产品指南
网络功能虚拟化 (NFV) 概述.
OpenStack Documentation Team
rhos-docs@redhat.com摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
使用直接文档反馈(DDF)功能
使用 添加反馈 DDF 功能,用于特定句子、段落或代码块上的直接注释。
- 以 Multi-page HTML 格式查看文档。
- 请确定您看到文档右上角的 反馈 按钮。
- 用鼠标指针高亮显示您想评论的文本部分。
- 点 添加反馈。
- 在添加反馈项中输入您的意见。
- 可选:添加您的电子邮件地址,以便文档团队可以联系您以讨论您的问题。
- 点 Submit。
第 1 章 了解 Red Hat Network Function Virtualization (SVVP)
网络功能虚拟化(SVVP) 是一种基于软件的解决方案,可帮助通信服务提供商(CSP)超过传统专有硬件,以提高效率和效率,同时降低操作成本。
NFV 环境允许使用在标准硬件设备(如交换机、路由器和存储到虚拟化网络功能(VNF)等标准硬件设备上的)提供虚拟化环境,从而实现 IT 和网络聚合。管理和编配逻辑可部署和保持这些服务。NFV 还包括系统管理、自动化和生命周期管理,从而减少了需要手动工作。
1.1. NFV 的优点
实施网络功能虚拟化(SVVP)的主要优点如下:
- 通过允许您快速部署和扩展新的网络服务来满足需求,加快生存时间。
- 通过使服务开发人员能够使用与生产中使用的相同平台自助管理其资源,支持创新。
- 以小时或分钟为单位解决客户需求,而不是几周或天,而不会提高安全性或性能。
- 减少大写字母,因为它使用专有硬件,而不是昂贵的定制设备。
- 使用简化的操作和自动化来优化日常任务,以提高员工的正常运行时间并降低操作成本。
1.2. NFV Deployment 支持的配置
Red Hat OpenStack Platform (RHOSP)支持带有自动化 OVS-DPDK 和 SR-IOV 配置的 NFV 部署。有关技术预览功能的支持范围的更多信息,请参阅技术预览。
红帽不支持将 OVS-DPDK 用于非 NFV 工作负载。如果您需要用于非站工作负载的 OVS-DPDK 功能,请联络您的大客户经理(TAM),或创建一个客户服务请求问题单来讨论支持例外和其他选项。要创建一个客户服务请求问题单,请访问 创建一个问题单 并选择 Account > Customer Service Request。
- 超融合基础架构(HCI)
- 您可以将 Compute 子系统与 Red Hat Ceph Storage 节点并置。这种超融合模型提供较低的条目成本、较小的初始部署空间、最大化容量利用率以及 NFV 用例中效率更高的管理。有关 HCI 的更多信息,请参阅超融合基础架构指南。
- 可组合角色
- 您可以使用可组合角色创建自定义部署。可组合角色允许您为每个角色添加或删除服务。有关可组合角色的更多信息,请参阅 可组合角色和服务。
- Open vSwitch (OVS) with LACP
- 从 OVS 2.9 开始,完全支持带有 OVS 的 LACP。对于 Openstack control plane 流量,不建议这样做,因为 OVS 或 Openstack 网络中断可能会影响管理。如需更多信息,请参阅 Open vSwitch Bonding Options。
- OVS 硬件卸载
- Red Hat OpenStack Platform 支持 OVS 硬件卸载。有关使用硬件卸载部署 OVS 的详情,请参考 OpenvSwitch 硬件卸载。
- 打开虚拟网络(OVN)
RHOSP 16.1.4 中提供以下 NFV OVN 配置:
第 2 章 软件
2.1. ETSI NFV 架构
法国电信标准(ETSI)是一个独立的创新组,其为欧中的信息和通信技术(ICT)开发标准。
网络功能虚拟化(SVVP)侧重于解决涉及使用专有硬件设备的问题。使用 NFV 时,根据用例要求和创新,可以减少安装特定于网络的设备的需求。ETSI 行业规范组(ETSI ISG NFV)设置支持虚拟化功能的要求、参考架构和基础架构规格。
红帽提供了一个基于开源的云优化解决方案,以帮助通信服务提供商(CSP)实现 IT 和网络整合。红帽为 Red Hat OpenStack 添加了 NFV 功能,如单一根 I/O 虚拟化(SR-IOV)和 Open vSwitch。
2.2. NFV ETSI 架构和组件

通常,一个网络功能虚拟化(SVVP)平台有以下组件:
- 虚拟化网络功能(VNF) - 路由器、防火墙、负载均衡器、宽松网关、移动数据包处理器、服务节点、信号、位置服务和其他网络功能的软件实现。
- NFV Infrastructure (SVVPi) - 组成基础架构的物理资源(计算、存储、网络)和虚拟化层。网络包括用于在虚拟机和主机之间转发数据包的数据路径。这样,您可以在不关注底层硬件详情的情况下安装 sVirt。NFVI 形成 NFV 堆栈的基础。NFVI 支持多租户,并由 Virtual Infrastructure Manager (VIM)管理。增强的平台感知性(EPA)通过将低级别 CPU 和 NIC 加速组件公开给虚拟机数据包转发性能(吞吐量、延迟、jitter)。
- NFV 管理和编配(MANO) - 管理和编配层着重关注,在整个站生命周期中所需的所有服务管理任务。MANO 的主要目标是允许 Operator 向客户分离的网络功能定义、自动化、错误修正、监控和生命周期管理。这种分离需要额外的管理层,由虚拟功能管理器(VNFM)提供。DanM 通过直接与虚拟机交互或通过 Ice 供应商提供的元素管理系统(EMS)来管理虚拟机的生命周期。MANO 定义的其他重要组件是 Orchestrator,也称为 NFVO。带有各种数据库和系统(包括操作/业务支持系统(OSS/BSS))的 NFVO 接口,位于底部的 一 个,以及 使用它。如果 NFVO 想要为客户创建新服务,它会要求,MM 触发 IaaS 的实例化,这可能会导致多个虚拟机。
- 操作及业务支持系统(OSS/BSS) - 提供重要的业务功能应用程序,如操作支持和计费。OSS/BSS 需要适应 NFV,并与旧系统和新的 MANO 组件集成。BSS 系统根据服务订阅设置策略,并管理报告和计费。
- 系统管理、自动化和生命周期管理 - 管理系统管理、基础架构组件自动化和 NFVi 平台的生命周期。
2.3. Red Hat NFV 组件
用于 NFV 的红帽解决方案包括一系列产品,可作为 ETSI 模型中的 NFV 框架的不同组件。红帽产品组合中的以下产品集成到 NFV 解决方案中:
- Red Hat OpenStack Platform - 支持 IT 和 NFV 工作负载。增强的平台感知(EPA)功能通过支持 SR-IOV 和 OVS-DPDK 的 CPU 固定、Huge 页面、非统一内存访问(NUMA)关联性和网络适应器(NIC)提供确定的性能改进。
- Red Hat Enterprise Linux 和 Red Hat Enterprise Linux Atomic Host - 创建虚拟机和容器作为站。
- Red Hat Ceph Storage - 为服务提供商工作负载的所有需求提供统一的弹性和高性能存储层。
- 红帽 JBoss 中间件和红帽 OpenShift Enterprise - (可选)提供现代化 OSS/BSS 组件的功能。
- Red Hat CloudForms - 提供 IaaS 管理器,并在统一显示中显示来自多个来源的数据,如 VIM 和 NFVi。
- Red Hat Satellite 和 Ansible - (可选)提供增强的系统管理、自动化和生命周期管理。
2.4. NFV 安装摘要
Red Hat OpenStack Platform director 安装和管理完整的 OpenStack 环境。director 基于上游 OpenStack TripleO 项目,这是"OpenStack-On-OpenStack"的缩写。此项目利用 OpenStack 组件来安装全面运作的 OpenStack 环境;这包括一个名为 undercloud 的最小 OpenStack 节点。undercloud 置备和控制 overcloud (一系列用作生产 OpenStack 节点的裸机系统)。director 提供了安装强大且强大的完整 Red Hat OpenStack Platform 环境的简单方法。
有关安装 undercloud 和 overcloud 的更多信息,请参阅 Red Hat OpenStack Platform Director 安装和使用。
要安装 NFV 功能,请完成以下步骤:
-
在
network-environment.yaml文件中包含 SR-IOV 和 PCI Passthrough 参数,更新post-install.yaml文件以进行 CPU 调整,修改compute.yaml文件,并运行overcloud_deploy.sh脚本来部署 overcloud。 -
通过直接从 NIC 轮询数据,为快速数据包处理安装 DPDK 库和驱动程序。在您的
network-environment.yaml文件中包括 DPDK 参数,更新 CPU 调整的post-install.yaml文件,更新compute.yaml文件以使用 DPDK 端口设置网桥,以更新controller.yaml文件来设置网桥以及配置了 VLAN 的接口,并运行overcloud_deploy.sh脚本来部署 overcloud。
有关所需的 NFV 计划指南和配置,请参阅 网络功能虚拟化规划和配置指南。
第 3 章 NFV 硬件
有关 OpenStack 节点的硬件选择指南,请参阅 Director 安装和使用。
有关网络功能虚拟化测试的 NIC 列表,请参阅 网络适配器支持。需要客户门户网站登录。
第 4 章 NFV Data Plane 连接
随着 NFV 的引入,更多网络供应商开始将其传统设备实施为 VNF。虽然大多数网络供应商都考虑虚拟机,但有些网络供应商也作为设计选择调查基于容器的方法。由于两个主要原因,基于 OpenStack 的解决方案应该非常强大且灵活:
- 应用程序就绪性 - 网络厂商目前正在将其设备转换为 IaaS。市场中有所不同成熟度级别;此就绪的常见障碍包括在其 API 中启用 RESTful 接口,使数据模型成为无状态,并提供自动化管理操作。OpenStack 应为所有提供一个通用的平台。
广泛用例 - NFV 包括适用于不同用例的广泛的应用程序。例如,虚拟客户先决条件(vCPE)旨在为客户提供多种网络功能,如路由、防火墙、虚拟专用网络(VPN)和网络地址转换(NAT)。虚拟 Evolved Packet Core (vEPC)是一种云架构,它为 Long-Term Evolution (LTE)网络的核心组件提供成本有效的平台,允许动态置备网关和移动端点,以保持来自智能手机和其他设备的数据流量量。
这些用例使用不同的网络应用程序和协议实现,需要与基础架构不同的连接、隔离和性能特性。在 control plane 接口和协议和实际转发平面之间也很常见。OpenStack 必须足够灵活来提供不同的数据路径连接选项。
在原则中,有两种常见的方法来为虚拟机提供数据平面连接:
- 直接硬件访问 绕过 linux 内核,并使用 PCI Passthrough 或单个根 I/O 虚拟化(SR-IOV)和物理功能(PF)直通等技术为物理 NIC 提供安全直接内存访问(DMA)。
- 使用虚拟交换机(vswitch),作为虚拟机监控程序的软件服务实施。虚拟机使用虚拟接口(vNIC)连接到 vSwitch,vSwitch 能够在虚拟机和物理网络之间转发流量。
4.1. 快速数据路径选项
一些快速数据路径选项如下:
- 单根 I/O 虚拟化(SR-IOV) 是一种标准,使单个 PCI 硬件设备显示为多个虚拟 PCI 设备。它的工作原理是物理功能(PF),它是代表物理硬件端口和虚拟功能(VF)的全功能 PCIe 功能,它们是分配给虚拟机的轻量级功能。对于虚拟机,VF 类似于直接与硬件通信的常规 NIC。NIC 支持多个 VF。
- Open vSwitch (OVS) 是一个开源软件交换机,旨在用作虚拟服务器环境中的虚拟交换机。OVS 支持常规 L2-L3 交换机的功能,同时还提供对 SDN 协议的支持,如 OpenFlow 来创建用户定义的覆盖网络(如 VXLAN)。OVS 使用 Linux 内核网络来使用物理 NIC 在虚拟机和主机之间切换数据包。OVS 现在支持带有内置防火墙功能的连接跟踪(Conntrack),以避免使用 iptables/ebtables 的 Linux 网桥的开销。Open vSwitch for Red Hat OpenStack Platform 环境提供默认的 OpenStack Networking (neutron)与 OVS 集成。
- Data Plane Development Kit (DPDK) 由一组库和轮询模式驱动程序(PMD)组成,用于快速数据包处理。它设计为主要在用户空间中运行,使应用程序能够直接从或到 NIC 执行自己的数据包处理。DPDK 可减少延迟并允许处理更多数据包。DPDK Poll Mode Driver (PMD)在忙碌循环中运行,持续扫描客户机中的 NIC 端口和客户机中的 vNIC 端口,以了解数据包的情况。
- DPDK 加速 Open vSwitch (OVS-DPDK) 与 DPDK 捆绑,用于绕过 Linux 内核的高性能用户空间解决方案,并将内存访问(DMA)定向到物理 NIC。其的概念是将标准 OVS 内核数据路径替换为基于 DPDK 的数据路径,在内部使用 DPDK 以进行数据包转发的主机上创建一个用户空间 vSwitch。这种架构的优点是它对用户最透明。它公开的接口(如 OpenFlow、OVSDB (命令行)基本保持不变。
第 5 章 NFV 性能注意事项
要使网络功能虚拟化(SVVP)解决方案非常有用,其虚拟化功能必须满足或超过物理实施的性能。红帽的虚拟化技术基于高性能内核的虚拟机(KVM)管理程序,在 OpenStack 和云部署中通用的。
5.1. CPU 和 NUMA 节点
在以前的版本中,系统中所有 CPU 都可以访问 x86 系统上的所有内存。这会导致内存访问时间相同,无论系统中的哪个 CPU 执行操作,并被称为 Uniform Memory Access (UMA)。
在非统一内存访问(NUMA)中,系统内存被分成称为 node 的区域,这些区域被分配给特定的 CPU 或插槽。访问 CPU 本地的内存比连接到那个系统上的远程 CPU 的内存要快。通常,NUMA 系统上的每个套接字都有一个本地内存节点,其内容可以比本地节点本地到另一个 CPU 或所有 CPU 共享总线中的内存更快访问。
同样,物理 NIC 放置在 Compute 节点硬件的 PCI 插槽中。这些插槽连接到与特定 NUMA 节点关联的特定 CPU 套接字。为获得最佳性能,请将数据路径 NIC 连接到 CPU 配置(SR-IOV 或 OVS-DPDK)中的相同 NUMA 节点。
NUMA 丢失的性能影响非常显著,通常从 10% 性能命中或更高级别开始。每个 CPU 套接字可以有多个 CPU 内核,它们被视为用于虚拟化目的的独立 CPU。
有关 NUMA 的更多信息,请参阅 NUMA 是什么以及如何在 Linux 上工作?
5.1.1. NUMA 节点示例
下图显示了双节点 NUMA 系统的示例,以及 CPU 内核和内存页可用方式:

只有在来自 NUMA 节点 0 中的 VM1 中存在一个 NUMA 节点 1 中的 CPU 内核时,才可通过 Interconnect 访问远程内存。在这种情况下,NUMA 节点 1 的内存充当 VM1 第三个 CPU 内核的本地(例如,如果在上图中使用 CPU 4 分配了 VM1),但它充当同一虚拟机其他 CPU 内核的远程内存。
5.1.2. NUMA 感知实例
您可以将 OpenStack 环境配置为在具有 NUMA 架构的系统上使用 NUMA 拓扑感知。在虚拟机中运行客户机操作系统时,涉及两个 NUMA 拓扑:
- 主机物理硬件的 NUMA 拓扑
- 公开给客户端操作系统的虚拟硬件的 NUMA 拓扑
您可以通过将虚拟硬件与物理硬件 NUMA 拓扑保持一致来优化客户端操作系统的性能。
5.2. CPU 固定
CPU 固定是在给定主机上在特定物理 CPU 上运行特定虚拟机的虚拟 CPU 的功能。vCPU 固定提供了与裸机系统上任务固定类似的优点。由于虚拟机在主机操作系统上作为用户空间任务运行,因此固定会增加缓存效率。
有关如何配置 CPU 固定的详情,请参考 Configuring the Compute Service for Instance Creation 中的 Configuring CPU pinning on Compute nodes 部分。
5.3. 巨页
物理内存划分为称为页的连续区域。为了提高效率,系统通过访问整个页面而不是单个字节内存来检索内存。要执行此转换,系统会在翻译 Lookaside Buffers (TLB)中查找包含最近或经常使用页的物理到虚拟地址映射的 Translation Lookaside Buffers (TLB)。当系统无法在 TLB 中找到映射时,处理器必须迭代所有页表以确定地址映射。优化 TLB,以最大程度降低这些 TLB 丢失过程中发生的性能损失。
x86 系统中的典型页面大小为 4KB,其他较大的页面大小可用。较大的页面大小意味着页面总体较少,因此增加其可将其虚拟到 TLB 中物理地址转换的系统内存量。因此,这减少了 TLB misses,这会提高性能。使用较大的页面大小时,内存可能会利用率不足,因为进程必须在页面中分配,但可能需要所有内存。因此,选择页面大小会在提供带有更大页面的更快的访问时间之间进行破坏,并确保使用较小的页面的最大内存使用率。
5.4. 端口安全性
端口安全性是一种反欺骗措施,阻止任何与原始网络端口的源 IP 和源 MAC 地址不匹配的出口流量。您不能使用安全组规则查看或修改此行为。
默认情况下,在 OpenStack 中新创建的 Neutron 网络上会将 port_security_enabled 参数设置为 enabled。新创建的端口从它们创建的网络中复制 port_security_enabled 参数的值。
对于某些 NFV 用例,如构建防火墙或路由器,您必须禁用端口安全性。
要在单一端口上禁用端口安全性,请运行以下命令:
openstack port set --disable-port-security <port-id>
要防止在网络中的任何新创建的端口上启用端口安全性,请运行以下命令:
openstack network set --disable-port-security <network-id>
第 6 章 查找更多信息
下表包含其他用于参考的红帽文档:
Red Hat OpenStack Platform 文档套件可在此处找到: Red Hat OpenStack Platform 文档套件
表 6.1. 可用文档列表
| 组件 | 参考 |
|---|---|
| Red Hat Enterprise Linux | Red Hat OpenStack Platform 在 Red Hat Enterprise Linux 8.0 上被支持。有关安装 Red Hat Enterprise Linux 的详情,请参考对应的安装指南: Red Hat Enterprise Linux 文档套件。 |
| Red Hat OpenStack Platform | 要安装 OpenStack 组件及其依赖项,请使用 Red Hat OpenStack Platform director。director 使用基本的 OpenStack 安装作为 undercloud 来安装、配置和管理最终 overcloud 中的 OpenStack 节点。除了部署的 overcloud 所需的环境外,还确保有一个额外的主机机器用于安装 undercloud。具体步骤请查看 Red Hat OpenStack Platform Director 安装和使用。 有关使用 Red Hat OpenStack Platform director (如网络隔离、存储配置、SSL 通信和常规配置方法)为 Red Hat OpenStack Platform 企业环境配置高级功能的信息,请参阅高级 Overcloud 自定义。 |
| NFV 文档 | 有关使用单一根 I/O 虚拟化(SR-IOV)和 Open vSwitch 使用 Data Plane Development Kit (OVS-DPDK)规划和配置 Red Hat OpenStack Platform 部署的更多详细信息,请参阅 网络功能虚拟化规划和配置指南。 |