Java 仮想マシン (JVM) 弾力性をサポートするように集合を構成できます。スケーリング・コントローラーは、JVM 弾力性を利用して、
リソース使用量およびスケーリング・ポリシーに基づいて Liberty サーバーの開始または停止を行うことができます。スケーリングの対象として適格なのは、既に集合内にあるサーバーのみです。新規サーバーのプロビジョニングはありません。
始める前に
収集されるリソース使用情報のタイプは、JDK によって異なります。Windows および Linux オペレーティング・システム向けの IBM JDK 1.7 は、
推奨される JDK であり、自動スケーリングに必要なすべての使用情報を提供します。他の JDK は、
個々の JVM リソース使用量に基づく自動スケーリングに必要なすべての使用情報を提供しない可能性があります。
トラブルの回避: 管理コンソールは、自動スケーリング可能クラスターのクラスター・メンバ
ーである Liberty サーバーの始動と停止を可能にしますが、サーバーが保
守モードの場合のみです。Liberty サーバーが自動スケーリング可能クラスターのク
ラスター・メンバーである場合に、コマンド・ラインから Liberty サ
ーバーを始動または停止すると、予測不能な結果になる場合があります。
手順
- 集合を作成します。
集合コントローラーおよびメンバー・サーバーの作成について詳しくは、『Liberty 集合の構成』を参照してください。
注: 手順を続行する前に、この最初のステップを完了することをお勧めします。最初のステップは、集合を作成し、メンバーを追加し、コントローラーおよびメンバーを開始するようユーザーに指示しています。
- 1 つ以上の集合コントローラーの server.xml ファイルに scalingController-1.0 フィーチャーを
追加します。server.xml ファイルを保存すると、
別の指定がない場合はデフォルト・ポリシーが強制されます。
<featureManager>
<feature>jsp-2.2</feature>
<feature>collectiveController-1.0</feature>
<feature>scalingController-1.0</feature>
</featureManager>
フィーチャーを追加した後、集合コントローラーが稼働していれば、集合コントローラーの messages.log に以下のメッセージが任意の順序で表示されます。
CWWKV0300I: The StackManager service started.
CWWKV0302I: The existing stacks are []
CWWKV0100I: The ScalingController feature is activated.
CWWKX1002I: Singleton service ScalingControllerSingletonService for scope
CWWKV0102I: This server is elected to be the primary scaling controller.
CWWKF0012I: The server installed the following features: [scalingController-1.0].
注: Liberty 構成は動的であるため、スケーリング・コントローラーを追加すると、
コントローラーのデフォルト・スケーリング・ポリシーが有効になり、予期しない結果になることがあります。例えば、
デフォルト・ポリシーでは最小サーバー数が 2 であるため、スケーリング・コントローラー server.xml ファイルを保存すると、
コントローラーは 2 つのサーバーを始動しようとします。この動作が望ましくない場合は、同時にコントローラーのポリシーも定義するようにしてください。
注: スケーリング・コントローラーがメンバーを登録し、CWWKV0121I メッセージが表示されるには、少し時間がかかることがあります。
- オプション: ご使用の環境での必要に応じて、スケーリング・ポリシーのデフォルト値を変更します。詳しくは、ワークロードを管理するためのスケーリング・ポリシーの定義を参照してください。
- スケーリング・コントローラーで制御するすべての集合メンバーに scalingMember-1.0 フィーチャーを追加します。 メンバーの server.xml ファイル内に、
hostSingleton エレメントをポートと共に定義します。各スケーリング・メンバーは、
それぞれ 1 つの hostSingleton エレメントとポートを server.xml 内に定義する必要があります。同じホスト上のすべてのスケーリング・メンバーは、
同じポートを使用しなければなりません。任意のポート番号を指定できますが、
ポート番号はホスト・コンピューター上で固有である必要があります。以下の例では、
ポート番号 20020 が使用されています。
<featureManager>
<feature>jsp-2.2</feature>
<feature>scalingMember-1.0</feature>
</featureManager>
<hostSingleton name="ScalingMemberSingletonService" port="20020" />
フィーチャーおよび hostSingleton エレメントを追加したときにサーバーが開始されていなかった場合、
追加されたフィーチャーをスケーリング・コントローラーが認識できるように、一度手動でサーバーを開始する必要があります。集合メンバーの messages.log に以下のメッセージが任意の順序で表示されます。
CWWKX1000I: The SingletonMessenger MBean is available.
CWWKX7400I: The ClusterMember MBean is available.
CWWKX1002I: Singleton service ScalingMemberSingletonService for scope host is created.
CWWKV0200I: The ScalingMember feature is activated.
CWWKX1004I: Messenger connection is connected to host=controller_host_name, port=controller_port_number.
ホストあたり 1 つのみのスケーリング・メンバーがスケーリング・コントローラーと通信できます。
ScalingMemberSingletonService に最初に接続するスケーリング・メンバーがホスト・リーダーに選出されます。ホスト・リーダーが停止すると、scalingMemberSingletonService によって設定される選出プロセスによって、別のスケーリング・メンバーがホスト・リーダーとして引き継ぎます。
同じホストおよびクラスターにあるすべてのスケーリング・メンバーは、
同じ ScalingMemberSingletonService ポートを使用しなければなりません。
注: スケーリング・メンバーがホスト・リーダーに選出されると、
集合メンバーの
messages.log 内に以下のメッセージが表示されます。
CWWKV0203I: Server host=host_name; userdir=path_to_usr_directory; server=member_name; port=member_port_number; service=ScalingMemberSingletonService; scope=host is elected as the host leader.
注: hostSingleton エレメントが scalingMember
server.xml に追加されないか、
または、同じホスト上の各 scalingMember に異なるポートが使用されると、
複数のホスト・リーダーが選出される可能性があります。これにより、正しくないスケーリング決定が行われる可能性があります。コントローラーの
messages.log に以下のメッセージが表示されます。
CWWKV0123E: Duplicate host singleton leaders have been detected on host host_name. This condition may degrade scaling controller decisions. The leader identity of server server_name1 is leader_id1. The leader identity of server server_name2 is leader_id2.
hostSingleton エレメントについて詳しくは、集合メンバーを参照してください。
ご覧ください: 「Configuring a Liberty auto-scalable cluster for JVM elasticity」のビデオには、この手順が示されています。[トランスクリプト]