インストールの構成パラメータ

Oracle NoSQL Databaseを構成する前に、ストア内の各ストレージ・ノードについて次のパラメータを決定する必要があります。これらのパラメータはそれぞれ、makebootconfigユーティリティで使用するディレクティブです。

  • root

    KVROOTディレクトリの場所。各ストレージ・ノードに、Oracle NoSQL Databaseストアに格納されるデータを保持するのに十分なディスク領域が必要です。storagedirパラメータを使用してKVROOTディレクトリ以外の場所にデータを格納する場合、KVROOTディスク領域要件を少なくできます。KVROOTディレクトリのローカル・ディレクトリ・パスを各ノードで同じにする(ただし、共有ディレクトリやNFSマウントされたディレクトリは使用しない)ことをお薦めします。この本の例では、KVROOTディレクトリがすでに存在するものとします。

  • port

    ストレージ・ノードがOracle NoSQL Databaseに接続するために使用するTCP/IPポート。このポートは各ストレージ・ノードで空いている(未使用である)必要があります。この本の例では、ポート5000を使用します。このポートは、レジストリ・ポートと呼ばれる場合もあります。

  • harange

    レプリケーション・ノードと管理プロセスは、harange (高可用性範囲)ポートを使用して相互に通信します。ストア内のそれぞれのストレージ・ノードについて、連続するポート番号を指定します。ストレージ・ノード上のレプリケーション・ノードごとにポートを1つずつと、ストレージ・ノードが管理をホストする場合は追加ポートを指定します。ストレージ・ノード・エージェントがこのポートの割当てを管理し、必要に応じて管理サービス用に1つを予約して、レプリケーション・ノードごとに1つずつ、残りのポートを割り当てます。ポート範囲はstartPort, endPortのように指定します。ストレージ・ノード自体にポート5000を使用した後、このドキュメントでは例として値5010,5020を使用します。管理サービス用に1つとレプリケーション・ノード用に1つです。

  • servicerange

    ストレージ・ノードが他の管理サービスおよびその管理対象サービスとの通信に使用するポートの範囲。このオプションのパラメータは、ストレージ・ノードのサービスがファイアウォールまたはその他のセキュリティ上の目的に特定のポートを使用する必要がある場合に役立ちます。デフォルトでは、サービスは匿名ポートを使用します。このポート範囲は、startPort,endPortのような値の文字列として指定します。詳細は、ストレージ・ノード・パラメータを参照してください。

  • store-security

    セキュリティを使用するかどうかを指定します。これはオプションのパラメータですが、セキュリティを念頭に置いてOracle NoSQL Databaseを構成することをお薦めします。

    noneを指定すると、セキュリティは使用されません。

    configureを指定すると、セキュリティを構成することを示します。その後、makebootconfigプロセスによって、securityconfigユーティリティがその操作の一部として起動されます。

    enableを指定すると、セキュリティが使用されることを示します。ただし、セキュリティ構成ユーティリティを使用するか、前に作成した構成を別のシステムからコピーして、セキュリティを構成する必要があります。

    注意:

    -store-securityパラメータはオプションです。このパラメータを指定しない場合、デフォルトでセキュリティが構成されます。セキュア・インストールを完了するには、ストレージ・ノード・エージェントを起動する前に、securityconfigユーティリティを使用してセキュリティ・フォルダを作成する必要があります。詳細は、KVStoreの構成を参照してください。

  • capacity

    ストレージ・ノードがサポートできるレプリケーション・ノードの総数。capacityはオプションですが、レプリケーション・ノードの数を表す非常に重要なパラメータです。構成しているストレージ・ノードに、複数のレプリケーション・ノードをサポートするリソースがある場合は、capacityの値を適切な数に設定します。一般的な経験則として、レプリケーション・ノードを正常にホストするには、実行時のピーク需要を満たすのに十分なディスク、CPU、メモリーおよびネットワーク帯域幅が必要です。

    ストレージ・ノードでアービタ・ノードをホストするには、capacityを0に設定します。これにより、必要な場合は常に、ゾーン内のアービタ・ノードをホストするように構成されたストレージ・ノードのプールがアービタ・ノードとして割り当てられます。詳細は、アービタ・ノードが有効なトポロジのデプロイを参照してください。

    capacityが1より大きいストレージ・ノードについては、次の構成設定を検討してください。

    1. マシンで使用可能なディスクの数と等しいcapacityを指定して各ストレージ・ノードを構成することをお薦めします。このような構成では、各レプリケーション・ノードを独自のディスクに配置できるため、ストレージ・ノード上のレプリケーション・ノードがI/Oリソースを奪い合うことがなくなります。–storagedirパラメータを使用すると、各レプリケーション・ノード・ディスクのディレクトリの場所を指定できます。

      次に例を示します。

      > java -Xmx64m -Xms64m \
          -jar <KVHOME>/lib/kvstore.jar makebootconfig \
          -root /opt/ondb/var/kvroot \
          -port 5000 \
          -host node10
          -harange 5010,5025 \
          -capacity 3 \
          -admindir /disk1/ondb/admin01 \
          -admindirsize 200-MB \
          -storagedir /disk1/ondb/data \
          -storagedir /disk2/ondb/data \
          -storagedir /disk3/ondb/data \
          -storagedirsize 1_tb \
          -rnlogdir /disk1/ondb/rnlog01 \
          -rnlogdir /disk2/ondb/rnlog02 \
          -rnlogdir /disk3/ondb/rnlog03 

      -capacity 3は、ストレージ・ノード(node10)上のディスク数を表します。ディスクはdisk1disk2disk3です。

    2. レプリケーションおよび管理ノードで必要な追加ポートをサポートする場合は、–harangeパラメータを増やします。

    3. レプリケーション・ノードで必要な追加ポートを考慮する場合は、–servicerangeパラメータを増やします。

    capacity値は、指定する必要がある–storagedirパラメータの数を示します。それ以外の場合、値のデフォルトは1です。このドキュメントの例では、capacityとして1を使用します。

  • admindir

    ストレージ・ノードの管理プロセスに関連付けられた環境を格納するディレクトリ・パス。

    管理ディレクトリ・パスが別個のディスクに解決されるようにすることをお薦めします。そのためには、/etc/fstabディレクトリに適切なエントリを作成して、ディスク上のファイル・システムをディレクトリ階層全体の適切な場所にアタッチします。管理環境を別個のディスクに配置すると、管理がI/Oリソースを奪い合うことがなくなります。また、ディスク障害の影響が単一の環境にとどまります。

    -admindirについて明示的なディレクトリ・パスを指定しない場合、管理環境のファイルは次のディレクトリに配置されます。
       KVROOT/KVSTORE/<SNID>/<AdminId>/
  • admindirsize

    管理ストレージ・ディレクトリのサイズ。これはオプションですが、入力することをお薦めします。詳細は、管理ディレクトリ・サイズの管理を参照してください。

  • storagedir

    レプリケーション・ノードに関連付けられた環境が含まれるディレクトリ・パス。–capacityパラメータが1より大きい場合、ストレージ・ノードがホストするレプリケーション・ノードごとに1つずつ、複数の–storagedirパラメータ値を指定する必要があります。各ディレクトリ・パスが別個のディスクに解決される必要があります。そのためには、/etc/fstabディレクトリに適切なエントリを作成して、ディスク上のファイル・システムをディレクトリ階層全体の適切な場所にアタッチします。各環境を別個のディスクに配置すると、シャードがI/Oリソースを奪い合うことがなくなります。また、ディスク障害の影響が単一の場所にとどまります。

    明示的なディレクトリの場所を指定しない場合、環境はKVROOTディレクトリに配置されます。

  • storagedirsize

    それぞれのストレージ・ディレクトリのサイズ。各レプリケーション・ノードについてこのパラメータを指定することをお薦めします。Oracle NoSQL Databaseでは、ストレージ・ディレクトリ・サイズを使用して、ディスク使用量が強制的に制限されます。そのために、–storagedirsizeパラメータ値を使用して、書込みアクティビティを一時停止するまでにディスク上に格納されるデータの量が計算されます。詳細は、ストレージ・ディレクトリ・サイズの管理を参照してください。

  • rnlogdir

    レプリケーション・ノードに関連付けられたログ・ファイルを格納するディレクトリ・パス。capacity値が1より大きい場合、ストレージ・ノードがホストしているレプリケーション・ノードごとに1つずつ、複数のrnlogdirパラメータを指定します。

    rnlogdirパスがレプリケーション・ノード上の別個のディスク・パーティションに解決されるようにすることをお薦めします。そのためには、/etc/fstabディレクトリに適切なエントリを作成して、ディスク上のファイル・システムをディレクトリ階層全体の適切な場所にアタッチします。rnlogdirをレプリケーション・ノード上の異なるパーティションに配置すると、JEログ・ファイルを格納するパーティションが満杯になった場合でも、メトリックやエラーをレポートおよび保持できます。また、rnlogdirを異なるパーティションに分離すると、kvrootのディスク障害によってレプリケーション・ノードのすべてのログ・ファイルが失われるという影響を回避できます。

    rnlogdirの場所を指定しない場合、ログはデフォルトでKVROOT/KVSTORE/logディレクトリに配置されます。

  • num_cpus

    レプリケーション・ノードで使用できるマシン上のプロセッサの総数です。これはオプションのパラメータで、レプリケーション・ノード間でプロセッサの使用を調整するために使用されます。値が0の場合、システムはストレージ・ノードに問い合せて、マシン上のプロセッサ数を特定します。num_cpusのデフォルト値は0で、このドキュメントの例ではその値を使用します。

  • memory_mb

    レプリケーション・ノードで使用可能なメモリーの合計MB数。システムでは、memory_mb値を使用して、レプリケーション・ノードのヒープ・サイズとキャッシュ・サイズが指定されます。ストレージ・ノードが複数のレプリケーション・ノードをホストし、これらのプロセス間でメモリーを割り当てる必要がある場合、この計算はより重要です。値が0の場合、システムはレプリケーション・ノード上のメモリー容量を特定しようとします。ただし、メモリー容量の値を使用できるのは、使用されているJVMがOracle Hotspot JVMである場合のみです。memory_mbのデフォルト値は0で、このドキュメントの例ではその値を使用します。

  • force

    システムに対する構成の検証によって、不正確なパラメータが検出された場合でも、コマンドがブート構成ファイルを生成することを指定します。

