Oracle NoSQL Databaseを構成する前に、ストア内の各ストレージ・ノードについて次のパラメータを決定する必要があります。
root
KVROOTディレクトリの場所。Oracle NoSQL Databaseストアに格納されるデータを保持するのに十分なディスク領域が各ノードにある必要があります。storagedirパラメータを使用してKVROOTディレクトリ以外の場所にデータを格納する場合、KVROOTディスク領域要件を少なくできます。KVROOTのローカル・ディレクトリ・パスが各ノードで同じである(しかし、共有またはNFSマウントされたディレクトリではない)と、最もよいです。この本の例では、KVROOTディレクトリがすでに存在するものとします。
port
Oracle NoSQL DatabaseがアクセスされるTCP/IPポート。このポートは各ノードで空いている(未使用である)必要があります。レジストリ・ポートと呼ばれる場合もあります。この本の例では、ポート5000を使用します。
admin
Oracle NoSQL DatabaseのWebベースの管理コンソールがアクセスされるポート。このポートは、管理プロセスが実行されるノードでのみ空いている必要があります。この本の例では、ポート5001を使用します。
管理プロセスは複数のノードにレプリケートできるため、ポートはプロセスが実行されているすべてのマシン上で使用可能である必要があります。このようにして、あるマシンで管理プロセスが失敗した場合でも、別のマシンでhttp Webサービスを引き続き使用できます。実際には管理プロセスを実行するノードごとに異なるポートを使用できますが、簡略化のために統一することをお薦めします。
harange
レプリケーション・ノードがノード間の通信に使用する空きポートの範囲です。これらのポートは連続している必要があり、ストア内の各ノードで実行されているレプリケーション・ノードと同じ数が少なくとも必要です。ストレージ・ノード・エージェントはこのポートの割当を管理し、管理サービス用に1つを予約して、残りをレプリケーション・ノードごとに1つずつ割り当てるために使用します。ポート範囲は"startPort,endPort"として指定されます。このマニュアルの例では"5010,5020"が使用されています。
servicerange
ストレージ・ノードおよびその管理対象サービスで実行されている管理サービス間の通信に使用されるポートの範囲。このパラメータはオプションであり、ストレージ・ノード上のサービスがファイアウォールまたはその他のセキュリティ上の理由で特定のポートを使用する必要がある場合に役立ちます。デフォルトでは、サービスは匿名ポートを使用します。値の文字列の形式は、"startPort,endPort"です。値はストレージ・ノードの容量によって異なります。servicePortRangeの詳細は、「ストレージ・ノード・パラメータ」を参照してください。
capacity
ストレージ・ノードがサポートできるレプリケーション・ノードの総数です。capacityはオプション・パラメータです。capacityは、複数のレプリケーション・ノードをサポートするのに十分なディスク、CPU、メモリーおよびネットワーク帯域幅がストレージ・ノードにある場合、1より大きい値に設定できます。
容量が1より大きいノードの場合、構成に関する次の考慮事項を覚えておいてください。
次に例を示します。
> java -jar KVHOME/lib/kvstore.jar makebootconfig \ -root /opt/ondb/var/kvroot \ -port 5000 \ -admin 5001 \ -host node10 -harange 5010,5025 \ -capacity 3 \ -storagedir /disk1/ondb/data \ -storagedir /disk2/ondb/data \ -storagedir /disk3/ondb/data \
capacity=3は、同じストレージ・ノード(node10)上にあるディスク(disk1、disk2、disk3)の数と等しくなります。
値のデフォルトは、storagedirパラメータが指定されている場合はその数です。それ以外の場合、値のデフォルトは"1"です。このマニュアルの例では容量として"1"が使用されています。
storagedir
レプリケーション・ノードに関連付けられた環境を含むディレクトリへのパスです。capacity値が1より大きい場合、ストレージ・ノードでホストされるレプリケーション・ノードごとに1つずつ、複数のstoragedirパラメータを指定する必要があります。各ディレクトリ・パスが個別のディスクに解決されるのが最も効率的です。これは通常、ディスク上のファイル・システムをディレクトリ階層全体の適切な場所に配置する/etc/fstab内の適切なエントリを経由して行われます。各環境を異なるディスクに配置することで、レプリケーション・ノードがI/Oリソースを奪い合うことがなくなります。また、ディスク障害の影響が単一の環境にとどまります。
明示的なディレクトリ引数がない場合、環境はKVROOTディレクトリに配置されます。
num_cpus
レプリケーション・ノードで使用できるマシン上のプロセッサの総数です。レプリケーション・ノード間でプロセッサの使用を調整するために使用されます。値が0の場合、システムはストレージ・ノードに問い合せて、マシン上のプロセッサ数の特定を試みます。この値のデフォルトは"0"です。このマニュアルの例では、numCPUsには"0"が使用されています。
memory_mb
マシンで使用できるメモリー容量の合計数です。レプリケーション・ノードのヒープ・サイズおよびキャッシュ・サイズを導くために使用されます。ストレージ・ノードが複数のレプリケーション・ノードをホストし、これらのプロセス間でメモリーを割り当てる必要がある場合、この計算はより重要になります。値が0の場合、ストアはマシン上のメモリーの量を特定しようとしますが、その値を使用できるのは、使用されるJVMがOracle Hotspot JVMの場合のみです。デフォルト値は"0"です。このマニュアルの例では"0"が使用されています。
この情報を決定したら、インストールを構成します。
makebootconfig
ユーティリティを使用して、初期"boot config"構成ファイルを作成します。これをOracle NoSQL Databaseの各ノードで行います。初期Oracle NoSQL Database管理プロセスをホストするノードでのみ-adminオプション(管理コンソール・ポート)を指定する必要があります。(このインストール手順の後半で、追加の管理プロセスをデプロイします。)
"boot config"ファイルを作成するには、次のコマンドを発行します。
> mkdir -p KVROOT (if it does not already exist) > java -Xmx256m -Xms256m \ -jar KVHOME/lib/kvstore.jar makebootconfig -root KVROOT \ -port 5000 \ -admin 5001 \ -host <hostname> \ -harange 5010,5020 \ -capacity 1 \ -num_cpus 0 \ -memory_mb 0
Oracle NoSQL Databaseの各ノードでOracle NoSQL Databaseストレージ・ノード・エージェント(SNA)を起動します。SNAは、各ノードでOracle NoSQL Databaseプロセスを管理します。レジストリ・ポートの所有および管理も行います。レジストリ・ポートは、そのノード上のOracle NoSQL Databaseプロセスと通信するための主な手段です。これには、start
ユーティリティを使用できます。
nohup java -Xmx256m -Xms256m \ -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
ping
コマンドを使用して、Oracle NoSQL Databaseクライアント・ライブラリでOracle NoSQL Databaseストレージ・ノード・エージェント(SNA)にアクセスできることを確認します。
> java -Xmx256m -Xms256m \ -jar KVHOME/lib/kvstore.jar ping -port 5000 -host node01
SNAが実行されている場合、次の出力が表示されます。
SNA at hostname: node01, registry port: 5000 is not registered. No further information is available
このメッセージはエラーではなく、SNプロセスのみがローカル・ホストで実行されていることを示しています。Oracle NoSQL Databaseが完全に構成されると、pingオプションでこれ以外の情報も表示されます。
SNAにアクセスできない場合、かわりに次のように表示されます。
Could not connect to registry at node01:5000 Connection refused to host: node01; nested exception is: java.net.ConnectException: Connection refused
ストレージ・ノードが起動しない場合、問題を特定するには、KVROOTディレクトリのadminbootログおよびsnabootログを確認します。
-hostオプションを使用して、リモート・ホストのSNAを確認することもできます。
> java -Xmx256m -Xms256m \ -jar KVHOME/lib/kvstore.jar ping -port 5000 -host node02 SNA at hostname: node02, registry port: 5000 is not registered. No further information is available
ストレージ・ノードがすべて正常に起動されたら、KVStoreを構成できます。これは、次の章で説明します。
最善の結果を得るには、ノードの起動時にSNAが自動的に起動されるようノードを構成します。これを行う方法は、オペレーティング・システムの設計方法によって異なるため、このマニュアルの範囲ではありません。起動時のアプリケーションの自動起動については、オペレーティング・システムのドキュメントを参照してください。