1. Oracle VM Server for SPARC ソフトウェアの概要
PCIe エンドポイントデバイスの割り当てによる I/O ドメインの作成
A. Oracle VM Server for SPARC 物理から仮想への変換ツール
B. Oracle VM Server for SPARC Configuration Assistant
C. Logical Domains Manager の検出
D. Logical Domains Manager での XML インタフェースの使用
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 バスを所有します。
このプロシージャー例は、複数のバスが primary ドメインに所有されている初期構成から、新しい I/O ドメインを作成する方法を示しています。デフォルトでは、システム上に存在するすべてのバスを primary ドメインが所有しています。ここで示す例は、Sun SPARC Enterprise T5440 サーバーの場合です。この手順は、ほかのサーバーにも使用できます。別のサーバーではこれらの手順と若干異なる場合がありますが、この例では基本的な方針について理解できます。
最初に、primary ドメインの起動ディスクを持つバスを保持する必要があります。それから、その他のバスを primary ドメインから削除してほかのドメインに割り当てます。
注意 - サポートされているサーバーの内部ディスクはすべて、単一の PCIe バスに接続されています。ドメインが内部ディスクから起動する場合は、ドメインからそのバスを削除しないでください。また、ドメインで使用されているネットワークポートなどのデバイスが接続されたバスを削除していないことを確認してください。誤ったバスを削除すると、ドメインは必要なデバイスにアクセスできず、使用できなくなることがあります。ドメインで使用されているデバイスが接続されたバスを削除する場合は、ほかのバスのデバイスを使用するよう、そのドメインを再構成してください。たとえば、別のオンボードネットワークポートや、別の PCIe スロットの PCIe カードを使用するよう、ドメインを再構成する必要がある場合があります。 |
この例では、primary ドメインは 1 つの ZFS プール (rpool (c0t1d0s0)) と 1 つのネットワークインタフェース (nxge0) のみを使用します。primary ドメインで複数のデバイスを使用する場合は、デバイスごとに手順 2 - 4 を繰り返して、削除するバスにそれらのデバイスがないことを確認します。
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 -
primary# df / / (/dev/dsk/c0t1d0s0 ): 1309384 blocks 457028 files
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
ここでは、例としてブロック型デバイス 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) を別のドメインに割り当てることはできません。
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 インタフェースが使用されます。
次のコマンドでは、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 ドメインを再構成する必要があります。
この例では、バス pci_2 とバス pci_3 が primary ドメインから削除されます。ldm コマンドにより、primary ドメインが遅延再構成モードに移行したことを示すメッセージが表示される場合があります。
primary# ldm remove-io pci_2 primary primary# ldm remove-io pci_3 primary
この例では、構成は io-domain です。
primary# ldm add-config io-domain
この構成 io-domain は、再起動後に使用される次の構成としても設定されます。
注 - 現在、SP に保存できる構成数の上限は 8 つです。この数には、factory-default 構成は含まれません。
primary# shutdown -i6 -g0 -y
ここでは、例として ldg1 ドメインを停止します。
primary# ldm stop ldg1
利用可能なバスは pci_2、ドメインは ldg1 です。
primary# ldm add-io pci_2 ldg1
次のコマンドでは、ldg1 ドメインを再起動します。
primary# ldm start 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 に割り当てられていることを確認できます。