Oracle® VM Server for SPARC 3.3 管理指南

退出打印视图

更新时间: 2015 年 10 月
 
 

如何通过分配 PCIe 总线创建根域

此示例过程说明如何使用初始配置来创建新根域,在该配置中,primary 域拥有多个总线。默认情况下,系统上的所有总线都归 primary 域所有。此示例适用于 SPARC T4-2 服务器。在其他服务器上也可以使用此过程。虽然面向其他服务器的说明可能与这些说明稍有不同,但是您可以通过此处的示例了解基本原则。

确保不将托管引导磁盘和主网络接口的 PCIe 总线从 primary 域中删除。


Caution

注意  - 在支持的服务器上,所有的内部磁盘都可以连接到一个 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 primaryldm list -l -o physio primary 命令会显示以下内容:

  • pci@400 对应于 pci_0

  • pci@500 对应于 pci_1

  • pci@600 对应于 pci_2

  • pci@700 对应于 pci_3

  1. 检验 primary 域是否拥有多个 PCIe 总线。
    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
  2. 确定必须保留的引导磁盘的设备路径。
    • 对于 UFS 文件系统,请运行 df / 命令,以确定引导磁盘的设备路径。
      primary# df /
      /                  (/dev/dsk/c0t5000CCA03C138904d0s0):22755742 blocks  2225374 files
    • 对于 ZFS 文件系统,首先运行 df / 命令以确定池名称。然后,运行 zpool status 命令以确定引导磁盘的设备路径。
      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
  3. 获取有关系统引导磁盘的信息。
    • 对于使用 Solaris I/O 多路径管理的磁盘,使用 mpathadm 命令确定连接有引导磁盘的 PCIe 总线。

      从 SPARC T3 服务器开始,内部磁盘通过 Solaris I/O 多路径来管理。

      1. 查找磁盘连接到的启动器端口。
        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
      2. 确定启动器端口所在的 PCIe 总线。
        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
    • 对于未使用 Solaris I/O 多路径管理的磁盘,使用 ls -l 命令确定块设备所链接的物理设备。

      请对 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 总线。

  4. 确定由系统使用的网络接口。

    使用 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
  5. 确定网络接口连接到的物理设备。

    以下命令使用 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 域,使其使用其他网络接口。

  6. 将不包含引导磁盘或网络接口的总线从 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,因此可将其重新分配到其他域。

  7. 向域添加总线。

    在此示例中,向 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
  8. 将此配置保存到服务处理器。

    在此示例中,配置为 io-domain

    primary# ldm add-config io-domain

    此配置 io-domain 还设置为重新引导后要使用的下一个配置。

  9. 确认仍然为 primary 域分配了相应的总线,并为 ldg1 域分配了相应的总线。
    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_0pci_1pci_3 及其设备分配到 primary 域。它还确认已将 PCIe 总线 pci_2 及其设备分配到 ldg1 域。