此示例过程说明如何使用初始配置来创建新根域,在该配置中,primary 域拥有多个总线。默认情况下,系统上的所有总线都归 primary 域所有。此示例适用于 SPARC T4-2 服务器。在其他服务器上也可以使用此过程。虽然面向其他服务器的说明可能与这些说明稍有不同,但是您可以通过此处的示例了解基本原则。
确保不将托管引导磁盘和主网络接口的 PCIe 总线从 primary 域中删除。
注意 - 在支持的服务器上,所有的内部磁盘都可以连接到一个 PCIe 总线。如果域从内部磁盘进行引导,请不要将该总线从域中删除。 确保您不会删除含有某个域所用的设备(例如,网络端口或 usbecm 设备)的总线。如果错误地删除了总线,则域可能将无法访问所需的设备并变为不可用。要删除具有由域使用的设备的总线,请重新配置该域,以使用其他总线的设备。例如,可能需要重新配置该域,以使用其他板载网络端口或其他 PCIe 插槽中的 PCIe 卡。 在某些 SPARC 服务器上,您可以删除含有USB、图形控制器以及其他设备的 PCIe 总线。但是,不能向任何其他域添加此类 PCIe 总线。此类 PCIe 总线只能添加到 primary 域。 |
在此示例中,primary 域仅使用 ZFS 池 (rpool) 和网络接口 (igb0)。如果 primary 域使用多个设备,请对每个设备重复步骤 2 到步骤 4,以确保没有设备位于将要删除的总线上。
可以通过使用设备路径 (pci@nnn) 或 pseudonym (pci_n) 在域中添加或删除总线。ldm list-bindings primary 或 ldm list -l -o physio primary 命令会显示以下内容:
pci@400 对应于 pci_0
pci@500 对应于 pci_1
pci@600 对应于 pci_2
pci@700 对应于 pci_3
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary pci_2 BUS pci_2 primary pci_3 BUS pci_3 primary /SYS/MB/PCIE1 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary EMP /SYS/MB/PCIE6 PCIE pci_1 primary EMP /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE2 PCIE pci_2 primary EMP /SYS/MB/PCIE3 PCIE pci_2 primary EMP /SYS/MB/PCIE4 PCIE pci_2 primary EMP /SYS/MB/PCIE8 PCIE pci_3 primary EMP /SYS/MB/SASHBA1 PCIE pci_3 primary OCC /SYS/MB/NET2 PCIE pci_3 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_3 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_3 primary
primary# df / / (/dev/dsk/c0t5000CCA03C138904d0s0):22755742 blocks 2225374 files
primary# zpool status rpool pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c0t5000CCA03C138904d0s0 ONLINE 0 0 0
从 SPARC T3 服务器开始,内部磁盘通过 Solaris I/O 多路径来管理。
primary# mpathadm show lu /dev/rdsk/c0t5000CCA03C138904d0s0 Logical Unit: /dev/rdsk/c0t5000CCA03C138904d0s2 mpath-support: libmpscsi_vhci.so Vendor: HITACHI Product: H106030SDSUN300G Revision: A2B0 Name Type: unknown type Name: 5000cca03c138904 Asymmetric: no Current Load Balance: round-robin Logical Unit Group ID: NA Auto Failback: on Auto Probing: NA Paths: Initiator Port Name: w50800200014100c8 Target Port Name: w5000cca03c138905 Override Path: NA Path State: OK Disabled: no Target Ports: Name: w5000cca03c138905 Relative ID: 0
primary# mpathadm show initiator-port w50800200014100c8 Initiator Port: w50800200014100c8 Transport Type: unknown OS Device File: /devices/pci@400/pci@2/pci@0/pci@e/scsi@0/iport@1
请对 UltraSPARC T2 或 UltraSPARC T2 Plus 系统上未使用 Solaris I/O 多路径来管理的磁盘使用此命令。
以下示例使用块设备 c1t0d0s0:
primary# ls -l /dev/dsk/c0t1d0s0 lrwxrwxrwx 1 root root 49 Oct 1 10:39 /dev/dsk/c0t1d0s0 -> ../../devices/pci@400/pci@0/pci@1/scsi@0/sd@1,0:a
在此示例中,用作 primary 域的引导磁盘的物理设备会连接到 pci@400 总线。
使用 ifconfig 命令确定“已激活的”主网络接口。激活的接口设置了流,以使 IP 协议可以使用此设备。
primary# ifconfig -a lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 net0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 3 inet 10.129.241.135 netmask ffffff00 broadcast 10.129.241.255 ether 0:10:e0:e:f1:78 primary# dladm show-phys net0 LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 1000 full igb0
以下命令使用 igb0 网络接口:
primary# ls -l /dev/igb0 lrwxrwxrwx 1 root root 46 Oct 1 10:39 /dev/igb0 -> ../devices/pci@500/pci@0/pci@c/network@0:igb0
还执行 ls -l /dev/usbecm 命令。
在此示例中,域 primary 使用的网络接口的物理设备位于总线 pci@500 下,该总线对应于前面列出的 pci_1。这样,由于其他两个总线 pci_2 (pci@600) 和 pci_3 (pci@700) 未被 primary 域使用,因此可以将它们安全地分配到其他域。
如果 primary 域使用的网络接口位于要分配到其他域的总线上,请重新配置 primary 域,使其使用其他网络接口。
在此示例中,将从 primary 域中删除总线 pci_2。
确保 pci_2 总线中的设备未由 primary 域 OS 使用。如果它们被使用,此命令可能无法删除该总线。使用静态方法强行删除 pci_2 总线。
primary# ldm remove-io pci_2 primary
删除总线之前,必须先启动延迟重新配置。
primary# ldm start-reconf primary primary# ldm remove-io pci_2 primary primary# shutdown -y -g0 -i6
不能将 primary 域用于引导磁盘和网络设备的总线分配到其他域。可将其他任何总线分配到其他域。在此示例中,primary 域未使用 pci@600,因此可将其重新分配到其他域。
在此示例中,向 ldg1 域添加 pci_2 总线。
primary# ldm add-io pci_2 ldg1
删除总线之前,必须先停止域。
primary# ldm stop-domain ldg1 primary# ldm add-io pci_2 ldg1 primary# ldm start-domain ldg1
在此示例中,配置为 io-domain。
primary# ldm add-config io-domain
此配置 io-domain 还设置为重新引导后要使用的下一个配置。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary pci_2 BUS pci_2 ldg1 pci_3 BUS pci_3 primary /SYS/MB/PCIE1 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary EMP /SYS/MB/PCIE6 PCIE pci_1 primary EMP /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE2 PCIE pci_2 ldg1 EMP /SYS/MB/PCIE3 PCIE pci_2 ldg1 EMP /SYS/MB/PCIE4 PCIE pci_2 ldg1 EMP /SYS/MB/PCIE8 PCIE pci_3 primary EMP /SYS/MB/SASHBA1 PCIE pci_3 primary OCC /SYS/MB/NET2 PCIE pci_3 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_3 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_3 primary
此输出确认已将 PCIe 总线 pci_0、pci_1 和 pci_3 及其设备分配到 primary 域。它还确认已将 PCIe 总线 pci_2 及其设备分配到 ldg1 域。