DB2 Version 9.7 for Linux, UNIX, and Windows
DB2 サーバー製品をインストールした後に > インストール後の作業 > パーティション・データベース環境 >

DB2 ノード構成ファイルの形式

db2nodes.cfg ファイルを使用して、DB2® インスタンスに参加するデータベース・パーティション・サーバーを定義します。また、データベース・パーティション・サーバー通信に高速相互接続を使用する場合にも、db2nodes.cfg ファイルを使用して高速相互接続の IP アドレスまたはホスト名を指定します。

Linux® および UNIX® オペレーティング・システムでの db2nodes.cfg ファイルの形式は以下のとおりです。

dbpartitionnum hostname logicalport netname resourcesetname
dbpartitionnum

, hostname, logicalportnetname、 および resourcesetname の定義を以下にまとめます。

Windows® オペレーティング・システムでの db2nodes.cfg ファイルの形式は以下のとおりです。

dbpartitionnum hostname computername logicalport netname resourcesetname
Windows

オペレーティング・システムでは、db2ncrt または START DBM ADD DBPARTITIONNUM コマンドによって db2nodes.cfg にこれらの項目が追加されます。項目は db2nchg コマンドによって変更することもできます。直接これらの行を追加したり、このファイルを編集したりしないでください。

dbpartitionnum
0 から 999 の固有の番号。 パーティション・データベース・システム内のデータベース・パーティション・サーバーを識別します。

パーティション・データベース・システムを拡大/縮小するには、 それぞれのデータベース・パーティション・サーバーの項目を db2nodes.cfg ファイルに追加します。追加のデータベース・パーティション・サーバー用に選択する dbpartitionnum 値は、 昇順になっていなければなりませんが、その順序内にギャップがあってもかまいません。 論理パーティション・サーバーを追加する予定があって、 ノードをこのファイル内に論理的にグループに分けて保管しておきたい場合、 dbpartitionnum の値と値の間にギャップを置いてもかまいません。

この項目は必須です。

hostname
FCM で使用するための、そのデータベース・パーティション・サーバーの TCP/IP ホスト名。 この項目は必須です。

db2nodes.cfg ファイルで、IP アドレスの代わりにホスト名が提供されている場合、データベース・マネージャーはホスト名を動的に解決しようとします。解決は、マシン上の OS 設定で決定されているように、ローカル側または登録済みドメイン・ネーム・サーバー (DNS) の参照のいずれかによって行うことができます。

DB2 バージョン 9.1 から、TCP/IPv4 プロトコルと TCP/IPv6 プロトコルの両方がサポートされています。ホスト名を解決する方式が変更されました。

バージョン 9.1 より前のリリースでは、db2nodes.cfg ファイルで定義されたストリングを解決する方式が使用されていたのに対し、バージョン 9.1 以降では、db2nodes.cfg ファイルで短縮名が定義されている場合、完全修飾ドメイン・ネーム (FQDN) の解決を試行する方式が使用されます。完全修飾ホスト名の構成で短縮名を指定すると、ホスト名を解決するプロセスにおいて不要な遅延が発生する可能性があります。

ホスト名の解決を必要とする DB2 コマンドで遅延が発生しないようにするには、以下のいずれかの回避策を使用します。

  1. db2nodes.cfg ファイルおよびオペレーティング・システムのホスト・ファイルで短縮名が指定されている場合、オペレーティング・システムのホスト・ファイルのホスト名に、短縮名および完全修飾ドメイン・ネームを指定します。
  2. DB2 サーバーが IPv4 ポートで listen していることが分かっている場合に IPv4 アドレスのみを使用するには、以下のコマンドを発行します。
    db2 catalog tcpip4 node db2tcp2 remote 192.0.32.67 server db2inst1 with "Look up IPv4 address from 192.0.32.67"
  3. DB2 サーバーが IPv6 ポートで listen していることが分かっている場合に IPv6 アドレスのみを使用するには、以下のコマンドを発行します。
    db2 catalog tcpip6 node db2tcp3 1080:0:0:0:8:800:200C:417A server 50000 with "Look up IPv6 address from 1080:0:0:0:8:800:200C:417A"
