如何创建 I/O 域

I/O 域可以直接访问底层硬件设备。
它通常用于我们希望提高性能以避免通过控制域间接访问硬件的开销的情况。
我们可以通过两种方式创建 I/O 域:

  1. 使用整个PCIe BUS
  2. 使用 PCIe 端点设备
on  it road.com

使用 PCIe 端点设备创建 I/O 域

现在,如果服务器中只有一个 PCIe 总线,则不能使用上述方法。
在这种情况下,为 SPARC 版本启动 Oracle VM 服务器。
2.0 我们可以将单独的 PCIe 端点设备分配给 io 域。
如图所示,PCIE3被分配到io域。

primary# ldm start-reconf primary
primary# ldm remove-io /SYS/MB/PCIE3 primary
-----------------------------------------------------------------------------
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. 
-----------------------------------------------------------------------------

将配置保存为 io_conf 并重新启动系统以激活新配置

primary# ldm add-config io_conf
primary# reboot -- -r

在 ldm ls-io 命令输出中确认分配。

现在创建一个新域并将这个 PCIe 端点设备添加到新域中。

primary# ldm add-domain io_domain
primary# ldm add-vcpu 8 io_domain
primary# ldm add-memory 4G io_domain
primary-domain# ldm set-mau 1 io_domain
primary# ldm add-vnet vnet1 primary-vsw0 io_domain
# ldm add-io /SYS/MB/PCIE3 io_domain
# ldm bind io_domain
# ldm start io_domain 
LDom io_domain started

使用 PCIe 总线创建 I/O 域

现在如图所示,我们可以将完整的 PCI 总线 (pci_1) 分配给 I/O 域,假设该总线上没有由主域使用的磁盘或者网络设备。
我们不能在多个 I/O 域之间共享一条总线。

现在确保 pci_1 总线没有被主域使用。

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       
..........

如我们所见,主域正在使用 pci_1.
因此,我们需要删除主域使用的该总线中的任何设备。
如果主域中的任何设备正在使用总线 pci_1,请检查以下命令。
这些命令仅作为示例。
我们可能必须根据配置使用一些不同的命令。

primary# ifconfig -a 
primary# df /
primary# ls -l /dev/nxge0  (in case you find nxge0 in the ifconfig -a output)
primary# ls -l /dev/rdsk/c0t1d0s0
primary# ldm start-reconf primary 
primary# ldm remove-io pci_1 primary

将配置保存为 io_conf。

primary# ldm add-config io-domain

重新启动域以使新配置处于活动状态

primary# shutdown -i6 -g0 -y

现在设置一个新域

primary# ldm add-domain io_domain
primary# ldm add-vcpu 8 io_domain
primary# ldm add-memory 4G io_domain
primary# ldm set-mau 1 io_domain
primary# ldm add-vnet vnet1 primary-vsw0 io_domain

现在将空闲的 pci 总线添加到域中,绑定它并启动。

primary# ldm add-io pci_1 io_domain 
primary# ldm bind io_domain 
primary# ldm start io_domain

确认将 pci_1 总线分配给 io_domain

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    io_domain       
..........

我们应该能够看到 pci_1 总线的所有设备以及分配给 io_domain 的设备。

日期:2020-09-17 00:15:08 来源:oir作者:oir