永続的なファイルストレージボリュームの構成
管理者は、デプロイメントタイプ(デプロイメント または ステートフルセット)に応じて、Liferay PaaS 内のサービスのボリュームを設定できます。 ボリュームは、展開タイプに応じて、永続的な共有ストレージ (NFS) または専用ストレージ (SSD) のいずれかに保存できます。 この記事では、サービスの LCP.json ファイルを使用してボリュームを構成する方法について説明します。 デプロイメント タイプの詳細については、「 デプロイメント タイプについて 」を参照してください。
/opt/liferay/data ディレクトリ (デフォルトでは data という名前) は、 liferay および backup サービスのドキュメント ライブラリ用に予約されています。 このボリュームは LCP.json ファイルで構成する必要がなく、パスを変更することはできません。 この構成が存在する場合は、問題を引き起こすことなく安全に削除できます。
サービスに新しいボリュームを構成するには、次の手順に従います。
-
保存するデータが含まれているフォルダーを選択します (例:
/opt/storage)。 -
特定の環境のリポジトリ内の
LCP.jsonファイル(例えば、liferay/)に移動します。 -
volumes設定をLCP.jsonファイルに追加します。 この構成には、ボリュームごとにキーが含まれている必要があります。 たとえば、次の構成には、/opt/storageのstorageキーが含まれています。
{
"id": "liferay",
"memory": 8192,
"cpu": 8,
"volumes": {
"storage": "/opt/storage"
}
}
StatefulSet タイプのサービスの場合、ボリューム構成の変更を有効にするには、サービスを削除してから再デプロイする必要があります。
異なるサービス間でボリュームを共有する
Deployment タイプのサービスのボリュームのみ、NFSを使用して同じ環境の他のサービスと共有できます。 StatefulSet タイプのサービスにはそれぞれ、共有できない独自のボリュームがあります。
ボリュームを共有するには:
-
サービスのGitHubリポジトリ内の
LCP.jsonファイル([ProjectID]/liferay/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 のいずれかに)。 また、ボリュームの内容を保持したくない場合は、内容を自分で削除する必要があります。