ナビゲーションリンクをスキップ
印刷ビューの終了
| 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 ドメインは、「ルートドメイン」とも呼ばれます。

次の図は、2 つの PCIe バス (`pci_0` と `pci_1`) が存在するシステムを示しています。個々のバスが、別々のドメインに割り当てられています。このため、システムには 2 つの I/O ドメインが構成されます。

図 6-1 PCIe バスの I/O ドメインへの割り当て

PCIe バスで作成できる I/O ドメインの最大数は、サーバー上で使用できる PCIe バスの数に依存します。たとえば、Sun SPARC Enterprise T5440 サーバーを使用している場合、使用できる I/O ドメインは最大 4 つです。

注 - 一部の Sun UltraSPARC サーバーには、PCIe バスは 1 つしか存在しません。このような場合、PCIe エンドポイントデバイス (または直接 I/O を割り当てが可能なデバイス) をドメインに割り当てることで、I/O ドメインを作成できます。「PCIe エンドポイントデバイスの割り当て」を参照してください。システムにネットワークインタフェースユニット (Network Interface Unit、NIU) が存在する場合、NIU をドメインに割り当てて I/O ドメインを作成することもできます。

PCIe バスを I/O ドメインに割り当てると、そのバス上のすべてのデバイスはその I/O ドメインに所有されます。そのバス上の PCIe エンドポイントデバイスを他のドメインに割り当てることはできません。`primary` ドメインに割り当てられている PCIe バス上の PCIe エンドポイントデバイスのみが、他のドメインに割り当て可能です。

Logical Domains 環境でサーバーが最初に構成されるとき、または `factory-default` 構成を使用しているとき、`primary` ドメインはすべての物理デバイスリソースにアクセスできます。つまり、システムに構成されている I/O ドメインは `primary` ドメインのみであり、このドメインがすべての PCIe バスを所有します。

# PCIe バスの割り当てによる I/O ドメインの作成

このプロシージャー例は、複数のバスが `primary` ドメインに所有されている初期構成から、新しい I/O ドメインを作成する方法を示しています。デフォルトでは、システム上に存在するすべてのバスを `primary` ドメインが所有しています。ここで示す例は、Sun SPARC Enterprise T5440 サーバーの場合です。この手順は、ほかのサーバーにも使用できます。別のサーバーではこれらの手順と若干異なる場合がありますが、この例では基本的な方針について理解できます。

最初に、`primary` ドメインの起動ディスクを持つバスを保持する必要があります。それから、その他のバスを `primary` ドメインから削除してほかのドメインに割り当てます。

| 注意 - サポートされているサーバーの内部ディスクはすべて、単一の PCIe バスに接続されています。ドメインが内部ディスクから起動する場合は、ドメインからそのバスを削除しないでください。また、ドメインで使用されているネットワークポートなどのデバイスが接続されたバスを削除していないことを確認してください。誤ったバスを削除すると、ドメインは必要なデバイスにアクセスできず、使用できなくなることがあります。ドメインで使用されているデバイスが接続されたバスを削除する場合は、ほかのバスのデバイスを使用するよう、そのドメインを再構成してください。たとえば、別のオンボードネットワークポートや、別の PCIe スロットの PCIe カードを使用するよう、ドメインを再構成する必要がある場合があります。

この例では、`primary` ドメインは 1 つの ZFS プール (`rpool` (`c0t1d0s0`)) と 1 つのネットワークインタフェース (`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_0` の一覧表示で対応しているバス `pci@400` に接続されています。つまり、`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_1` に対応するバス `pci@500` に接続しています。そのため、ほかの 2 つのバス `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` に割り当てられていることを確認できます。

Copyright © 2007, 2010, Oracle and/or its affiliates. All rights reserved. 著作権について |