以下过程介绍了如何创建包括 PCIe SR-IOV 虚拟功能的 I/O 域。
提前进行计划,以便最大程度地减少根域的重新引导次数,从而最大限度地缩短停机时间。
开始之前
开始之前,请确保已为用于创建虚拟功能的物理功能的父项 PCIe 总线启用了 I/O 虚拟化。请参见如何对 PCIe 总线启用 I/O 虚拟化。
primary# ldm list-io
primary# ldm create-vf pf-name
您可以为要创建的每个虚拟功能运行此命令。您还可以使用 –n 选项通过单个命令创建基于同一物理功能的多个虚拟功能。请参见Example 7–6 和 ldm(1M) 手册页。
primary# ldm list-io
primary# ldm add-io vf-name domain-name
以下 Oracle Solaris 11 命令显示虚拟功能的可用性:
guest# dladm show-phys
以下动态示例说明如何为物理功能 /SYS/MB/NET0/IOVNET.PF0 创建虚拟功能 /SYS/MB/NET0/IOVNET.PF0.VF0,并将该虚拟功能分配给 ldg1 I/O 域。
本示例假定满足以下情况:
primary 域上的 OS 支持动态 SR-IOV 操作
pci_0 总线已分配到 primary 域,并且已针对 I/O 虚拟化操作进行了初始化
/SYS/MB/NET0/IOVNET.PF0 物理功能属于 pci_0 总线
/SYS/MB/NET0/IOVNET.PF0 物理功能未将任何现有虚拟功能分配到域
ldg1 域处于活动状态并已引导,并且其 OS 支持动态 SR-IOV 操作
从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0
将 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能添加到 ldg1 域。
primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1
以下命令显示已将虚拟功能添加到 ldg1 域。
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 IOV 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 /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1示例 7-13 通过分配 SR-IOV 虚拟功能来静态创建 I/O 域
以下静态示例说明如何为物理功能 /SYS/MB/NET0/IOVNET.PF0 创建虚拟功能 /SYS/MB/NET0/IOVNET.PF0.VF0,并将该虚拟功能分配给 ldg1 I/O 域。
本示例假定满足以下情况:
primary 域上的 OS 不支持动态 SR-IOV 操作
pci_0 总线已分配到 primary 域,但尚未针对 I/O 虚拟化操作进行初始化
/SYS/MB/NET0/IOVNET.PF0 物理功能属于 pci_0 总线
/SYS/MB/NET0/IOVNET.PF0 物理功能未将任何现有虚拟功能分配到域
ldg1 域处于活动状态并已引导,但其 OS 不支持动态 SR-IOV 操作
ldg1 域已将 auto-boot? 属性设置为 true,因此,该域可以在启动后自动引导
首先,在 primary 域上启动延迟重新配置,启用 I/O 虚拟化,然后从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
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 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
停止 ldg1 域,添加虚拟功能,然后启动该域。
primary# ldm stop ldg1 primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1 primary# ldm start ldg1
以下命令显示已将虚拟功能添加到 ldg1 域。
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 IOV 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 /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1