网络功能虚拟化产品指南

Red Hat OpenStack Platform 16.1

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

OpenStack Documentation Team

摘要

本指南介绍网络功能虚拟化 (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 环境通过利用在标准硬件设备(如交换机、路由器和存储)上运行的标准虚拟化技术(如交换机、路由器和存储来虚拟化网络功能(VNF))来提供 IT 和网络聚合。管理和编配逻辑部署并维持这些服务。NFV 还包括系统管理、自动化和生命周期管理,从而减少了手动工作。

1.1. NFV 的优点

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

  • 通过允许您快速部署和扩展新的网络服务来满足瞬息万变的需求,加速产品投放市场的时间。
  • 通过使服务开发人员能够自我管理其资源和使用生产中使用的相同平台,支持创新。
  • 在不牺牲安全性或性能的情况下,在数小时或数分钟内满足客户的需求,而不是几周或数天。
  • 降低资本支出,因为它使用商用硬件,而非昂贵的定制设备。
  • 使用简化的操作和自动化来优化日常任务,以提高员工生产力并降低操作成本。

1.2. NFV 部署支持的配置

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

超融合基础架构(HCI)
客户现在可以将 Compute 子系统与 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 ISG NFV)的 ETSI 行业规范组设定了确保支持虚拟化功能所需的要求、参考架构和基础架构规格。

红帽提供基于开源的云优化解决方案,以帮助通信服务提供商(CSP)实现 IT 和网络融合。红帽向 Red Hat OpenStack 添加了带有数据平面开发套件(OVS-DPDK)的单根 I/O 虚拟化(SR-IOV)和 Open vSwitch 等 NFV 功能。

2.2. NFV ETSI 架构和组件

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

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

  • 虚拟化网络功能(VNF) - 路由器、防火墙、负载均衡器、宽带网关、移动数据包处理器、服务节点、信号、位置服务和其他网络功能的软件实现。
  • NFV 基础架构(NFVi) - 组成基础架构的物理资源(计算、存储、网络)和虚拟化层。网络包括用于在虚拟机和主机之间转发数据包的数据路径。这样,您可以安装 VNF,而不必关注底层硬件的详细信息。NFVI 构成 NFV 堆栈的基础。NFVI 支持多租户,并由虚拟基础架构管理器(VIM)管理。增强的平台感知(EPA)通过向 VNF 公开低级别 CPU 和 NIC 加速组件来提高虚拟机数据包转发性能(吞吐量、延迟、jitter)。
  • NFV 管理和编排(MANO) - 管理和编排层侧重于 VNF 的整个生命周期中所需的所有服务管理任务。MANO 的主要目标是允许将操作器提供的网络功能与物理基础架构分离的服务定义、自动化、错误关联、监控和生命周期管理。这种分离需要额外的管理层,由虚拟网络功能管理器(VNFM)提供。VNFM 通过直接与它们交互或通过 VNF 供应商提供的元素管理系统(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 组件

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

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

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

第 3 章 NFV 硬件

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

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

第 4 章 NFV Data Plane 连接

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

  • 应用就绪 - 网络供应商目前正在将其设备转换为 VNF。市场中的不同 VNF 具有不同的成熟度级别;这种就绪性的常见障碍包括启用 RESTful 接口,将数据模型演变为无状态,并提供自动化管理操作。OpenStack 应为所有提供一个通用的平台。
  • 广泛的用例 - NFV 包括各种提供不同用例的应用程序。例如,Virtual Customer Premise Equipment (vCPE)旨在提供一些网络功能,如路由、防火墙、虚拟专用网络(VPN),以及客户内部的网络地址转换(NAT)。虚拟 Evolved Packet Core (vEPC)是一种云架构,为 Long-Term Evolution (LTE)网络的核心组件提供经济的平台,允许动态置备网关和移动端点,以保持从智能手机和其他设备的数据流量增加。

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

在原则上,提供数据平面连接虚拟机的两种常见方法:

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

4.1. 快速数据路径选项

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

  • 单根 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 Poll Mode Drivers (PMD)在忙碌循环中运行,持续扫描客户机中主机和 vNIC 端口的 NIC 端口,以获得数据包。
  • DPDK 加速 Open vSwitch (OVS-DPDK) 是与 DPDK 捆绑的 Open vSwitch,用于使用 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)中,系统内存被分成名为 nodes (分配给特定 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 内核和内存页面可用的方式:

OpenStack NUMA Topology 39825 0416 ADF
注意

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

5.1.2. NUMA 感知实例

您可以将 OpenStack 环境配置为使用 NUMA 架构的系统上的 NUMA 拓扑感知。在虚拟机(VM)中运行客户机操作系统时,涉及两个 NUMA 拓扑:

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

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

5.2. CPU 固定

CPU 固定是在给定主机上在特定物理 CPU 上运行特定虚拟机的虚拟 CPU 的功能。vCPU 固定为裸机系统上任务固定提供了类似的优势。由于虚拟机作为用户空间任务在主机操作系统上运行,因此固定可提高缓存效率。

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

5.3. 巨页

物理内存被分成连续区域,称为页面。为提高效率,系统通过访问整个页面而不是单个字节内存来检索内存。要执行此转换,系统会在 Translation Lookaside Buffers (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 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)和带有 Data Plane Development Kit (OVS-DPDK)的 Open vSwitch 规划和配置 Red Hat OpenStack Platform 部署的更多详细信息,请参阅 网络功能虚拟化规划和配置指南

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.