ストレージ・ノードのサービス・ポート範囲の変更
この項では、初期構成およびデプロイメントの後にストレージ・ノードのサービス・ポート範囲を変更する方法について説明します。
インストール環境の初期構成を行う際には、ストレージ・ノードのレプリケーション・ノードおよび管理サービスが使用するポートの範囲を指定します。これらのポートはサービス・ポート範囲と総称されます。インストール時でのこれらの構成はオプションでした。構成しなかった場合、構成スクリプトによりポートの範囲が自動的に選択されました。
サービス・ポート範囲を変更するプロセスは、ストレージ・ノードがすでにデプロイされているかどうかによって異なります。ストレージ・ノードがデプロイされているかどうかは、コマンドライン・インタフェース(CLI)でshow topology
コマンドを実行することで確認できます。(詳細は、show topologyを参照)。show topology
コマンドを使用すると、ストレージ・ノードが、ホストおよびポート(デプロイされている場合)とともにリストされます。
ストレージ・ノードがデプロイされていない場合
ストレージ・ノードが構成されているものの、まだデプロイされていない場合は、このプロセスを使用してサービス・ポート範囲を変更します。
ストレージ・ノード・ホストで次のステップを実行します。
-
既存のストレージ・ノード・プロセスを強制終了します。次を使用してこのプロセスのIDを検索できます。
ps -af | grep -e "kvstore.jar.*start.*<KVROOT>"
次を使用してプロセスを強制終了します。
kill <storage node id>
-
<KVROOT>ディレクトリからすべてのファイルを削除します。
rm -rf <KVROOT>/*
-
更新したサービス・ポート範囲を使用して、ストレージ・ノードのブートストラップ構成ファイルを再作成します。必ず、
-servicerange
パラメータを指定してください。次に例を示します。java -Xmx64m -Xms64m \ -jar <KVHOME>/lib/kvstore.jar makebootconfig -root <KVROOT> \ -port <port> -host <host> -harange <harange> \ -servicerange <startPort, endPort>
このユーティリティの使用方法の詳細は、makebootconfigを参照してください。
-
ストレージ・ノードを再起動します。
ノート:
SNAを開始する前に、各ノードで環境変数
MALLOC_ARENA_MAX
を1
に設定します。こうすることで、メモリー使用量が指定されたヒープ・サイズに制限されます。java -Xmx64m -Xms64m -jar <KVHOME>/lib/kvstore.jar restart
管理CLIを使用したストレージ・ノードのデプロイに進むことができます。その際、新たに指定したサービス・ポート範囲が使用されます。
ストレージ・ノードがデプロイされている場合
ストレージ・ノードがデプロイされている場合は、このプロセスを使用してサービス・ポート範囲を変更します。
-
管理CLIで
plan change-parameters
コマンドを使用して、サービス・ポート範囲を変更します。その際には、servicePortRange
を指定します。次に例を示します。plan change-parameters -service <id> \ -params servicePortRange=<startPort,endPort>
servicePortRange
については、「ストレージ・ノード・パラメータ」で説明されています。 -
ストレージ・ノード・プロセスとそのサービスを再起動します。ストレージ・ノードのレプリケーション・ノードおよび管理サービスは、CLIを使用して正常に停止できます。
show topology
コマンド(show topology)を使用して、ストレージ・ノードに関連付けられているすべてのサービスをリストします。plan stop-service
コマンドを使用して、これらの各サービスを停止します。このコマンドの詳細は、plan stop-serviceを参照してください。サービスを停止する場合は、サービスIDを使用する必要があります。このIDは、show topology
コマンドの出力で確認できます。これらのIDはストレージ・ノードを再起動する際に必要になるため、記録しておいてください。ストレージ・ノードのすべてのサービスが停止されるまで繰り返します。
-
既存のストレージ・ノード・プロセスを強制終了します。このプロセスのIDは、ストレージ・ノード・ホストに移動して次を発行することで確認できます。
ps -af | grep -e "kvstore.jar.*start.*<KVROOT>"
次を使用してプロセスを強制終了します。
kill <storage node id>
ノート:
ストア内のすべてのレプリケーション・ノードを同時に強制終了しないようにしてください。そうすると、予期しないエラーが発生します。
-
ストレージ・ノード・ホストに移動して次を発行することで、ストレージ・ノードを再起動します。
ノート:
SNAを開始する前に、各ノードで環境変数
MALLOC_ARENA_MAX
を1
に設定します。こうすることで、メモリー使用量が指定されたヒープ・サイズに制限されます。java -Xmx64m -Xms64m -jar <KVHOME>/lib/kvstore.jar restart
-
ストレージ・ノードの各サービスに対して
plan start-service
を使用して、それらのサービスを再起動します。詳細は、plan start-serviceを参照してください。 -
ストレージ・ノードが再起動され、そのすべてのレプリケーション・ノードおよび管理サービスが実行中になると、それらのサービスは更新されたサービス・ポート範囲を使用するようになります。確認するには、まず、次のコマンドを使用して、ストレージ・ノード・サービスのプロセスIDを特定します。
ps -af | grep -e "ManageService.*<KVROOT>"
その後、次のコマンドを使用して、サービスがリスニングするポートを確認します。
netstat -tlpn | grep <id>
リスニング・ポートの1つがサービス・ポートで、これが新しい範囲内に含まれている必要があります。