动态 SR-IOV 功能可消除以下静态 SR-IOV 要求:
根域。在根域上启动延迟重新配置,创建或销毁虚拟功能,然后重新引导根域
I/O 域。停止 I/O 域,添加或删除虚拟功能,然后启动 I/O 域
通过动态 SR-IOV,您可以动态创建或销毁虚拟功能,而无需在根域上启动延迟重新配置。也可以在 I/O 域中动态添加或删除虚拟功能,而无需停止该域。Logical Domains Manager 会与 Logical Domains 代理和 Oracle Solaris I/O 虚拟化框架进行通信,以动态方式使这些更改生效。
有关所需的 PCIe SR-IOV 软件和固件版本的信息,请参见SR-IOV 硬件和软件要求。
要动态创建或销毁某个虚拟功能,请确保满足以下条件:
在开始配置虚拟功能之前,已对 PCIe 总线启用了 I/O 虚拟化。
根域和 I/O 域上运行的 OS 必须至少为 Oracle Solaris 11.1 SRU 10 OS。
物理功能设备未在 OS 中配置,也未采用多路径配置。例如,可以取消激活以太网 SR-IOV 设备或将其置于 IPMP 或聚合中,以便成功创建或销毁虚拟功能。
创建或销毁虚拟功能的操作需要物理功能设备驱动程序在脱机和联机状态之间切换。多路径配置可以使设备驱动程序在这两个状态之间切换。
在从 I/O 域中删除某个虚拟功能之前,该虚拟功能未在使用或采用多路径配置。例如,可以取消激活以太网 SR-IOV 虚拟功能,或者使该虚拟功能不采用 IPMP 配置。
销毁所有虚拟功能并将插槽返回到根域后,根联合体上的资源未恢复。
恢复:将与根联合体关联的所有虚拟 I/O 资源返回到其根域。
首先,将控制域置于延迟重新配置。
primary# ldm start-reconf primary
将所有子 PCIe 插槽返回到拥有 pci_0 总线的根域。然后,删除 pci_0 总线上的所有子虚拟功能并将其销毁。
最后,为 pci_0 总线设置 iov=off 并重新引导根域。
primary# ldm set-io iov=off pci_0 primary# shutdown -y -g 10
解决方法:将特定 PCIe 总线的 iov 选项设置为 off。
primary# ldm start-reconf primary primary# ldm set-io iov=off pci_0