インストールの構成パラメータ
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より大きいストレージ・ノードについては、次の構成設定を検討してください。
-
マシンで使用可能なディスクの数と等しい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
)上のディスク数を表します。ディスクはdisk1
、disk2
、disk3
です。 -
レプリケーションおよび管理ノードで必要な追加ポートをサポートする場合は、
–harange
パラメータを増やします。 -
レプリケーション・ノードで必要な追加ポートを考慮する場合は、
–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_MAX
を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
ノート:
storagedir
とstoragedirsize
の両方を指定することをお薦めします。-storagedir
パラメータを指定し、-storagedirsize
を指定しない場合、makebootconfig
によって警告が表示されます。makebootconfig
コマンドの詳細は、セキュリティ・ガイドのMakebootconfigによるセキュリティの構成を参照してください。 -
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/
-
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によりそのプロセスが再起動されます。
-
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
-
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が自動的に起動されるようノードを構成します。この方法の詳細は、オペレーティング・システムの設計方法によって異なるため、このドキュメントの範囲外です。ブート時にアプリケーションを自動的に起動する方法の詳細は、オペレーティング・システムのドキュメントを参照してください。