![[8.5.5.4 以降]](../ng_v8554.gif)
Liberty 集合の自動スケーリングのセットアップ
自動スケーリングは、Liberty サーバーの自律的なスケーリングの機能を提供します。自動スケーリング機能は、 スケーリング・コントローラーとスケーリング・メンバーという 2 つの Liberty フィーチャーによって使用可能になります。自動スケーリングは、 ワークロードを処理するために使用される Java 仮想マシン (JVM) の数を動的に調整します。このフィーチャーは、 操作の俊敏性を高め、管理オーバーヘッドを軽減することで、ミドルウェア環境の回復力を強化します。自動スケーリングの条件は、 スケーリング・ポリシーによって定義されます。それらの条件には、サーバー・インスタンスの最小数と最大数、 各サーバー・リソースのしきい値などがあります。
始める前に
このフィーチャーには動的ルーティングの使用は必須ではありませんが、 自動スケーリングは両方のフィーチャーが一緒に使用されるほうが良く機能します。 これら 2 つのフィーチャーを一緒に使用することが推奨されます。動的ルーティングについて詳しくは、 『Liberty 集合に対する動的ルーティングのセットアップ』を参照してください。
Liberty 集合コントローラーは、Tivoli® Remote Execution and Access (RXA) ツールキットを使用して、集合メンバーに対して選択された操作を実行できます。『Liberty 集合操作用 RXA のセットアップ』に説明されているタスクをレビューして、SSH のインストールと使用について理解してください。
自動スケーリングをセットアップする前に、 JAVA_HOME パスの設定も行う必要があります。『Liberty 集合メンバー用の JAVA_HOME 変数の設定』でタスクを確認してください。
このタスクについて
自動スケーリング・クラスターは、環境におけるワークロードに応じて拡張または縮小できるサーバー・クラスターです。 Liberty スケーリング・コントローラーは、スケーリング・メンバーから収集されるパフォーマンス情報、および構成可能なスケーリング・ポリシーに基づいて、 スケーリング・メンバーの開始と停止を制御します。 Liberty スケーリング・コントローラーは、サーバー・クラスターの 1 つのスケーリング・メンバーであるために、 Liberty 集合のメンバーでもある必要があります。サーバー・クラスターは、Liberty 集合内で固有の名前を持っています。同じ集合内の同じクラスター名を指定するすべての Liberty プロファイルは、同じサーバー・クラスターのメンバーです。自動スケーリング機能は、リソース消費量が、上限しきい値を上回るか、下限しきい値を下回ると、 ポリシーを使用して制御されます。
- scalingController-1.0
スケーリング・コントローラー・フィーチャーは、 どのような場合に自動スケーリング・クラスターを拡張または縮小するのかを決定します。 集合コントローラーが必要です。それらによって、集合コントローラーがスケーリング・コントローラーを管理する機能を活用する監督機能が提供されるためです。決定を行えるのは、 稼働しているスケーリング・コントローラーのうちの 1 つのみです。集合コントローラーに関する詳細と、 高可用性を実現するためのコントローラーの構成方法については、『Liberty 集合の構成』を参照してください。スケーリング・コントローラーは、 リソース使用量の増大に対応して自動スケーリング・クラスター・メンバーを開始することができ、 クラスター全体でのリソース使用量の減少に対応して自動スケーリング・クラスター・メンバーを停止することもあります。レプリカ・セットが使用されている場合、 すべての集合コントローラー・メンバーがスケーリング・コントローラーでなければなりません。レプリカ・セットを使用している場合、 あるコントローラーが停止すると、稼働している別のスケーリング・コントローラーが引き継ぎます。レプリカ・セットについて詳しくは、『Liberty 集合のレプリカ・セットの構成』を参照してください。
注: スケーリング・コントローラーは、 スケーリング・メンバーに関して分かっている最新の状態を保持します。スケーリング・コントローラーを停止し、 スケーリング・メンバーの状態を変更すると、スケーリング・コントローラーの再始動時に、無効なアクションが起こることがありますが、 それはスケーリング・メンバーの最新の状態をスケーリング・コントローラーが収集するまでのことです。スケーリング・コントローラーは以下の使用シナリオをサポートします。- JVM 弾力性
スケーリング・コントローラーは、リソース使用量およびオプションのスケーリング・ポリシーに基づいて、 既存の Liberty サーバーを開始および停止します。新規サーバーのプロビジョニングはありません。
- JVM 弾力性
- scalingMember-1.0
スケーリング・メンバー・フィーチャーは、サーバーおよびそのホストにおけるワークロードをモニターし、 必要な場合はこの情報をスケーリング・コントローラーに送り返します。スケーリング・メンバー・フィーチャーは、 集合内の 1 つの集合メンバーとして使用可能にされる必要があります。
注: すべてのポリシー情報はクラスター・メンバーで適用されるため、 すべてのスケーリング・メンバー・サーバーが 1 つのクラスターに属している必要もあります。1 つのホスト上に複数のスケーリング・メンバーがある場合、 それらのスケーリング・メンバーは、1 つのスケーリング・メンバーのみがスケーリング・コントローラーと通信するように編成されます。ホスト・リーダーは、ホスト上のすべてのスケーリング・メンバーのうちから選出されます。ホスト・リーダーが停止すると、 別のスケーリング・メンバーが引き継いでホスト・リーダーになります。
各スケーリング・メンバーは、 それぞれ 1 つの hostSingleton エレメントとポートを server.xml 内に定義する必要があります。同じホストおよびクラスターにある すべてのスケーリング・メンバーは、同じポートを使用しなければなりません。このポートは、 ホスト・リーダーを識別するために選出サービスによって使用されます。ホスト・リーダーは、スケーリング・コントローラーとやりとりする唯一のスケーリング・メンバーです。 ホスト・リーダーは、 メンバーからのメトリック・データをコントローラーに知らせ、 コントローラーが行うスケーリング決定をホストにあるメンバーに知らせます。以下に例を示します。
<hostSingleton name="ScalingMemberSingletonService" port="5164" />
hostSingleton エレメントについて詳しくは、『Collective Member』を参照してください。
スケーリング・メンバーは、 サーバー・プロセスにおける以下のリソースの使用をモニターします。- CPU
- ヒープ
- メモリー
スケーリング・メンバーは、ホスト・レベルで以下のリソースの使用をモニターします。- CPU
- メモリー
手順
タスクの結果
これで、自動スケーリング・フィーチャーが使用可能になり、 ワークロードを処理するために使用される Java 仮想マシン (JVM) の数を動的に調整できるようになりました。