ここでは、例として、複数のバスが primary ドメインによって所有されている初期構成で新しい I/O ドメインを作成する手順について説明します。デフォルトでは、システム上に存在するすべてのバスを primary ドメインが所有しています。ここで示す例は、Sun Fire T2000 サーバーの場合です。この手順は、ほかのサーバーにも使用できます。別のサーバーではこれらの手順と若干異なる場合がありますが、この例では基本的な方針について理解できます。
最初に、primary ドメインの起動ディスクを持つバスを保持する必要があります。それから、その他のバスを primary ドメインから削除してほかのドメインに割り当てます。
サポートされたサーバーの内部ディスクはすべて、1 つの PCI バスに接続されています。ドメインが内部ディスクから起動する場合は、ドメインからそのバスを削除しないでください。また、ドメインで使用されているネットワークポートなどのデバイスが接続されたバスを削除していないことを確認してください。誤ったバスを削除すると、ドメインは必要なデバイスにアクセスできず、使用できなくなることがあります。ドメインで使用されているデバイスが接続されたバスを削除する場合は、ほかのバスのデバイスを使用するよう、そのドメインを再構成してください。たとえば、別のオンボードネットワークポートや、別の PCI スロットの PCI カードを使用するよう、ドメインを再構成する必要があります。
この例では、primary ドメインは 1 つのディスク (c1t0d0) と 1 つのネットワークインタフェース (e1000g2) のみを使用します。primary ドメインで複数のデバイスを使用する場合は、デバイスごとに手順 2 - 4 を繰り返して、削除するバスにそれらのデバイスがないことを確認します。
primary ドメインが複数の PCI バスを所有していることを確認します。
primary# ldm list-bindings primary ... IO DEVICE PSEUDONYM OPTIONS pci@780 bus_a pci@7c0 bus_b ... |
起動ディスクのデバイスパスを確認します。これは保持する必要があります。
primary# df / / (/dev/dsk/c1t0d0s0 ): 1309384 blocks 457028 files |
ブロック型デバイスが接続されている物理デバイスを確認します。
ここでは、例としてブロック型デバイス c1t0d0s0 を使用します。
primary# ls -l /dev/dsk/c1t0d0s0 lrwxrwxrwx 1 root root 65 Feb 2 17:19 /dev/dsk/c1t0d0s0 -> ../ ../devices/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@0,0:a |
この例では、primary ドメインの起動ディスクに対する物理デバイスは、前述の bus_b の一覧表示で対応しているバス pci@7c0 に接続されています。つまり、bus_a (pci@780) を別のドメインに割り当てることができます。
システムで使用されているネットワークインタフェースを確認します。
primary# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE e1000g0 Ethernet unknown 0 half e1000g0 e1000g1 Ethernet unknown 0 half e1000g1 e1000g2 Ethernet up 100 full e1000g2 e1000g3 Ethernet unknown 0 half e1000g3 |
状態が unknown のインタフェースは構成されていないため、使用されていません。この例では e1000g2 インタフェースのみが使用されています。
ネットワークインタフェースが接続されている物理デバイスを確認します。
次のコマンドでは、e1000g2 ネットワークインタフェースを使用します。
primary# ls -l /dev/e1000g2 lrwxrwxrwx 1 root root 48 Sep 25 2008 /dev/e1000g2 -> ../devices/pci@7c0/pci@0/pci@2/network@0:e1000g2 |
この例では、primary ドメインで使用されているネットワークインタフェースに対する物理デバイスは、前述の bus_a の一覧表示で対応しているバス pci@7c0 の配下にあります。つまり、primary ドメインの起動ディスクとネットワークインタフェースは、同じバス bus_b (pci@7c0) 上にあります。bus_a (pci@780) は primary ドメインでは使用されていないため、別のドメインに安全に割り当てることができます。
primary ドメインで使用されているネットワークインタフェースが、別のドメインに割り当てようとしているバス上にある場合は、別のネットワークインタフェースを使用するように primary ドメインを再構成する必要があります。
起動ディスクを含まないバスをドメインから削除します。
この例では、バス pci@780 が primary ドメインから削除されます。
primary# ldm remove-io pci@780 primary |
この構成をサービスプロセッサに保存します。
この例では、構成は io-domain です。
primary# ldm add-config io-domain |
この構成 io-domain は、再起動後に使用される次の構成としても設定されます。
現在、SP に保存できる構成数の上限は 8 つです。この数には、factory-default 構成は含まれません。
primary ドメインを再起動して、変更を有効にします。
primary# shutdown -i6 -g0 -y |
PCI バスを追加するドメインを停止します。
ここでは、例として ldg1 ドメインを停止します。
primary# ldm stop ldg1 primary# ldm unbind ldg1 |
直接のアクセス権が必要なドメインに、使用可能なバスを追加します。
使用可能なバスは pci@780、ドメインは ldg1 です。
primary# ldm add-io pci@780 ldg1 |
InfiniBand カードが構成されていると、pci@780 バスでバイパスモードの有効化が必要になる場合があります。バイパスモードを有効にする必要があるかどうかについては、「PCI バスでの I/O MMU バイパスモードの有効化」 を参照してください。
ドメインを再起動して、変更を有効にします。
次のコマンドでは、ldg1 ドメインを再起動します。
primary# ldm bind ldg1 primary# ldm start ldg1 |
適切なバスが primary ドメインに割り当てられたままで、適切なバスがドメイン ldg1 に割り当てられていることを確認します。
primary# ldm list-bindings primary ldg1 NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME primary active -n-cv SP 4 4G 0.4% 18h 25m ... IO DEVICE PSEUDONYM OPTIONS pci@7c0 bus_b ... ---------------------------------------------------------------- NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME ldg1 active -n--- 5000 4 2G 10% 35m ... IO DEVICE PSEUDONYM OPTIONS pci@780 bus_a ... |
この出力では、PCI-E バス bus_b とその配下のデバイスがドメイン primary に割り当てられており、bus_a とそのデバイスが ldg1 に割り当てられていることを確認できます。