永続的なファイルストレージボリュームの構成
管理者は、Liferay PaaS のサービスのボリュームを、デプロイメントタイプ (Deployment または StatefulSet ) に応じて構成できます。 ボリュームは、展開タイプに応じて、永続的な共有ストレージ(NFS)または専用ストレージ(SSD)のいずれかに保存できます。 この記事では、サービスの LCP.json ファイルを使用してボリュームを構成する方法について説明します。 デプロイメントの種類に関する詳細は、 デプロイメントの種類を理解する を参照してください。
/opt/liferay/data ディレクトリ (デフォルトでは data という名前) は、 liferay および backup サービスのドキュメント ライブラリ用に予約されています。 このボリュームは LCP.json ファイルでの設定を必要とせず、パスを変更することはできません。 この設定が存在する場合、問題なく安全に削除できます。
サービス用の新しいボリュームを設定するには、以下の手順に従ってください。
-
永続化するデータを含むフォルダを選択します(例:
/opt/storage)。 -
特定の環境のリポジトリ内の
LCP.jsonファイル(例えば、liferay/)に移動します。 -
volumes設定をLCP.jsonファイルに追加します。 この構成には、各ボリュームに対応するキーが含まれている必要があります。 例えば、次の構成には、ストレージキーが/opt/storageに含まれています。
{
"id": "liferay",
"memory": 8192,
"cpu": 8,
"volumes": {
"storage": "/opt/storage"
}
}
StatefulSet タイプのサービスの場合、ボリューム構成の変更を有効にするには、サービスを削除してから再デプロイする必要があります。
異なるサービス間でボリュームを共有する
Deployment タイプのサービスのボリュームのみ、NFSを使用して同じ環境の他のサービスと共有できます。 StatefulSet タイプのサービスにはそれぞれ、共有できない独自のボリュームがあります。
ボリュームを共有するには、
-
サービスの GitHub リポジトリ (
[ProjectID]/liferay/LCP.json) にあるLCP.jsonファイルに移動します。 -
以下の情報を入力してください。
- サービスのID
- 共有するコンテンツの場所(絶対パス)
- 異なるサービスで同じボリュームキーを使用する
次の例では、 service1 と service2 は、NFS の共有ボリュームを使用して /documents/images からファイルを共有します。 これにより、両方のサービスがキーおよび宣言されたファイルパスを介してボリューム内のファイルにアクセスできます。
最初のサービス(service1)は /documents/imagesから写真を共有します。
{
"id": "service1",
"volumes": {
"photos": "/documents/images"
}
}
2番目のサービス(service2)は、同じ場所にボリュームを宣言し、NFS経由で共有できるようにします。
{
"id": "service2",
"volumes": {
"photos": "/documents/images"
}
}
両サービスとも、サービス再起動後の次回のデプロイ時に、NFS上の指定されたボリュームにアクセスできるようになります。
ボリュームのコンテンツの削除
サービスが削除されても、ボリュームは環境内に残ります。 サービスで使用しているボリュームの名前を変更したり(または既存のボリュームの名前を変更したり)して新しいボリュームを使用するように設定できますが、古いボリュームの内容は(NFSまたはサービスのSSDに)引き続き存在します。 ボリュームの内容を保持したくない場合は、手動で削除してください。