Provision the NetScaler VPX instance with SR-IOV, on OpenStack
您可以在 OpenStack 上部署使用单根 I/O 虚拟化 (SR-IOV) 技术的高性能 NetScaler VPX 实例。
您可以通过以下三个步骤在 OpenStack 上部署使用 SR-IOV 技术的 NetScaler VPX 实例:
- 在主机上启用 SR-IOV 虚拟功能 (VF)。
- 配置 VF 并使其可用于 OpenStack。
- 在 OpenStack 环境中,完成 NetScaler VPX 虚拟设备的部署工作。
先决条件
确保您:
- 将 Intel 82599 网卡添加到主机。
- 从 Intel 下载并安装最新的 IXGBE 驱动程序。
- 在主机上阻止 IXGBEVF 驱动程序。在 /etc/modprobe.d/blacklist.conf 文件中添加以下条目:阻止列表
ixgbevf
注意:
ixgbe驱动程序版本必须至少为 5.0.4。
在主机上启用 SR-IOV VF
执行以下步骤之一以启用 SR-IOV VF:
-
如果您使用的内核版本早于 3.8,请将以下条目添加到 /etc/modprobe.d/ixgbe 文件中并重新启动主机:options ixgbe max_vfs=<number_of_VFs>
-
如果您使用的内核版本为 3.8 或更高版本,请使用以下命令创建 VF:
echo <number_of_VFs> > /sys/class/net/<device_name>/device/sriov_numvfs
<!--NeedCopy-->
其中:
- number_of_VFs 是您要创建的虚拟功能的数量。
- device_name 是指接口的名称。
重要提示:
在创建 SR-IOV VF 时,请确保不要将 MAC 地址分配给 VF。
以下是创建四个 VF 的示例。

使 VF 持久化,将用于创建 VF 的命令添加到 rc.local 文件中。以下是 rc.local 文件内容的示例。

有关更多信息,请参阅此 Intel SR-IOV 配置指南。
配置 VF 并使其可用于 OpenStack
按照以下链接中给出的步骤在 OpenStack 上配置 SR-IOV:https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking。
在 开放堆栈 上预配 NetScaler VPX 实例
您可以使用 OpenStack 命令行界面在 OpenStack 云平台环境中预配 NetScaler VPX 虚拟机实例。
部署 VPX 实例时,可以选择使用配置驱动器中的数据。配置驱动器是一种特殊的配置驱动器,在实例启动时会附加到实例。此配置驱动器可用于在您为实例配置网络设置之前,将管理 IP 地址、网络掩码和默认网关等网络配置信息传递给实例。
当 OpenStack 部署 VPX 实例时,它首先通过读取指示 OpenStack 的特定 BIOS 字符串 (OpenStack Foundation) 来检测实例是否在 OpenStack 环境中启动。对于 Red Hat Linux 发行版,该字符串存储在 /etc/nova/release 中。这是一种基于 KVM 虚拟机管理程序平台的所有 OpenStack 实现中都可用的标准机制。该驱动器必须具有特定的 OpenStack 标签。如果检测到配置驱动器,实例会尝试从 nova 启动命令中指定的文件名读取以下信息。在下面的过程中,该文件名为“userdata.txt”。
- 管理 IP 地址
- 网络掩码
- 默认网关
参数成功读取后,它们将填充到 NetScaler® 堆栈中。这有助于远程管理实例。如果参数未成功读取或配置驱动器不可用,实例将转换为默认行为,即:
- 实例尝试从 DHCP 检索 IP 地址信息。
- 如果 DHCP 失败或超时,实例将使用默认网络配置 (192.168.100.1/16) 启动。
通过命令行界面在 OpenStack 平台上部署 NetScaler VPX 实例
您可以使用 OpenStack 命令行界面在 OpenStack 环境中部署 VPX 实例。以下是在 OpenStack 上部署 NetScaler VPX 实例的步骤摘要:
-
从 .tgz 文件中提取
.qcow2文件 -
从 qcow2 格式的镜像构建 OpenStack 镜像
-
部署 VPX 实例
要在 OpenStack 环境中部署 VPX 实例,请执行以下步骤。
-
通过输入以下命令,从
.tqz文件中提取qcow2文件:tar xvzf <TAR file> tar xvzf NSVPX-KVM-12.0-26.2_nc.tgz NSVPX-KVM.xml NSVPX-KVM-12.0-26.2_nc.qcow2 <!--NeedCopy--> -
通过输入以下命令,使用在步骤 1 中提取的
.qcoz2文件构建 OpenStack 镜像:glance image-create --name="<name of the OpenStack image>" --property hw_disk_bus=ide --is-public=true --container-format=bare --disk-format=qcow2< <name of the qcow2 file> glance image-create --name="NS-VPX-12-0-26-2" --property hw_disk_bus=ide --is-public= true --container-format=bare --disk-format=qcow2< NSVPX-KVM-12.0-26.2_nc.qcow2 <!--NeedCopy-->以下插图提供了 glance image-create 命令的示例输出。

