クラスター化されたインストールの維持
Liferay DXP インストールを クラスタ で機能するように設定すると、パフォーマンスとスケーラビリティが向上しますが、適切なサポートと保守を行うために追加の考慮も必要になります。 これには、新規および更新されたプラグインとモジュールの展開、 パッチと修正パックのインストール、構成の変更などが含まれます。 概説されているLiferay DXPクラスターのメンテナンス方法は、サーバーの稼働時間を最大化し、サーバーメンテナンスのリスクを最小限に抑えます。 Liferay DXPは、標準のクラスターメンテナンス技法の使用をサポートしています。
- ローリング再起動: ノードはシャットダウンされ、一度に 1 つずつ更新されます。
- ブルーグリーン デプロイメント: ブルーグリーンでは、現在の環境 (ブルー 環境) を複製し、複製を更新 (グリーン 環境)、更新された環境 (グリーン) にユーザーを切り替えることが含まれます。
これらの手法を以下で比較します。
クラスターアップデート手法
| 更新 | ローリング再起動 | ブルーグリーン |
|---|---|---|
| アクティベーションキー 1 | ✔ | ✔ |
| アプリケーションサーバーの更新 | ✔ | ✔ |
| クラスターコードの変更 2 | ✔ | |
| フィックスパックのインストールと削除(復元可能なフィックスパック) | ✔ | ✔ |
| フィックスパックのインストール(元に戻せないフィックスパック) | ✔ | |
| JVM設定の変更 | ✔ | ✔ |
| Javaバージョン(メジャー) | ✔ | |
| Javaバージョン(マイナー) | ✔ | ✔ |
| プラグイン/モジュールのインストール | ✔ | ✔ |
| プラグイン/モジュールの更新(下位互換性のあるデータ/スキーマの変更) | ✔ | ✔ |
| プラグイン/モジュールの更新(下位互換性のないデータ/スキーマの変更)3 | ✔ | |
| ポータルプロパティの変更 | ✔ | ✔ |
| 構成管理ファイルによるシステム設定の変更 | ✔ | ✔ |
[1] Blue-Green を使用したアクティベーション キーの更新は、仮想クラスター アクティベーション キーに対してのみサポートされます。 詳細については、 Liferay DXP および Liferay Commerce の仮想クラスタアクティベーションキー を参照してください。
[2]下位互換性のないデータおよびデータスキーマの変更には、次のものがありますが、これらに限定されません。
- 既存の列のデータの変更
- 列の削除
- 列タイプの変更
- 列で使用されるデータ形式の変更(XMLからJSONへの変更など)
- Service Builderサービスモジュールのデータスキーマを、モジュールの必要なデータスキーマ範囲外のバージョンへ更新。 モジュールの
Liferay-Require-SchemaVersion(bnd.bndで指定)は、Release_テーブルのモジュールのスキーマバージョン値と一致する必要があります。 新しいスキーマバージョンでモジュールをインストールすると、Release_テーブルがそのスキーマバージョンで更新され、データアップグレードプロセスがトリガーされます。 そのようなモジュールを1つのノードにインストールすると、Release_テーブルのスキーマバージョンが他のノード上のモジュールのLiferay-Require-SchemaVersionと一致しなくなり、モジュールが他のノードにインストールされるまで、モジュールのService Builderサービスが利用できなくなります。 このような変更は元に戻せません。データベースをバックアップから復元する必要があります。 これらのスキーマバージョンの変更は、すべてのノードがシャットダウンされている間に適用する必要があります。
[3] クラスター通信は維持される必要があります。 このため、ローリング再起動ではクラスターコードを更新しないでください。 カスタマーポータルは、元に戻せないなどの変更を含むDXPフィックスパックを識別します。 以下は、ローリング再起動で変更してはならないパッケージです。
com.liferay.portal.kernel.clustercom.liferay.portal.kernel.cluster.*com.liferay.portal.kernel.exception.NoSuchClusterGroupExceptioncom.liferay.portal.kernel.scheduler.multiplecom.liferay.portal.kernel.scheduler.multiple.*com.liferay.portal.cache.multiplecom.liferay.portal.cache.multiple.*com.liferay.portal.scheduler.multiplecom.liferay.portal.scheduler.multiple.*