logicalport
データベース・パーティション・サーバー用の論理ポート番号を指定します。このフィールドは、 論理データベース・パーティション・サーバーを実行するワークステーションで、 個々のデータベース・パーティション・サーバーを指定するのに使います。

DB2 は、インストール時のパーティション間通信用に、/etc/services ファイル中でポート範囲 (60000 から 60003 など) を予約しています。 db2nodes.cfg 中のこの logicalport フィールドは、この範囲内のどのポートを特定の論理パーティション・サーバーに割り当てるのかを指定します。

このフィールド用の項目がない場合のデフォルト値は 0 です。ただし、netname フィールドの項目を追加した場合、 logicalport フィールドに番号を入力しなければなりません。

論理データベース・パーティションを使用する場合、指定する logicalport 値は、 0 から開始し、昇順にしなければなりません (例えば、 0,1,2)。

さらに、1 つのデータベース・パーティション・サーバーに logicalport 項目を指定する場合、 db2nodes.cfg ファイルにリストされているそれぞれのデータベース・パーティション・サーバーごとに、 logicalport を指定する必要があります。

このフィールドがオプションであるのは、 論理データベース・パーティションや高速相互接続を使用しない 場合だけです。

netname
FCM 通信での高速相互接続のホスト名または IP アドレスを指定します。

このフィールドの項目を指定すると、 データベース・パーティション・サーバー相互の通信 (db2start、 db2stop、 および db2_all コマンドで起動した通信を除く) は、 高速相互接続を通して処理されます。

このパラメーターが必要なのは、 データベース・パーティションの通信に高速相互接続を使用する場合だけです。

resourcesetname
resourcesetname は、ノードを開始するオペレーティング・システム・リソースを定義します。 resourcesetname は、プロセス類縁性をサポートし、Multiple Logical Node (MLN) で使用されます。このサポートには、ストリング・タイプのフィールドが備えられ、以前は quadname と呼ばれていました。

このパラメーターは、AIX®、HP-UX、Solaris オペレーティング・システム上だけでサポートされています。

この概念は、AIX では「リソース・セット」と呼ばれ、Solaris オペレーティング・システムでは「プロジェクト」と呼ばれています。リソース管理について詳しくは、 ご使用のオペレーティング・システムの資料を参照してください。

HP-UX 上では、resourcesetname パラメーターは PRM グループの名前です。詳しくは、 HP から「HP-UX Process Resource Manager User Guide (B8733-90007)」を参照してください。

Windows オペレーティング・システムでは、論理ノードのプロセス類縁性は、DB2PROCESSORS レジストリー変数で定義できます。

Linux オペレーティング・システムでは、resourcesetname 列により、システム上の Non-Uniform Memory Access (NUMA) ノードに対応する番号を定義します。 NUMA ポリシー・サポートを備えた 2.6 Kernel とともに、システム・ユーティリティーの numactl を使用できる状態にする必要があります。

resourcesetname パラメーターを使用する場合には、netname パラメーターの指定が必要です。

構成の例

以下の構成例を参考にして、ユーザーの環境に適切な構成を判別してください。

1 台のコンピューター、4 つのデータベース・パーティション・サーバー
クラスター化された環境を使用しておらず、 ServerA という 1 つの物理ワークステーション上に、 4 つのデータベース・パーティション・サーバーを設けようとした場合、 db2nodes.cfg ファイルを以下のように更新します。
   0          ServerA        0
   1          ServerA        1
   2          ServerA        2
   3          ServerA        3
2 台のコンピューター、1 台のコンピューターにつき 1 つのデータベース・パーティション・サーバー
ServerA および ServerB という 2 つの物理ワークステーションを、パーティション・データベース・システムに組み込む場合、以下のように db2nodes.cfg ファイルを更新します。
   0          ServerA        0
   1          ServerB        0
2 台のコンピューター、1 台のコンピューター上に 3 つのデータベース・パーティション・サーバー
ServerA および ServerB という 2 つの物理ワークステーションをパーティション・データベース・システムに組み込む場合に、ServerA が 3 つのデータベース・パーティション・サーバーを実行していれば、 以下のように db2nodes.cfg ファイルを更新します。
   4          ServerA        0
   6          ServerA        1
   8          ServerA        2
   9          ServerB        0
