跳过导航链接
退出打印视图
| Oracle VM Server for SPARC 2.0 管理指南

搜索范围:

- 本文档
- 整个文档库

### 分配 PCIe 总线

可以使用 Oracle VM Server for SPARC 软件将完整的 PCIe 总线（也称为根联合体）分配到域。完整 PCIe 总线由 PCIe 总线本身及其所有 PCI 交换机和设备组成。服务器上的 PCIe 总线使用名称标识，例如 `pci@400` (`pci_0`)。配置有完整 PCIe 总线的 I/O 域也称为根域。

下图显示了具有两个 PCIe 总线 (`pci_0` and `pci_1`) 的系统。每个总线分配到不同的域。这样，系统就配置有两个 I/O 域。

图 6-1 将 PCIe 总线分配到 I/O 域

使用 PCIe 总线可以创建的最大 I/O 域数取决于服务器上可用的 PCIe 总线数。例如，如果使用 Sun SPARC Enterprise T5440 服务器，您最多可以有四个 I/O 域。

注 - 一些 Sun UltraSPARC 服务器只有一个 PCIe 总线。这种情况下，您可以通过将 PCIe 端点（或可分配的直接 I/O）设备分配到域来创建 I/O 域。请参见分配 PCIe 端点设备。如果系统具有网络接口单元 (Network Interface Unit, NIU)，也可以通过将 NIU 分配到域来创建 I/O 域。

将 PCIe 总线分配到 I/O 域时，该总线上的所有设备都归该 I/O 域所有。不允许将该总线上的任何 PCIe 端点设备分配到其他域。只可以将 PCIe 上已分配到 `primary` 域的 PCIe 端点设备分配到其他域。

在 Logical Domains 环境中最初配置服务器或使用 `factory-default` 配置时，`primary` 域可访问所有物理设备资源。这意味着 `primary` 域是系统上配置的唯一 I/O 域，所有 PCIe 总线都归其所有。

# 通过分配 PCIe 总线创建 I/O 域

此示例过程演示如何从初始配置创建 I/O 域，其中，几个总线归 `primary` 域所有。默认情况下，系统上的所有总线都归 `primary` 域所有。此示例适用于 Sun SPARC Enterprise T5440 服务器。在其他服务器上也可以使用此过程。虽然面向其他服务器的说明可能与这些说明稍有不同，但是您可以通过此处的示例了解基本原则。

首先，必须保留具有 `primary` 域的引导磁盘的总线。然后，将另一个总线从 `primary` 域删除并将其分配到另一个域。

| 注意 - 在支持的服务器上，所有内部磁盘都连接到一个 PCIe 总线。如果域从内部磁盘进行引导，请不要将该总线从域中删除。此外，请确保没有删除具有由域使用的设备（例如网络接口）的总线。如果错误地删除了总线，则域可能将无法访问所需的设备并变为不可用。要删除具有由域使用的设备的总线，请重新配置该域，以使用其他总线的设备。例如，可能需要重新配置该域，以使用其他板载网络端口或其他 PCIe 插槽中的 PCIe 卡。

在此示例中，`primary` 域仅使用 ZFS 池 (`rpool` (`c0t1d0s0`)) 和网络接口 (`nxge0`)。如果 `primary` 域使用多个设备，请对每个设备重复步骤 2 到步骤 4，以确保没有设备位于将要删除的总线上。

1. 检验 `primary` 域是否拥有多个 PCIe 总线。

       primary# ldm list-io
       IO              PSEUDONYM       DOMAIN
       --              ---------       ------
       pci@400         pci_0           primary
       pci@500         pci_1           primary
       pci@600         pci_2           primary
       pci@700         pci_3           primary

       PCIE                 PSEUDONYM  STATUS  DOMAIN
       ----                 ---------  ------  ------
       pci@400/pci@0/pci@d  MB/PCIE0   EMP     -
       pci@400/pci@0/pci@c  MB/PCIE1   OCC     primary
       pci@400/pci@0/pci@1  MB/HBA     OCC     primary
       pci@500/pci@0/pci@d  MB/PCIE4   EMP     -
       pci@500/pci@0/pci@9  MB/PCIE5   EMP     -
       pci@500/pci@0/pci@c  MB/NET0    OCC     primary
       pci@600/pci@0/pci@c  MB/PCIE2   OCC     primary
       pci@600/pci@0/pci@9  MB/PCIE3   OCC     primary
       pci@700/pci@0/pci@c  MB/PCIE6   OCC     primary
       pci@700/pci@0/pci@9  MB/PCIE7   EMP     -

