本节介绍如何动态创建和销毁虚拟功能。如果无法使用动态方法来执行这些操作,请在创建或销毁虚拟功能之前在根域上启动延迟重新配置。
如果无法使用此动态方法,请改用静态方法。请参见静态 SR-IOV。
primary# ldm list-io
请注意,物理功能的名称包括 PCIe SR-IOV 卡或板载设备的位置信息。
请只有在未对具有物理功能的总线启用 I/O 虚拟化时才执行此步骤。
在创建一个或多个虚拟功能后,您可以将其分配给来宾域。
primary# ldm create-vf -n number | max pf-name
使用 ldm create-vf -n max 命令可一次创建该物理功能的所有虚拟功能。
注意 - 系统使用 Intel 10-G 以太网卡时,基于每个物理功能创建的虚拟功能请勿超过 31 个,以便最大程度地提高性能。 |
您可以使用路径名称或 pseudonym 名称指定虚拟功能。但是,建议做法是使用 pseudonym 名称。
ldm create-vf [mac-addr=num] [alt-mac-addrs=[auto|num1,[auto|num2,...]]] [pvid=pvid] [vid=vid1,vid2,...] [mtu=size] [name=value...] pf-name
使用此命令可为该物理功能创建一个虚拟功能。您还可以手动指定特定于以太网类的属性值。
根域重新引导(包括 primary 的重新引导)后或者您使用 ldm create-vf 或 ldm destroy-vf 命令后,状态可能立即为 INV。
primary# ldm start-reconf root-domain-name
使用如前所示的相同命令动态创建虚拟功能。
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
此示例显示了有关 /SYS/MB/NET0/IOVNET.PF0 物理功能的信息:
此物理功能来自板载 NET0 网络设备。
IOVNET 字符串表示物理功能是一个网络 SR-IOV 设备。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary
以下命令显示有关指定物理功能的更多详细信息。maxvfs 值表示设备支持的虚拟功能最大数量。
primary# ldm list-io -l /SYS/MB/NET0/IOVNET.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@4/network@0] maxvfs = 7示例 8-2 动态创建以太网虚拟功能而不设置可选属性
此示例会动态创建一个虚拟功能,而不设置任何可选属性。在这种情况下,自动为网络级虚拟功能分配 MAC 地址。
确保已对 pci_0 PCIe 总线启用 I/O 虚拟化。请参见如何对 PCIe 总线启用 I/O 虚拟化。
现在,您可以使用 ldm create-vf 命令从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0示例 8-3 动态创建以太网虚拟功能并设置属性
此示例会动态创建虚拟功能,并将 mac-addr 属性设置为 00:14:2f:f9:14:c0,以及将 vid 属性设置为 VLAN ID 2 和 3。
primary# ldm create-vf mac-addr=00:14:2f:f9:14:c0 vid=2,3 /SYS/MB/NET0/IOVNET.PF0示例 8-4 动态创建具有两个备用 MAC 地址的以太网虚拟功能
此示例会动态创建一个具有两个备用 MAC 地址的虚拟功能。一个 MAC 地址是自动分配的,另一个则显式指定为 00:14:2f:f9:14:c2。
primary# ldm create-vf alt-mac-addrs=auto,00:14:2f:f9:14:c2 /SYS/MB/NET0/IOVNET.PF0示例 8-5 静态创建虚拟功能而不设置可选属性
此示例会静态创建一个虚拟功能,而不设置任何可选属性。在这种情况下,自动为网络级虚拟功能分配 MAC 地址。
首先,在 primary 域上启动延迟重新配置,然后,在 pci_0 PCIe 总线上启用 I/O 虚拟化。由于已将 pci_0 总线分配到 primary 根域,因此,请使用 ldm set-io 命令启用 I/O 虚拟化。
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm set-io iov=on pci_0
现在,您可以使用 ldm create-vf 命令从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 ------------------------------------------------------------------------------ Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ------------------------------------------------------------------------------ Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0
最后,重新引导 primary 根域以使更改生效。
primary# shutdown -i6 -g0 -y示例 8-6 创建多个 SR-IOV 以太网虚拟功能
以下命令展示了如何基于 /SYS/MB/NET2/IOVNET.PF1 物理功能创建四个虚拟功能:
primary# ldm create-vf -n 31 /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF2 ... Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF30
请注意,ldm create-vf -n 命令创建了多个设置有默认属性值(如果适用)的虚拟功能。之后,您可以使用 ldm set-io 命令指定非默认属性值。