2 台のコンピューター、高速スイッチを持つ 3 つのデータベース・パーティション・サーバー
ServerA および ServerB という 2 つのコンピューターをパーティション・データベース・システムに組み込む (ServerB は、2 つのデータベース・パーティション・サーバーを実行中) 場合に、 switch1 および switch2 という高速相互接続を使いたければ、 以下のように db2nodes.cfg ファイルを更新します。
   0          ServerA        0              switch1
   1          ServerB        0              switch2
   2          ServerB        1              switch2

resourcesetname の使用例

以下の例では、以下の制約事項が適用されます。

AIX の例

AIX オペレーティング・システムの場合にリソース・セットをセットアップする方法の例を示します。

この例では、1 つの物理ノードに、 32 のプロセッサーと 8 つの論理データベース・パーティション (MLN) があります。この例では、個々の MLN にプロセス類縁性を備える方法を示します。

  1. /etc/rset 中にリソース・セットを定義します。
    DB2/MLN1:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00000,sys/cpu.00001,sys/cpu.00002,sys/cpu.00003
    
    DB2/MLN2:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00004,sys/cpu.00005,sys/cpu.00006,sys/cpu.00007
    
    DB2/MLN3:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00008,sys/cpu.00009,sys/cpu.00010,sys/cpu.00011
    
    DB2/MLN4:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00012,sys/cpu.00013,sys/cpu.00014,sys/cpu.00015
    
    DB2/MLN5:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00016,sys/cpu.00017,sys/cpu.00018,sys/cpu.00019
    
    DB2/MLN6:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00020,sys/cpu.00021,sys/cpu.00022,sys/cpu.00023
    
    DB2/MLN7:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00024,sys/cpu.00025,sys/cpu.00026,sys/cpu.00027
    
    DB2/MLN8:
        owner     = db2inst1
        group     = system
        perm      = rwr-r-
        resources = sys/cpu.00028,sys/cpu.00029,sys/cpu.00030,sys/cpu.00031
  2. 下記のコマンドを入力することによって、メモリー親和性を使用可能にします。
       vmo -p -o memory_affinity=1
  3. リソース・セットを使用するインスタンス許可を付与します。
    chuser capabilities=
        CAP_BYPASS_RAC_VMM,CAP_PROPAGATE,CAP_NUMA_ATTACH  db2inst1
  4. db2nodes.cfg 中に 5 つ目の列としてリソース・セット名を追加します。
    1 regatta 0 regatta DB2/MLN1
    2 regatta 1 regatta DB2/MLN2
    3 regatta 2 regatta DB2/MLN3
    4 regatta 3 regatta DB2/MLN4
    5 regatta 4 regatta DB2/MLN5
    6 regatta 5 regatta DB2/MLN6
    7 regatta 6 regatta DB2/MLN7
    8 regatta 7 regatta DB2/MLN8

HP-UX の例

この例は、4 つの CPU と 4 つの MLN のあるマシン上で PRM グループを使用して CPU を共用し、MLN 当たり 24% の CPU を共用し、4% を他のアプリケーション用に残しておく方法を示しています。DB2 インスタンス名は db2inst1 です。

  1. /etc/prmconf の GROUP セクションを編集します。
      OTHERS:1:4::
    	db2prm1:50:24::
     	db2prm2:51:24::
      	db2prm3:52:24::
     	db2prm4:53:24::  
  2. /etc/prmconf にインスタンス所有者項目を追加します。
       db2inst1::::OTHERS,db2prm1,db2prm2,db2prm3,db2prm4
  3. 以下のコマンドを入力し、グループを初期設定して CPU マネージャーを有効にします。
       prmconfig -i
       prmconfig -e CPU
  4. 5 つ目の列として PRM グループ名を db2nodes.cfg に追加します。
       1 voyager 0 voyager db2prm1 	
       2 voyager 1 voyager db2prm2 	
       3 voyager 2 voyager db2prm3 	
       4 voyager 3 voyager db2prm4

対話式 GUI ツール xprm を使用して PRM の構成 (ステップ 1 から 3) を行うこともできます。

Linux の例