2. 确定需要保留的引导磁盘的设备路径。
   - 对于 UFS 文件系统，请运行 `df /` 命令，以确定引导磁盘的设备路径。

         primary# df /
         /                  (/dev/dsk/c0t1d0s0 ): 1309384 blocks   457028 files

   - 对于 ZFS 文件系统，首先运行 `df /` 命令以确定池名称，然后运行 `zpool status` 命令以确定引导磁盘的设备路径。

         primary# df /
         /                  (rpool/ROOT/s10s_u8wos_08a):245176332 blocks 245176332 files
         primary# zpool status rpool
          zpool status rpool
           pool: rpool
          state: ONLINE
          scrub: none requested
         config:

                 NAME        STATE     READ WRITE CKSUM
                 rpool       ONLINE       0     0     0
                   c0t1d0s0  ONLINE       0     0     0

3. 确定块设备连接到的物理设备。

   以下示例使用块设备 `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`，该总线对应于前面列出的 `pci_0`。这意味着您无法将 `pci_0` (`pci@400`) 分配到其他域。

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

       primary# dladm show-dev
       vsw0            link: up        speed: 1000  Mbps       duplex: full
       nxge0           link: up        speed: 1000  Mbps       duplex: full
       nxge1           link: unknown   speed: 0     Mbps       duplex: unknown
       nxge2           link: unknown   speed: 0     Mbps       duplex: unknown
       nxge3           link: unknown   speed: 0     Mbps       duplex: unknown

   处于 `unknown` 状态的接口尚未配置，因此未使用。在此示例中，使用了 `nxge0` 接口。

5. 确定网络接口连接到的物理设备。

   以下命令使用 `nxge0` 网络接口：

       primary# ls -l /dev/nxge0
       lrwxrwxrwx   1 root     root          46 Oct  1 10:39 /dev/nxge0 ->
       ../devices/pci@500/pci@0/pci@c/network@0:nxge0

   在此示例中，域 `primary` 使用的网络接口的物理设备位于总线 `pci@500` 下，该总线对应于前面列出的 `pci_1`。这样，由于其他两个总线 `pci_2` (`pci@600`) 和 `pci_3` (`pci@700`) 未被 `primary` 域使用，因此可以将它们安全地分配到其他域。

   如果 `primary` 域使用的网络接口位于您要分配到另一个域的总线上，则需要重新配置 `primary` 域以使用其他网络接口。

6. 将不包含引导磁盘或网络接口的总线从 `primary` 域删除。

   在此示例中，总线 `pci_2` 和总线 `pci_3` 将从 `primary` 域删除。可能会在 `ldm` 命令中看到消息，指示 `primary` 域正进入延迟重新配置模式。

       primary# ldm remove-io pci_2 primary
       primary# ldm remove-io pci_3 primary

7. 将此配置保存到服务处理器。

   在此示例中，配置为 `io-domain`。

       primary# ldm add-config io-domain

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

   注 - 目前，SP 上可以保存的配置数限制为 8 个，不包括 `factory-default` 配置。

8. 重新引导 `primary` 域，以使更改生效。

       primary# shutdown -i6 -g0 -y

9. 停止要向其中添加 PCIe 总线的域。

   以下示例停止了 `ldg1` 域：

       primary# ldm stop ldg1

10. 将可用总线添加到需要直接访问的域。

    可用总线为 `pci_2`，域为 `ldg1`。

        primary# ldm add-io pci_2 ldg1

11. 重新启动该域，以使更改生效。

    以下命令可重新启动 `ldg1` 域：

        primary# ldm start ldg1

12. 确认仍然为 `primary` 域分配了相应的总线，并为 `ldg1` 域分配了相应的总线。

        primary# ldm list-io
        IO              PSEUDONYM       DOMAIN
        --              ---------       ------
        pci@400         pci_0           primary
        pci@500         pci_1           primary
        pci@600         pci_2           ldg1
        pci@700         pci_3

        PCIE                 PSEUDONYM  STATUS  DOMAIN
        ----                 ---------  ------  ------
        pci@400/pci@0/pci@d  MB/PCIE0   EMP     -
        pci@400/pci@0/pci@c  MB/PCIE1   OCC     primary
        pci@400/pci@0/pci@1  MB/HBA     OCC     primary
        pci@500/pci@0/pci@d  MB/PCIE4   EMP     -
        pci@500/pci@0/pci@9  MB/PCIE5   EMP     -
        pci@500/pci@0/pci@c  MB/NET0    OCC     primary
        pci@600/pci@0/pci@c  MB/PCIE2   UNK     -
        pci@600/pci@0/pci@9  MB/PCIE3   UNK     -
        pci@700/pci@0/pci@c  MB/PCIE6   UNK     -
        pci@700/pci@0/pci@9  MB/PCIE7   UNK     -

    此输出确认已将 PCIe 总线 `pci_0` 和 `pci_1` 及其下的设备分配到 `primary` 域，已将 `pci_2` 及其设备分配到 `ldg1`。

版权所有 © 2007, 2010, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |