Go to main content
Oracle® VM Server for SPARC 3.4 管理ガイド

印刷ビューの終了

更新: 2016 年 8 月
 
 

PCIe バスの割り当てによってルートドメインを作成する方法

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

ブートディスクおよびプライマリネットワークインタフェースをホストする PCIe バスは primary ドメインから削除しないでください。


Caution

注意  - サポートされているサーバーの内部ディスクはすべて、単一の PCIe バスに接続されている場合があります。ドメインが内部ディスクからブートする場合は、ドメインからそのバスを削除しないでください。 ドメインによって使用されているデバイス (ネットワークポートや usbecm デバイスなど) を含むバスを削除しないようにしてください。誤ったバスを削除すると、ドメインは必要なデバイスにアクセスできず、使用できなくなることがあります。ドメインで使用されているデバイスが接続されたバスを削除する場合は、ほかのバスのデバイスを使用するよう、そのドメインを再構成してください。たとえば、別のオンボードネットワークポートや、別の PCIe スロットの PCIe カードを使用するよう、ドメインを再構成する必要がある場合があります。 特定の SPARC サーバーでは、USB、グラフィックコントローラ、およびその他のデバイスを含む PCIe バスを削除できます。ただし、これらの PCIe バスをほかのドメインに追加することはできません。このような PCIe バスは、primary ドメインにのみ追加できます。


この例では、primary ドメインは 1 つの ZFS プール (rpool) と 1 つのネットワークインタフェース (igb0) のみを使用します。primary ドメインで複数のデバイスを使用する場合は、デバイスごとに手順 2 - 4 を繰り返して、削除するバスにそれらのデバイスがないことを確認します。

ドメインにバスを追加したり、ドメインからバスを削除したりするには、そのデバイスパス (pci@nnn) またはその仮名 (pci_n) を使用します。ldm list-bindings primary または ldm list -l -o physio primary コマンドは次を示しています。

  • pci@400pci_0 に対応します

  • pci@500pci_1 に対応します

  • pci@600pci_2 に対応します

  • pci@700pci_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 バスを判断します。
      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 コマンドを使用してブロック型デバイスがリンクされている物理デバイスを判断します。

      次の例では、ブロック型デバイス 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 コマンドを使用して、「plumb」されているプライマリネットワークインタフェースを確認します。plumb されたインタフェースには、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_1 に対応するバス pci@500 に接続しています。そのため、ほかの 2 つのバス pci_2 (pci@600) と pci_3 (pci@700) は primary ドメインでは使用されていないため、ほかのドメインに安全に割り当てることができます。

    primary ドメインで使用されているネットワークインタフェースが、別のドメインに割り当てようとしているバス上にある場合は、別のネットワークインタフェースを使用するように primary ドメインを再構成します。

  6. ブートディスクまたはネットワークインタフェースを含まないバスを primary ドメインから削除します。

    この例では、pci_2 バスが primary ドメインから削除されます。

    • 動的方法:

      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 ドメインでブートディスクおよびネットワークデバイスに使用されているバスは、ほかのドメインに割り当てることはできません。ほかの任意のバスを別のドメインに割り当てることができます。この例では、pci@600primary ドメインで使用されていないため、別のドメインに再割り当てすることができます。

  7. バスをドメインに追加します。

    この例では、pci_2 バスを ldg1 ドメインに追加します。

    • 動的方法:
      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_1、および pci_3 とそれらのデバイスが primary ドメインに割り当てられていることが確認されます。また、PCIe バス pci_2 とそのデバイスが ldg1 ドメインに割り当てられていることも確認されます。