网络功能虚拟化产品指南

Red Hat OpenStack Platform 16.1

网络功能虚拟化(NFV)概述.

摘要

本指南介绍了网络功能虚拟化(NFV),它的优点、受支持的配置、架构、组件、安装和集成信息。

前言

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。

使用直接文档反馈(DDF)功能

使用 添加反馈 DDF 功能,用于特定句子、段落或代码块上的直接注释。

  1. Multi-page HTML 格式查看文档。
  2. 请确定您看到文档右上角的 反馈 按钮。
  3. 用鼠标指针高亮显示您想评论的文本部分。
  4. 添加反馈
  5. 添加反馈项中输入您的意见。
  6. 可选:添加您的电子邮件地址,以便文档团队可以联系您以讨论您的问题。
  7. Submit

第 1 章 了解红帽网络功能虚拟化(NFV)

网络功能虚拟化(NFV) 是一种基于软件的解决方案,可帮助通信服务提供商(CSP)超越传统专有硬件,从而在降低运营成本的同时实现更高的效率和敏捷性。

NFV 环境允许 IT 和网络聚合,利用在标准硬件设备(如交换机、路由器和存储)上运行的标准虚拟化技术提供虚拟化基础架构,从而虚拟化网络功能(VNF)。管理和编排逻辑将部署并维持这些服务。NFV 还包括系统管理、自动化和生命周期管理,从而减少了所需的手动工作。

1.1. NFV 的优点

实施网络功能虚拟化(NFV)的主要优点如下:

  • 通过允许您快速部署和扩展新的网络服务来解决不断变化的需求,加速产品上市时间。
  • 通过使服务开发人员自助管理其资源,以及使用生产环境中使用的相同平台,支持创新。
  • 在不牺牲安全或性能的前提下,以数小时或数分钟(而非数周或天)解决客户要求。
  • 降低资本支出,因为它使用现成硬件的使用,而不是昂贵的定制设备。
  • 利用简化操作和自动化,优化日常任务,以提高员工的工作效率并降低运营成本。

1.2. NFV 部署支持的配置

Red Hat OpenStack Platform (RHOSP)支持 NFV 部署,包括自动化 OVS-DPDK 和 SR-IOV 配置。有关技术预览功能的支持范围的更多信息,请参阅 技术预览

超融合基础架构(HCI)
客户现在可以将计算子系统与 Red Hat Ceph Storage 节点共存。此超融合模型可降低条目成本、较小的初始部署占用、最大化容量利用率,以及 NFV 用例中的更有效的管理。如需有关 HCI 的更多信息,请参阅 超融合基础架构指南
可组合角色
现在,您可以使用可组合角色创建自定义部署。可组合角色允许您为每个角色添加或删除服务。如需有关可组合角色的更多信息,请参阅可组合角色和服务
带有 LACP 的 Open vSwitch (OVS)
从 OVS 2.9 开始,完全支持与 OVS 的 LACP。不建议 Openstack control plane 流量,因为 OVS 或 Openstack 网络中断可能会干扰管理。如需更多信息,请参阅 Open vSwitch 绑定选项
OVS 硬件卸载
Red Hat OpenStack Platform 支持 OVS 硬件卸载部署的限制。有关使用硬件卸载部署 OVS 的详情,请参考 OpenvSwitch 硬件卸载
Open Virtual Network (OVN)

RHOSP 16.1.4 中提供以下 NFV OVN 配置:

第 2 章 软件

2.1. ETSI NFV 架构

欧洲电信标准研究(ETSI)是一个独立的标准化组,负责开发欧洲的信息和通信技术(ICT)的标准。网络功能虚拟化(NFV)侧重于解决使用专有硬件设备中涉及的问题。利用 NFV,根据用例要求和经济优势,安装特定于网络设备的必要性也得以降低。网络功能虚拟化的 ETSI 行业规范组(ETSI ISG NFV)设置要求、参考架构以及确保支持虚拟化功能所需的基础架构规格。

