本記事では、お客様がクラスタ環境のダウンタイムなしに、クラスタ内のLiferayインスタンスにパッチを適用する手順を説明します。 この方法はローリングチェンジと呼ばれますが、この方法には制限があります。Fix PackまたはHotfixによってデータベーススキーマが変更された場合、およびFix PackまたはHotfixによってキャッシュオブジェクトのAPIが大幅に変更された場合、この方法を使用しないでください。
最後に、パッチを適用したノードを起動する際には、1つのノードが完全に起動したことを確認してから次のノードを起動することが重要です。 これは、各ノードをシリアルに起動し、追加のクラスターリンクメッセージが生成されていることを確認するのがベストプラクティスであるためです。 Liferay Portalは設計上、各ノードの開始までにある程度の遅延が必要です。 例えば、Quartzスケジューラは、スケジュールされたタスクの実行に責任を持つノードを決定するために、マスターを選出する必要があります。 クラスタ内のノードを起動する最も安全な方法は、前のノードが完全に起動するのを待つことです。
解像度
重要なお知らせです:
以下の説明では、クラスタの管理にロードバランサが使用されていることを前提としています。 Liferayのお客様によってクラスタのノード数が異なるので、それに合わせて手順を調整してください。 なお、ロードバランサーはパッチを適用したノードとそれ以外のノードを区別しないため、すべてのノードにパッチが適用されるまで、ユーザーが不具合を経験する可能性が高くなります。
制限事項
以下の場合は、ローリングチェンジプロセスを使用しないでください:
- JDKのアップグレード
- OSのアップグレード
ローリングチェンジプロセスは、以下の場合にのみ使用します:
- データベースに変更を加えないFix PackやHotfixを適用すること。
- 重要なコアの変更を伴わないフィックスパックまたはホットフィックスを適用すること。 2つのパッチレベルの差分( Patching Tool v18 and v19で確認)は、
.jsp*または静的リソース(画像、htmlなど)の変更のみを含み、java / クラスファイルの変更およびライブラリのアップグレード(.jar)は含まないという意味であります。
説明
- ロードバランサーからいくつかのノードを削除し、すべての新規接続を強制的に防止する。 上記のように、削除するノードの数は、ユーザーのニーズによって異なります。
- すべての接続が終了するまで待ちます。
- 終了したノードの Liferay インスタンスを停止します。
- これらのノードの Liferay インスタンスにパッチを当てます。
- これらのノードで Liferay インスタンスを 1 つずつ起動します。 上記のように、Liferay PortalのQuartz Schedulerでは、新しいマスターを選出するのに時間がかかることが主な理由の1つです。
- 各Liferayインスタンスが起動したら、ロードバランサーにノードを追加し直します。
- 残りのすべてのノードについて、上記の手順を繰り返します。
- すべてのノードがロードバランサーに追加されたら、キャッシュをクリアします。 キャッシュをクリアするには、 Admin > Control Panel > Server Administrationに移動してください。 リソース]タブで、キャッシュをクリアするために必要な各アクションの[ 実行]をクリックします。