-
在 OpenStack 镜像创建完成之后,请预置 NetScaler VPX 实例。
nova boot --image NSVPX-KVM-12.0-26.2 --config-drive=true --userdata ./userdata.txt --flavor m1. medium --nic net-id=3b258725-eaae- 455e-a5de-371d6d1f349f --nic port-id=218ba819-9f55-4991-adb6- 02086a6bdee2 NSVPX-10 <!--NeedCopy-->在上述命令中,userdata.txt 是一个文件,其中包含 VPX 实例的详细信息,例如 IP 地址、子网掩码和默认网关。用户数据文件是一个用户可自定义的文件。NSVPX-KVM-12.0-26.2 是您要预置的虚拟设备的名称。–NIC port-id=218ba819-9f55-4991-adb6-02086a6bdee2 是 OpenStack VF。
以下插图提供了
nova引导命令的示例输出。
以下插图显示了 userdata.txt 文件的示例。<PropertySection></PropertySection> 标签中的值是用户可配置的值,包含 IP 地址、子网掩码和默认网关等信息。
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <Environment xmlns:oe="http://schemas.dmtf.org/ovf/environment/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oe:id="" xmlns="http://schemas.dmtf.org/ovf/environment/1"> <PlatformSection> <Kind>NOVA</Kind> <Version>2013.1</Version> <Vendor>Openstack</Vendor> <Locale>en</Locale> </PlatformSection> <PropertySection> <Property oe:key="com.citrix.netscaler.ovf.version" oe:value="1.0"/> <Property oe:key="com.citrix.netscaler.platform" oe:value="vpx"/> citrix.com 4 <Property oe:key="com.citrix.netscaler.orch_env" oe:value="openstack-orch-env"/> <Property oe:key="com.citrix.netscaler.mgmt.ip" oe:value="10.1.0.100"/> <Property oe:key="com.citrix.netscaler.mgmt.netmask" oe:value="255.255.0.0"/> <Property oe:key="com.citrix.netscaler.mgmt.gateway" oe:value="10.1.0.1"/> </PropertySection> </Environment> <!--NeedCopy-->
其他支持的配置:从主机创建和删除 SR-IOV VF 上的 VLAN
输入以下命令以在 SR-IOV VF 上创建 VLAN:
ip link show enp8s0f0 vf 6 vlan 10
在上述命令中,“enp8s0f0”是物理功能的名称。
示例:在 vf 6 上创建的 VLAN 10

输入以下命令以删除 SR-IOV VF 上的 VLAN:
ip link show enp8s0f0 vf 6 vlan 0
示例:VLAN 10,已从 vf 6 中移除

这些步骤完成了在 OpenStack 上部署使用 SRIOV 技术的 NetScaler VPX 实例的过程。