ADC

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

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

支持以下 NIC:

  • Intel 82599 10G
  • Intel X710 10G
  • Intel XL710 40G

限制

Citrix Hypervisor 不支持 SR-IOV 接口上的某些功能。以下各节列出了 Intel 82599、Intel X710 和 Intel XL710 网卡的限制。

Intel 82599 网卡的限制

Intel 82599 网卡不支持以下功能:

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

Intel X710 10G 和 Intel XL710 40G 网卡的限制

Intel X710 10G 和 Intel XL710 40G 网卡有以下限制:

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

注意:

要使 Intel X710 10G 和 Intel XL710 40G NIC 支持 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 (NIC)。
  • 通过将以下注册表项添加到 /etc/modprobe.d/blacklist.conf 文件,将 ixgbevf 驱动程序列入阻止列表:

    blacklist 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。

使用 Citrix Hypervisor 主机将 Intel 82599 SR-IOV VF 分配给 NetScaler VPX 实例

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

  1. 在 Citrix Hypervisor 主机上,使用以下命令将 SR-IOV VF 分配给 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> 是 Citrix Hypervisor 主机的 UUID。

    • <NetScaler VM UUID> 为 NetScaler VPX 实例的 UUID。

    • <interface name> 是 SR-IOV VF 的接口。

    • <MAC address > 为 SR-IOV VF 的 MAC 地址。

    注意

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

  2. 启动 NetScaler VPX 实例。

使用 Citrix Hypervisor 主机将 Intel 82599 SR-IOV VF 取消分配给 NetScaler VPX 实例

如果您分配的 SR-IOV 虚拟文件不正确,或者要修改已分配的 SR-IOV VF,则需要取消分配 SR-IOV 虚拟文件并将其重新分配给 NetScaler VPX 实例。

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

  1. 在 Citrix Hypervisor 主机上,使用以下命令将 SR-IOV VF 分配给 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> - Citrix Hypervisor 主机的 UUID。

    • <Netscaler_VM_UUID> - NetScaler VPX 实例的 UUID

  2. 启动 NetScaler VPX 实例。

使用 Citrix Hypervisor 主机将 Intel X710/XL710 SR-IOV VF 分配给 NetScaler VPX 实例

要将 Intel X710/XL710 SR-IOV VF 分配给 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 网络的网卡的 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 开头。

    使用以下命令查找虚拟机 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-->
    

使用 Citrix Hypervisor 主机从 NetScaler 实例中移除 Intel X710/XL710 SR-IOV VF

要从 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 设置。