Linux オペレーティング・システムでは、resourcesetname 列により、システム上の Non-Uniform Memory Access (NUMA) ノードに対応する番号を定義します。 NUMA ポリシー・サポートを備えた 2.6 カーネルに加えて、numactl システム・ユーティリティーを使用できる状態にする必要があります。 Linux オペレーティング・システムの NUMA サポートの詳細については、numact1 のマニュアル・ページを参照してください。

1 台の NUMA コンピューターに 4 つのノードを設定し、それぞれの論理ノードに 1 つの NUMA ノードを関連付ける例を以下に示します。

  1. NUMA 機能がシステムに存在することを確認します。
  2. 以下のコマンドを発行します。
    $ numactl --hardware
    以下のような出力が表示されます。
    available: 4 nodes (0-3)
    node 0 size: 1901 MB 
    node 0 free: 1457 MB 
    node 1 size: 1910 MB 
    node 1 free: 1841 MB 
    node 2 size: 1910 MB 
    node 2 free: 1851 MB 
    node 3 size: 1905 MB 
    node 3 free: 1796 MB
  3. この例では、システムに 4 つの NUMA ノードがあります。 db2nodes.cfg ファイルを以下のように編集して、それぞれの MLN にシステム上の 1 つの NUMA ノードを関連付けます。
    0 hostname 0 hostname 0
    1 hostname 1 hostname 1 
    2 hostname 2 hostname 2 
    3 hostname 3 hostname 3

Solaris の例

Solaris バージョン 9 の場合にプロジェクトをセットアップする方法の例を示します。

この例では、1 つの物理ノードに 8 つのプロセッサーがあります。デフォルトのプロジェクト用に 1 つの CPU が使用され、Application Server 用に 3 つの CPU が使用され、DB2 用に 4 つの CPU が使用されます。インスタンス名は db2inst1 です。

  1. エディターを使用して、リソース・プール構成ファイルを作成します。この例では、ファイルの名前は pool.db2 です。内容は以下のとおりです。
       create system hostname
       create pset pset_default (uint pset.min = 1)
       create pset db0_pset (uint pset.min = 1; uint pset.max = 1)
       create pset db1_pset (uint pset.min = 1; uint pset.max = 1)
       create pset db2_pset (uint pset.min = 1; uint pset.max = 1)
       create pset db3_pset (uint pset.min = 1; uint pset.max = 1)
       create pset appsrv_pset (uint pset.min = 3; uint pset.max = 3)
       create pool pool_default (string pool.scheduler="TS";
            boolean pool.default = true)
       create pool db0_pool (string pool.scheduler="TS")
       create pool db1_pool (string pool.scheduler="TS")
       create pool db2_pool (string pool.scheduler="TS")
       create pool db3_pool (string pool.scheduler="TS")
       create pool appsrv_pool (string pool.scheduler="TS")
       associate pool pool_default (pset pset_default)
       associate pool db0_pool (pset db0_pset)
       associate pool db1_pool (pset db1_pset)
       associate pool db2_pool (pset db2_pset)
       associate pool db3_pool (pset db3_pset)
       associate pool appsrv_pool (pset appsrv_pset)
  2. 以下のように、/etc/project ファイルを編集して DB2 プロジェクトと appsrv プロジェクトを追加します。
       system:0::::
       user.root:1::::
       noproject:2::::
       default:3::::
       group.staff:10::::
       appsrv:4000:App Serv project:root::project.pool=appsrv_pool
       db2proj0:5000:DB2 Node 0 project:db2inst1,root::project.pool=db0_pool
       db2proj1:5001:DB2 Node 1 project:db2inst1,root::project.pool=db1_pool
       db2proj2:5002:DB2 Node 2 project:db2inst1,root::project.pool=db2_pool
       db2proj3:5003:DB2 Node 3 project:db2inst1,root::project.pool=db3_pool 
  3. リソース・プールを作成します: # poolcfg -f pool.db2
  4. リソース・プールをアクティブにします: # pooladm -c
  5. db2nodes.cfg ファイル中に 5 つ目の列としてプロジェクト名を追加します。
       0 hostname 0 hostname db2proj0
       1 hostname 1 hostname db2proj1
       2 hostname 2 hostname db2proj2
       3 hostname 3 hostname db2proj3
[ ページのトップ | 前ページ | 次ページ | 目次 ]