红帽提供基于开源的云优化解决方案,以帮助通信服务提供商(CSP)实现 IT 和网络聚合。红帽为 Red Hat OpenStack 添加了 NFV 功能,如单一根 I/O 虚拟化(SR-IOV)和 Open vSwitch 带有 Data Plane Development Kit (OVS-DPDK)。

2.2. NFV ETSI 架构和组件

140 OpenStack NFV 产品指南更新 0221 参考 arch OVN

通常,网络功能虚拟化(NFV)平台包含以下组件:

  • 虚拟化网络功能(VNF) - 路由器、防火墙、负载均衡器、宽带网关、移动数据包处理器、服务节点、信号处理、位置服务和其他网络功能的软件实施。
  • NFV 基础架构(NFVi) - 物理资源(计算、存储、网络)以及组成基础架构的虚拟化层。网络包含用于在虚拟机和主机之间转发数据包的数据路径。这可让您安装 VNF,而不必关注底层硬件的详细信息。NFVI 组成 NFV 堆栈的基础。NFVI 支持多租户,它由 Virtual Infrastructure Manager (VIM)进行管理。增强的平台感知(EPA)通过向 VNF 公开低级 CPU 和 NIC 加速组件来提高虚拟机数据包转发性能(吞吐量、延迟、jitter)。
  • NFV 管理和编排(MANO) - 管理和编排层侧重于 VNF 生命周期过程中所需的所有服务管理任务。MANO 的主要目标是允许操作员为其客户提供的网络功能的服务定义、自动化、错误修正、监控和生命周期管理,与物理基础架构分离。这个分离需要额外的管理层,由 Virtual Network Function Manager (VNFM)提供。VNFM 通过直接与虚拟机交互或通过 VNF 厂商提供的 Element Management System (EMS)来管理虚拟机的生命周期和 VNF。MANO 定义的另一个重要组件是 Orchestrator,也称为 NFVO。NFVO 接口和各种数据库和系统,包括底部的运营/业务支持系统(OSS/BSS)和 VNFM。如果 NFVO 想要为客户创建新服务,它会要求 VNFM 触发 VNF 的实例化,这可能会导致多个虚拟机。
  • 运营和业务支持系统(OSS/BSS) - 提供重要的业务功能应用程序,如运营支持和计费。OSS/BSS 需要适应 NFV,并与旧系统和新的 MANO 组件集成。BSS 系统根据服务订阅设置策略,并管理报告和账单。
  • 系统管理、自动化 和生命周期管理 - 管理基础架构组件的系统管理自动化,以及 NFVi 平台的生命周期。

2.3. Red Hat NFV Components

红帽用于 NFV 的解决方案包括一系列产品,它们可以充当 ETSI 模型中 NFV 框架的不同组件。红帽产品组合中的以下产品集成到 NFV 解决方案中:

  • 红帽 OpenStack 平台 - 支持 IT 和 NFV 工作负载。增强平台(EPA)功能通过支持 SR-IOV 和 OVS-DPDK 的 CPU Pinning、Huge page、Non-Uniform Memory Access (NUMA)关联性和网络适配器(NIC)提供确定的性能改进。
  • Red Hat Enterprise Linux 和 Red Hat Enterprise Linux Atomic Host - 以 VNF 用户身份创建虚拟机和容器。
  • Red Hat Ceph Storage - 为服务提供商工作负载所需的所有需求提供统一的弹性和高性能存储层。
  • 红帽 JBoss 中间件和红帽 OpenShift Enterprise - (可选)提供现代化 OSS/BSS 组件的能力。
  • Red Hat CloudForms - 提供 VNF 管理器,提供来自多个来源的数据,如 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 参数,更新 post-install.yaml 文件以进行 CPU 调优,更新 compute.yaml 文件以设置使用 DPDK 端口的网桥,更新 controller.yaml 文件来设置网桥和配置了 VLAN 的接口,并运行 overcloud_deploy.sh 脚本来部署 overcloud。

有关所需的 NFV 规划指南和配置,请参阅 网络功能虚拟化规划和配置指南

第 3 章 NFV 硬件