KVStoreインストールの構成

前の項(インストールの構成パラメータを参照)の説明に従って構成情報を決定したら、次のタスクを完了してストアを構成します。完了するタスクの1つは、各ストレージ・ノードでSNAを起動することです。

注意:

SNAを開始する前に、各ノードで環境変数MALLOC_ARENA_MAX1に設定します。こうすることで、メモリー使用量が指定されたヒープ・サイズに制限されます。

  1. makebootconfigユーティリティを使用して、初期bootconfig構成ファイルを作成します。これをOracle NoSQL Databaseの各ノードで行ってください。

    注意:

    makebootconfigコマンドを使用した構成ファイルの作成は、コマンドを実行するストレージ・ノードと統合されています。このような統合によって、ブート構成ファイルを生成する前に、すべてのパラメータとその値がSN環境に照らしてチェックおよび検証されます。ブート構成ファイルのパラメータや値の検証を省略するには、-forceフラグ(makebootconfig -force)を使用します。

    標準的なパラメータと値のセットを使用したmakebootconfigの使用例を次に示します。すべてのmakebootconfigパラメータのリストは、makebootconfigを参照してください。

    > mkdir -p KVROOT 
    > java -Xmx64m -Xms64m \
    -jar <KVHOME>/lib/kvstore.jar \
    makebootconfig -root KVROOT \
                   -port 5000 \
                   -host <hostname> \
                   -harange 5010,5020 \
                   -capacity 1 \
                   -admindir /export/admin \
                   -admindirsize 2000 MB \
                   -storagedir /export/data1 \
                   -storagedirsize 1_tb \
                   -rnlogdir /export/rnlogs

    注意:

    storagedirstoragedirsizeの両方を指定することをお薦めします。-storagedirパラメータを指定し、-storagedirsizeを指定しない場合、makebootconfigによって警告が表示されます。

    makebootconfigコマンドの詳細は、セキュリティ・ガイドMakebootconfigによるセキュリティの構成を参照してください。

  2. securityconfigツールを使用して、セキュリティ・ディレクトリを作成します(セキュリティ関連のファイルも作成します)。

    java -Xmx64m -Xms64m 
    -jar <KVHOME>/lib/kvstore.jar 
    securityconfig \
    config create -root KVROOT -kspwd (******)
    Created files
    KVROOT/security/security.xml
    KVROOT/security/store.keys
    KVROOT/security/store.trust
    KVROOT/security/client.trust
    KVROOT/security/client.security
    KVROOT/security/store.passwd (Generated in CE version)
    KVROOT/security/store.wallet/cwallet.sso (Generated in EE version)
    Created
                   

    セキュリティ・ガイドSecurityconfigによるセキュリティの構成を参照してください。

    注意:

    各SNAでmakebootconfigを実行した後に複数のSNAを構成したら、各Oracle NoSQL Databaseストレージ・ノード・エージェント(SNA)のKVROOTにセキュリティ・ディレクトリをコピーします。

    scp -r KVROOT/security NODE:KVROOT/
  3. Oracle NoSQL Databaseの各ノードでOracle NoSQL Databaseストレージ・ノード・エージェント(SNA)を起動します。SNAは、各ノードでOracle NoSQL Databaseの管理プロセスを管理します。また、レジストリ・ポートを所有し、管理します。レジストリ・ポートは、そのストレージ・ノード上のOracle NoSQL Databaseプロセスと通信するための主な手段です。各ストレージ・ノードでSNAを起動するには、startユーティリティを次のように使用します。

    nohup java -Xmx64m -Xms64m \
    -jar <KVHOME>/lib/kvstore.jar start -root KVROOT &

    注意:

    レプリケーション・ノードまたは管理サービスがクラッシュした場合、SNAによりそのプロセスが再起動されます。

  4. jps -mコマンドを使用して、Oracle NoSQL Databaseプロセスが実行されていることを確認します。

    > jps -m
    29400 ManagedService -root /tmp -class Admin -service
    BootstrapAdmin.13250 -config config.xml
    29394 StorageNodeAgentImpl -root /tmp -config config.xml
  5. sshを使用してノードにアクセスし、pingコマンドを発行して、Oracle NoSQL Databaseクライアント・ライブラリがOracle NoSQL Databaseストレージ・ノード・エージェントに接続できることを確認します。

    ssh node01
    java -Xmx64m -Xms64m -jar <KVHOME>/lib/kvstore.jar ping -host node01 -port 5000 
    -security KVROOT/security/client.security
    
    Login as: Anonymous (Enter any user name here)
    Anonymous's password: (Enter any password)
    
    SNA at hostname: node01, registry port: 5000 is not registered. 
    No further information is available 
    Can't find store topology: 
    Could not contact any RepNode at: [node01:5000]

    この戻り値は、SNプロセスのみがローカル・ホストで実行されていることを示します。Oracle NoSQL Databaseが完全に構成された後、pingを再度使用すると、詳細が提供されます。

    クライアント・ライブラリがストレージ・ノード・エージェントに接続できない場合、pingによって次のメッセージが表示されます。

    Unable to connect to the storage node agent at host node01,
    port 5000, which may not be running; nested exception is:
    
    java.rmi.ConnectException: Connection refused to host: node01;
    nested exception is:
    java.net.ConnectException: Connection refused
    Can't find store topology:
    Could not contact any RepNode at: [node01:5000]

ストレージ・ノードが起動しない場合は、KVROOTディレクトリのadminbootログとsnabootログを確認して、何が発生したのかを調査し、問題を特定します。リモート・アクセスでのセキュリティの構成のステップを完了していない場合、セキュアなストアのpingコマンドは、ローカルでのみ使用可能です。

ストレージ・ノードがすべて正常に起動したら、KVStoreを構成できます。KVSTOREを構成する方法の詳細は、KVStoreの構成を参照してください。

注意:

最善の結果を得るには、ノードのブート時にSNAが自動的に起動されるようノードを構成します。この方法の詳細は、オペレーティング・システムの設計方法によって異なるため、このドキュメントの範囲外です。ブート時にアプリケーションを自動的に起動する方法の詳細は、オペレーティング・システムのドキュメントを参照してください。