ストレージ・ノードのサービス・ポート範囲の変更

この項では、初期構成およびデプロイメントの後にストレージ・ノードのサービス・ポート範囲を変更する方法について説明します。

インストール環境の初期構成を行う際には、ストレージ・ノードのレプリケーション・ノードおよび管理サービスが使用するポートの範囲を指定します。これらのポートはサービス・ポート範囲と総称されます。インストール時でのこれらの構成はオプションでした。構成しなかった場合、構成スクリプトによりポートの範囲が自動的に選択されました。

サービス・ポート範囲を変更するプロセスは、ストレージ・ノードがすでにデプロイされているかどうかによって異なります。ストレージ・ノードがデプロイされているかどうかは、コマンドライン・インタフェース(CLI)でshow topologyコマンドを実行することで確認できます。(詳細は、show topologyを参照)。show topologyコマンドを使用すると、ストレージ・ノードが、ホストおよびポート(デプロイされている場合)とともにリストされます。

ストレージ・ノードがデプロイされていない場合

ストレージ・ノードが構成されているものの、まだデプロイされていない場合は、このプロセスを使用してサービス・ポート範囲を変更します。

ストレージ・ノード・ホストで次のステップを実行します。

  1. 既存のストレージ・ノード・プロセスを強制終了します。次を使用してこのプロセスのIDを検索できます。

    ps -af | grep -e "kvstore.jar.*start.*<KVROOT>" 

    次を使用してプロセスを強制終了します。

    kill <storage node id>
  2. <KVROOT>ディレクトリからすべてのファイルを削除します。

    rm -rf <KVROOT>/*
  3. 更新したサービス・ポート範囲を使用して、ストレージ・ノードのブートストラップ構成ファイルを再作成します。必ず、-servicerangeパラメータを指定してください。次に例を示します。

    java -Xmx64m -Xms64m \
    -jar <KVHOME>/lib/kvstore.jar makebootconfig -root <KVROOT> \
    -port <port> -host <host> -harange <harange> \
    -servicerange <startPort, endPort>

    このユーティリティの使用方法の詳細は、makebootconfigを参照してください。

  4. ストレージ・ノードを再起動します。

    ノート:

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

    java -Xmx64m -Xms64m -jar <KVHOME>/lib/kvstore.jar restart

管理CLIを使用したストレージ・ノードのデプロイに進むことができます。その際、新たに指定したサービス・ポート範囲が使用されます。

ストレージ・ノードがデプロイされている場合

ストレージ・ノードがデプロイされている場合は、このプロセスを使用してサービス・ポート範囲を変更します。

  1. 管理CLIでplan change-parametersコマンドを使用して、サービス・ポート範囲を変更します。その際には、servicePortRangeを指定します。次に例を示します。

    plan change-parameters -service <id> \
    -params servicePortRange=<startPort,endPort> 

    servicePortRangeについては、「ストレージ・ノード・パラメータ」で説明されています。

  2. ストレージ・ノード・プロセスとそのサービスを再起動します。ストレージ・ノードのレプリケーション・ノードおよび管理サービスは、CLIを使用して正常に停止できます。show topologyコマンド(show topology)を使用して、ストレージ・ノードに関連付けられているすべてのサービスをリストします。

    plan stop-serviceコマンドを使用して、これらの各サービスを停止します。このコマンドの詳細は、plan stop-serviceを参照してください。サービスを停止する場合は、サービスIDを使用する必要があります。このIDは、show topologyコマンドの出力で確認できます。これらのIDはストレージ・ノードを再起動する際に必要になるため、記録しておいてください。

    ストレージ・ノードのすべてのサービスが停止されるまで繰り返します。

  3. 既存のストレージ・ノード・プロセスを強制終了します。このプロセスのIDは、ストレージ・ノード・ホストに移動して次を発行することで確認できます。

    ps -af | grep -e "kvstore.jar.*start.*<KVROOT>" 

    次を使用してプロセスを強制終了します。

    kill <storage node id>

    ノート:

    ストア内のすべてのレプリケーション・ノードを同時に強制終了しないようにしてください。そうすると、予期しないエラーが発生します。

  4. ストレージ・ノード・ホストに移動して次を発行することで、ストレージ・ノードを再起動します。

    ノート:

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

    java -Xmx64m -Xms64m -jar <KVHOME>/lib/kvstore.jar restart
  5. ストレージ・ノードの各サービスに対してplan start-serviceを使用して、それらのサービスを再起動します。詳細は、plan start-serviceを参照してください。

  6. ストレージ・ノードが再起動され、そのすべてのレプリケーション・ノードおよび管理サービスが実行中になると、それらのサービスは更新されたサービス・ポート範囲を使用するようになります。確認するには、まず、次のコマンドを使用して、ストレージ・ノード・サービスのプロセスIDを特定します。

    ps -af | grep -e "ManageService.*<KVROOT>"

    その後、次のコマンドを使用して、サービスがリスニングするポートを確認します。

    netstat -tlpn | grep <id>

    リスニング・ポートの1つがサービス・ポートで、これが新しい範囲内に含まれている必要があります。