有关 OpenStack 节点的硬件选择的指导,请参阅 Director 安装和使用

有关网络功能虚拟化(NFV)测试的 NIC 列表,请参阅 网络适配器支持。需要客户门户网站登录。

第 4 章 NFV 数据平面连接

随着 NFV 的引入,更多网络供应商开始将其传统设备实施为 VNF。尽管大多数网络供应商都考虑虚拟机,但有些方面也对基于容器的方法进行了调查,作为设计选择。由于两个主要原因,基于 OpenStack 的解决方案应该丰富且灵活:

  • 应用程序就绪 - 网络厂商目前处于将设备转换为 VNF 的过程。市场上的不同 VNF 具有不同的成熟度级别;此就绪度的常见障碍包括:启用 RESTful 接口在其 API 中,不断演进其数据模型以无状态,并提供自动化管理操作。OpenStack 应为所有.
  • 广泛使用案例 - NFV 包含为不同用例提供的各种应用程序。例如,虚拟客户预约(vCPE)旨在为客户提供多种网络功能,如路由、防火墙、虚拟专用网络(VPN)和网络地址转换(NAT)。虚拟可扩展包核心(vEPC)是一种云架构,可为 Long-Term Evolution (LTE)网络的核心组件提供具有成本效益的平台,从而实现网关和移动端点的动态配置,支持通过智能手机和其他设备实现数据流量的动态配置。

    这些用例使用不同的网络应用程序和协议实施,并且需要与基础架构不同的连接、隔离和性能特征。通常会在 control plane 接口和协议和实际的转发平面之间分隔开。OpenStack 必须足够灵活,以提供不同的数据路径连接选项。

在原则上,有两种常用方法可用于向虚拟机提供数据平面连接:

  • 直接硬件访问会绕过 linux 内核,并使用 PCI 直通或单一根 I/O 虚拟化(SR-IOV)等技术为虚拟功能(VF)和物理功能(PF)等技术向物理 NIC 提供安全直接内存访问 (DMA)。
  • 使用虚拟交换机(vswitch),作为虚拟机监控程序的软件服务实施。虚拟机使用虚拟接口(vNIC)连接到 vSwitch,并且 vSwitch 能够在虚拟机和物理网络之间转发流量。

4.1. fast 数据路径选项

一些快速数据路径选项如下:

  • 单根 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 提供默认的 OpenStack Networking (neutron)与 OVS 集成。
  • 数据平面开发套件(DPDK)由一组 库组成,并轮询模式驱动程序(PMD)来实现快速数据包处理。它旨在在用户空间内运行,使应用程序能够直接从或到 NIC 执行自己的数据包。DPDK 减少延迟并允许处理更多数据包。DPDK 轮询模式驱动程序(PMD)在忙碌循环中运行,在客户机中持续扫描主机和 vNIC 端口中的 NIC 端口以获取数据包。
  • DPDK 加速 Open vSwitch (OVS-DPDK) 与 DPDK 捆绑在一起,用于 Linux 内核绕过并将内存访问(DMA)定向到物理 NIC。其理念是将标准 OVS 内核数据路径替换为基于 DPDK 的数据路径,从而在内部使用 DPDK 进行数据包转发的主机上创建一个用户空间 vSwitch。这种架构的优点是对用户而言是透明的。它公开的接口,如 OpenFlow、OVSDB 和命令行,它们大体保持不变。

第 5 章 NFV 性能注意事项

要使网络功能虚拟化(NFV)解决方案非常有用,其虚拟化功能必须达到或超过物理实施的性能。红帽的虚拟化技术基于高性能基于内核的虚拟机(KVM)管理程序,在 OpenStack 和云部署中很常见。

5.1. CPU 和 NUMA 节点

在以前的版本中,x86 系统上所有内存都可以被系统中的所有 CPU 平等访问。这会导致内存访问时间与系统中哪个 CPU 执行操作相同,并被称为 Uniform Memory Access (UMA)。

