本节介绍与使用 SR-IOV 虚拟功能相关的一些高级主题。
使用 SR-IOV 虚拟功能时,请注意以下问题:
SR-IOV 虚拟功能只能使用 Logical Domains Manager 分配的 MAC 地址。如果您使用其他 Oracle Solaris OS 网络命令更改 I/O 域上的 MAC 地址,则命令可能会失败或无法正常运行。
此时,不支持 I/O 域中的 SR-IOV 网络虚拟功能的链路聚合。如果您尝试创建链路聚合,它可能无法按预期方式发挥作用。
您可以创建虚拟 I/O 服务并将它们分配给 I/O 域。可以在从中创建虚拟功能的同一物理功能上创建这些虚拟 I/O 服务。例如,您可以使用板载的 1-Gbps 网络设备(net0 或 igb0)作为虚拟交换机的网络后端设备,并从同一物理功能设备创建虚拟功能。
SR-IOV 虚拟功能可提供与任何其他类型的 PCIe 设备类似的功能,例如,可将虚拟功能用作逻辑域引导设备。例如,网络虚拟功能可以用于通过网络引导以在 I/O 域中安装 Oracle Solaris OS。
SR-IOV 物理功能设备驱动程序可以导出特定于设备的属性。这些属性可用于调节物理功能及其虚拟功能的资源分配。有关这些属性的信息,请参见物理功能驱动程序的手册页,例如 igb(7D) 和 ixgbe(7D) 手册页。
ldm list-io -d 命令显示指定物理功能设备驱动程序导出的特定于设备的属性。每个属性的信息包括其名称、简要说明、默认值、最大值和一个或多个以下标志:
适用于物理功能
适用于虚拟功能
只读或只用于提供信息的参数
primary# ldm list-io -d pf-name
使用 ldm create-vf 或 ldm set-io 命令可为物理功能或虚拟功能设置读写属性。请注意,要设置特定于设备的属性,必须使用静态方法。请参见静态 SR-IOV。
以下示例显示板载 Intel 1-Gbps SR-IOV 设备导出的特定于设备的属性:
primary# ldm list-io -d /SYS/MB/NET0/IOVNET.PF0 Device-specific Parameters -------------------------- max-config-vfs Flags = PR Default = 7 Descr = Max number of configurable VFs max-vf-mtu Flags = VR Default = 9216 Descr = Max MTU supported for a VF max-vlans Flags = VR Default = 32 Descr = Max number of VLAN filters supported pvid-exclusive Flags = VR Default = 1 Descr = Exclusive configuration of pvid required unicast-slots Flags = PV Default = 0 Min = 0 Max = 24 Descr = Number of unicast mac-address slots
以下示例将 unicast-slots 属性设置为 8:
primary# ldm create-vf unicast-slots=8 /SYS/MB/NET0/IOVNET.PF0
支持在 SR-IOV 虚拟功能上创建 Oracle Solaris 11 VNIC。但是,支持的 VNIC 数量限制为分配给虚拟功能的备用 MAC 地址(alt-mac-addrs 属性)的数量。确保对虚拟功能使用 VNIC 时分配足够数量的备用 MAC 地址。可使用 ldm create-vf 或 ldm set-io 命令通过备用 MAC 地址设置 alt-mac-addrs 属性。
以下示例说明如何在 SR-IOV 虚拟功能上创建四个 VNIC。第一个命令将备用 MAC 地址分配给虚拟功能设备。此命令使用自动分配方法将四个备用 MAC 地址分配给 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能设备:
primary# ldm set-io alt-mac-addrs=auto,auto,auto,auto /SYS/MB/NET0/IOVNET.PF0.VF0
下一个命令将启动 ldg1 I/O 域。在此示例中,由于 auto-boot? 属性设置为 true,因此,Oracle Solaris 11 OS 也会在该 I/O 域中引导。
primary# ldm start ldg1
以下命令可在来宾域中使用 Oracle Solaris 11 dladm 命令显示具有备用 MAC 地址的虚拟功能。此输出显示 net30 虚拟功能具有四个备用 MAC 地址。
guest# dladm show-phys -m LINK SLOT ADDRESS INUSE CLIENT net0 primary 0:14:4f:fa:b4:d1 yes net0 net25 primary 0:14:4f:fa:c9:eb no -- net30 primary 0:14:4f:fb:de:4c no -- 1 0:14:4f:f9:e8:73 no -- 2 0:14:4f:f8:21:58 no -- 3 0:14:4f:fa:9d:92 no -- 4 0:14:4f:f9:8f:1d no --
以下命令会创建四个 VNIC。请注意,尝试创建多于通过备用 MAC 地址所指定的 VNIC 将会失败。
guest# dladm create-vnic -l net30 vnic0 guest# dladm create-vnic -l net30 vnic1 guest# dladm create-vnic -l net30 vnic2 guest# dladm create-vnic -l net30 vnic3 guest# dladm show-link LINK CLASS MTU STATE OVER net0 phys 1500 up -- net25 phys 1500 up -- net30 phys 1500 up -- vnic0 vnic 1500 up net30 vnic1 vnic 1500 up net30 vnic2 vnic 1500 up net30 vnic3 vnic 1500 up net30