NetScaler VPX 14.1

配置 VPX 实例以使用单根 I/O 虚拟化 (SR-IOV) 网络接口

在 Citrix Hypervisor 上安装并配置 NetScaler VPX 实例后,您可以将虚拟设备配置为使用 SR-IOV 网络接口。

以下网卡受到支持:

  • 英特尔 82599 10G
  • 英特尔 X710 10G
  • 英特尔 XL710 40G

局限性

Citrix Hypervisor™ 不支持 SR-IOV 接口上的某些功能。英特尔 82599、英特尔 X710 和英特尔 XL710 网卡的限制列在以下部分中。

英特尔 82599 网卡的限制

英特尔 82599 网卡不支持以下功能:

  • L2 模式切换
  • 集群功能
  • 管理分区 [共享 VLAN 模式]
  • 高可用性 [主动-主动模式]
  • 巨型帧
  • 集群环境中的 IPv6 协议

英特尔 X710 10G 和 英特尔 XL710 40G 网卡的限制

Intel X710 10G 和 Intel XL710 40G 网卡存在以下几点限制:

  • 不支持 L2 模式切换。
  • 不支持管理分区(共享 VLAN 模式)。
  • 在集群中,当 XL710 网卡用作数据接口时,不支持巨型帧。
  • 接口断开连接并重新连接时,接口列表会重新排序。
  • 诸如速度、双工和自动协商等接口参数的配置均不受支持。
  • 对于 Intel X710 10G 和 Intel XL710 40G 网卡,接口显示为 40/x 接口。
  • VPX 实例上最多只支持 16 个 Intel X710/XL710 SR-IOV 接口。

注意:

对于 Intel X710 10G 和 Intel XL710 40G 网卡,若要支持 IPv6,请在 Citrix Hypervisor 主机上键入以下命令,在虚拟功能 (VF) 上启用信任模式:

# ip link set <PNIC> <VF> trust on

示例:

# ip link set ens785f1 vf 0 trust on

Intel 82599 网卡的先决条件

在 Citrix Hypervisor 主机上,请确保您执行以下操作:

  • 将 Intel 82599 NIC (网卡) 添加到主机。
  • 通过将以下条目添加到 /etc/modprobe.d/blacklist.conf 文件中,将 ixgbevf 驱动程序列入黑名单:

    将 ixgbevf 列入黑名单

  • 通过将以下条目添加到 /etc/modprobe.d/ixgbe 文件中,启用 SR-IOV 虚拟功能 (VF):

    options ixgbe max_vfs=<number_of_VFs>

    其中 <number_VFs> 是您要创建的 SR-IOV VF 的数量。

  • 验证 BIOS 中是否已启用 SR-IOV。

注意:

建议使用 IXGBE 驱动程序版本 3.22.3。

Assign Intel 82599 SR-IOV VFs to the NetScaler VPX instance by using the Citrix Hypervisor host

要将 Intel 82599 SR-IOV VF 分配给 NetScaler VPX 实例,请按照以下步骤操作:

  1. 在 Citrix Hypervisor 主机上,使用以下命令将单根 I/O 虚拟化 (SR-IOV) 虚拟功能分配给 NetScaler VPX 实例:

    xe host-call-plugin plugin=iovirt host-uuid=<Xen host UUID> fn=assign_free_vf args:uuid=<NetScaler VM UUID> args:ethdev=<interface name> args:mac=<Mac addr>

    其中:

    • <Xen host UUID> is the UUID of the Citrix Hypervisor host.

    • <NetScaler VM UUID> is the UUID of the NetScaler VPX instance.

    • <interface name> is the interface for the SR-IOV VFs.

    • <MAC 地址 > 是 SR-IOV 虚拟功能 的 MAC 地址。

    注意:

    在 args:Mac= 参数中指定您要使用的 MAC 地址,如果未指定,iovirt 脚本将随机生成并分配一个 MAC 地址。此外,如果您想在链路聚合模式下使用 SR-IOV VF,请确保将 MAC 地址指定为 00:00:00:00:00:00。

  2. 对 NetScaler VPX 实例进行启动操作。

使用 Citrix 虚拟机管理程序 主机将 Intel 82599 单根 I/O 虚拟化 虚拟功能 从 NetScaler VPX 实例中解除分配

如果您分配了错误的 SR-IOV VF,或者您想修改已分配的 SR-IOV VF,您需要将 SR-IOV VF 从 NetScaler VPX 实例取消分配并重新分配。

要取消分配分配给 NetScaler VPX 实例的 SR-IOV 网络接口,请按照以下步骤操作:

  1. 在 思杰 Hypervisor 主机上,请使用以下命令将 SR-IOV 虚拟功能分配给 NetScaler VPX 实例,并重新启动该 NetScaler VPX 实例:

    xe host-call-plugin plugin=iovirt host-uuid=<Xen_host_UUID> fn=unassign_all args:uuid=<Netscaler_VM_UUID>

    其中:

    • <Xen_host_UUID> - The UUID of the Citrix Hypervisor host.

    • <Netscaler_VM_UUID> - The UUID of the NetScaler VPX instance

  2. Boot the NetScaler VPX instance.