在非一致性内存访问(NUMA)中,系统内存被分成多个称为节点的区域,这些内存被分配到特定的 CPU 或插槽。对 CPU 的本地内存的访问比连接到该系统上的远程 CPU 的内存要快。通常,NUMA 系统上的每个套接字都有一个本地内存节点,其内容可以快于节点本地到另一个 CPU 或所有 CPU 共享总线的内存。

同样,物理 NIC 放置在 Compute 节点硬件的 PCI 插槽中。这些插槽连接到与特定 NUMA 节点关联的特定 CPU 套接字。为了获得最佳性能,请将您的数据路径 NIC 连接到 CPU 配置中的相同 NUMA 节点(SR-IOV 或 OVS-DPDK)。

NUMA 未命中的性能影响非常显著,通常从 10% 或更高性能开始。每个 CPU 套接字可以有多个 CPU 内核,这些内核被视为单独的 CPU 用于虚拟化目的。

提示

有关 NUMA 的更多信息,请参阅 NUMA 是什么以及如何在 Linux 上工作?

5.1.1. NUMA 节点示例

下图显示了一个双节点 NUMA 系统的示例,以及 CPU 内核和内存页可用的方式:

OpenStack NUMA 拓扑 39825 0416 ADF
注意

只有在来自 NUMA 节点 0 中的 VM1 中存在一个 NUMA 节点 1 中的 CPU 内核时,才可通过 Interconnect 访问远程内存。在这种情况下,NUMA 节点 1 的内存作为 VM1 的第三个 CPU 内核的本地操作(例如,如果 VM1 在上图中使用 CPU 4 分配),但同时是同一虚拟机的其他 CPU 内核的远程内存。

5.1.2. NUMA aware 实例

您可以配置 OpenStack 环境,以使用 NUMA 架构在系统上了解 NUMA 拓扑。在虚拟机中运行客户机操作系统时,涉及两个 NUMA 拓扑:

  • 主机物理硬件的 NUMA 拓扑
  • 公开给客户机操作系统的虚拟硬件的 NUMA 拓扑

您可以通过将虚拟硬件与物理硬件 NUMA 拓扑匹配来优化客户端操作系统的性能。

5.2. CPU 固定

CPU 固定是指在给定主机中的特定物理 CPU 上运行特定虚拟机的虚拟 CPU 的功能。vCPU 固定提供在裸机系统上任务固定的类似优势。由于虚拟机作为用户空间任务在主机操作系统上运行,所以固定会增加缓存效率。

有关如何配置 CPU 固定的详情,请参考 为实例创建指南中的 配置 Compute 节点上的 CPU 固定

5.3. 巨页

物理内存被分成连续区域,称为页面。为提高效率,系统通过访问整个页面而不是单个字节内存来检索内存。要执行此转换,系统会在包含最近或常用页面的物理到虚拟地址映射的翻译查询器(TLB)中查找包含物理到虚拟地址映射。当系统无法在 TLB 中找到映射时,处理器必须迭代所有页表来确定地址映射。优化 TLB 以最小化在这些 TLB 未命中过程中发生的性能损失。

x86 系统中的典型页面大小为 4KB,其它更大的页面大小可用。更大的页面大小意味着页面总体上较少,因此将系统内存量增加到 TLB 中存储的物理地址转换。因此,这可以降低 TLB 未命中,这会提高性能。使用更大的页面大小时,由于进程必须在页面中分配但可能都需要分配内存,所以可能会增加内存的可能性。因此,选择页面大小会在提供更大型页面的更快访问次数之间造成危害,并确保使用较小的页面提供最大内存利用。

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 文档供参考:

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 为 Red Hat OpenStack Platform 环境配置高级功能的信息,如网络隔离、存储配置、SSL 通信和常规配置方法,请参阅 高级 Overcloud 自定义

NFV 文档

有关使用单一根 I/O 虚拟化(SR-IOV)和具有数据平面开发套件(OVS-DPDK)的 Open vSwitch 规划和配置 Red Hat OpenStack Platform 部署的详情,请参阅 网络功能虚拟化规划和配置指南