永続的なファイルストレージボリュームの構成
管理者は Liferay Cloud のサービスのボリュームをデプロイタイプに応じて設定することができます (Deployment
または StatefulSet
)。 ボリュームは、導入タイプに応じて、永続的な共有ストレージ(NFS)または専用ストレージ(SSD)のいずれかに保存できます。 この記事では、サービスの LCP.json
ファイルを使用してボリュームを構成する方法を説明します。 配置タイプの詳細については、 配置タイプを理解する を参照してください。
/opt/liferay/data
ディレクトリ(デフォルトでは data
という名前)は liferay
と backup
サービスのドキュメントライブラリ用に予約されています。 このボリュームは LCP.json
ファイルで設定する必要はなく、パスも変更できない。 このコンフィギュレーションがあれば、問題を起こすことなく安全に削除できる。
サービス用に新しいボリュームを構成するには、以下の手順に従います。
-
永続化するデータを含むフォルダを選択する(例えば、
/opt/storage
)。 -
特定の環境のリポジトリ内の
LCP.json
ファイル(例えば、liferay/
)に移動します。 -
volumes
設定をLCP.json
ファイルに追加します。 このコンフィギュレーションには、各ボリュームのキーが含まれていなければならない。 例えば、以下のコンフィギュレーションには、storage
key for/opt/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のいずれかに)存在します。 また、ボリュームの内容を保持したくない場合は、内容を自分で削除する必要があります。