Assign Intel X710/XL710 SR-IOV VFs to the NetScaler VPX instance by using the Citrix Hypervisor host

要将 Intel X710/XL710 SR-IOV 虚拟功能分配给 NetScaler VPX 实例,请按照以下步骤操作:

  1. 在 Citrix Hypervisor 主机上运行以下命令以创建网络。

    xe network-create name-label=<network-name>
    <!--NeedCopy-->
    

    示例:

    xe network-create name-label=SR-IOV-NIC-18 8ee59b73-7319-6998-cd69-b9fa3e8d7503
    <!--NeedCopy-->
    
  2. 确定要配置 SR-IOV 网络的 NIC 的 PIF 通用唯一标识符 (UUID)。

    xe pif-list
    
                uuid ( RO)  : e2874343-f1de-1fa7-8fef-98547c348783
                device ( RO): eth18
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): f865bd85-44dd-b865-ab65-dcd6ae28c16e
    <!--NeedCopy-->
    
  3. 将网络配置为 SR-IOV 网络。以下命令还会返回新创建的 SR-IOV 网络的 UUID:

    xe network-sriov-create network-uuid=<network-uuid> pif-uuid=<physical-pif-uuid>
    <!--NeedCopy-->
    

    示例:

    xe network-sriov-create network-uuid=8ee59b73-7319-6998-cd69-b9fa3e8d7503 pif-uuid=e2874343-f1de-1fa7-8fef-98547c3487831629b44f-832a-084e-d67d-5d6d314d5e0f
    <!--NeedCopy-->
    

    要获取有关 SR-IOV 网络参数的更多信息,请运行以下命令:

    [root@citrix-XS82-TOPO ~]# xe network-sriov-param-list uuid=1629b44f-832a-084e-d67d-5d6d314d5e0f
    
                  uuid ( RO): 1629b44f-832a-084e-d67d-5d6d314d5e0f
          physical-PIF ( RO): e2874343-f1de-1fa7-8fef-98547c348783
           logical-PIF ( RO): 85d52771-5814-c62d-45fa-f37b536144ff
       requires-reboot ( RO): false
    remaining-capacity ( RO): 32
    <!--NeedCopy-->
    
  4. 创建一个虚拟接口 (VIF) 并将其附加到目标 VM。

    xe vif-create device=0 mac=b2:61:fc:ae:00:1d network-uuid=8ee59b73-7319-6998-cd69-b9fa3e8d7503 vm-uuid=b507e8a6-f5ca-18eb-561d-308218a9dd68
    3e1e2e58-b2ad-6dc0-61d4-1d149c9c6466
    <!--NeedCopy-->
    

    注意:

    VM 的 NIC 索引号必须从 0 开始。

    使用以下命令查找 VM UUID:

    [root@citrix-XS82-TOPO ~]# xe vm-list
    uuid ( RO): b507e8a6-f5ca-18eb-561d-308218a9dd68
     name-label ( RW): sai-vpx-1
    power-state ( RO): halted
    <!--NeedCopy-->
    

Remove Intel X710/XL710 SR-IOV VFs from the NetScaler instance by using the Citrix Hypervisor host

为了从 NetScaler VPX 实例中成功移除一个 Intel X710/XL710 SR-IOV VF,请您务必按照以下详细步骤进行操作:

  1. 复制要销毁的 VIF 的 UUID。

  2. 在 Citrix Hypervisor 主机上运行以下命令以销毁 VIF。

    xe vif-destroy uuid=<vif-uuid>
    <!--NeedCopy-->
    

    示例:

    [root@citrix-XS82-TOPO ~]# xe vif-destroy uuid=3e1e2e58-b2ad-6dc0-61d4-1d149c9c6466
    <!--NeedCopy-->
    

在 SR-IOV 接口上配置链路聚合

要在链路聚合模式下使用 SR-IOV 虚拟功能 (VF),您需要为您已创建的虚拟功能禁用欺骗检查。

在 Citrix Hypervisor 主机上,使用以下命令禁用欺骗检查:

ip link set <interface_name> vf <VF_id> spoofchk off

其中:

  • <interface_name> 是指代该网络接口的名称。
  • <VF_id> 是虚拟功能 ID。

禁用所有已创建的虚拟功能的欺骗检查后,重新启动 NetScaler VPX 实例,并配置链路聚合。有关说明,请参阅配置链路聚合

重要提示:

在将 SR-IOV VF 分配给 NetScaler VPX 实例时,请确保为 VF 指定 MAC 地址 00:00:00:00:00:00。

在 SR-IOV 接口上配置 VLAN

您可以在 SR-IOV 虚拟功能上配置 VLAN。有关说明,请参阅 配置 VLAN

重要提示:

请确保 Citrix Hypervisor 主机不包含用于 VF 接口的 VLAN 设置。

其他参考

启用 SR-IOV 的网卡

添加 SR-IOV 网络