6.5. NFS バックエンドの設定
ストレージバックエンドとして NFS を使用する Image サービス (glance) を設定できます。NFS は Image サービスネイティブではありません。Image サービスに使用するために NFS 共有をマウントすると、Image サービスはファイルシステムにデータを書き込みますが、NFS 共有の可用性は検証しません。
Image サービスのバックエンドとして NFS を使用する場合は、リスクを軽減するために次のベストプラクティスを参照してください。
- 信頼性の高い実稼働環境グレードの NFS バックエンドを使用する。
-
Image サービスがデプロイされている Red Hat OpenStack Services on OpenShift (RHOSO) コントロールプレーンでネットワークが利用可能であること、およびそのネットワークを参照する
NetworkAttachmentDefinitionカスタムリソース (CR) が Image サービスにあることを確認する。この設定により、Image サービス Pod が NFS サーバーに到達できるようになります。 - エクスポート権限を設定します。書き込み権限は、ストアとして使用する共有ファイルシステムに設定する必要があります。
- 制限事項
Red Hat OpenStack Services on OpenShift (RHOSO) では、Pod 仕様でクライアント側の NFS マウントオプションは設定できません。NFS マウントオプションは、次のいずれかの方法で設定できます。
- サーバー側のマウントオプションを設定します。
-
/etc/nfsmount.confを使用します。 - マウントオプションを持つ PersistentVolumes を使用して NFS ボリュームをマウントします。
手順
OpenStackControlPlaneCR ファイル (openstack_control_plane.yaml) を開き、specセクションにextraMountsパラメーターを追加して、NFS 共有のエクスポートパスと IP アドレスを追加します。パスは/var/lib/glance/imagesにマッピングされ、ここで Image サービス API (glanceAPI) がイメージを保存および取得します。apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack ... spec: extraMounts: - extraVol: - extraVolType: Nfs mounts: - mountPath: /var/lib/glance/images name: nfs propagation: - Glance volumes: - name: nfs nfs: path: <nfs_export_path> server: <nfs_ip_address> name: r1 region: r1 ...-
<nfs_export_path>を NFS 共有のエクスポートパスに置き換えます。 -
<nfs_ip_address>は、NFS 共有の IP アドレスに置き換えます。この IP アドレスは、Image サービスが到達可能なオーバーレイネットワークの一部である必要があります。
-
NFS をバックエンドとして設定するには、
glanceテンプレートに次のパラメーターを追加します。... spec: extraMounts: ... glance: template: glanceAPIs: default: type: single replicas: 3 # Configure back end; set to 3 when deploying service ... customServiceConfig: | [DEFAULT] enabled_backends = <backend_name>:file [glance_store] default_backend = <backend_name> [<backend_name>] filesystem_store_datadir = /var/lib/glance/images databaseInstance: openstack ...-
API 全体の高可用性のために
replicasを3に設定します。 <backend_name>は、デフォルトのバックエンドの名前に置き換えます。注記NFS バックエンドを設定するときは、
typeをsingleに設定する必要があります。デフォルトでは、Image サービスには、Identity サービス (keystone) のパブリックエンドポイントと管理者エンドポイントを介してアクセス可能な外部 API サービスと、Identity サービスの内部エンドポイントを介してのみアクセス可能な内部 API サービスのsplitデプロイメントタイプがあります。異なる Pod が同じファイル共有にアクセスするため、splitデプロイメントタイプはfileバックエンドでは無効です。
-
API 全体の高可用性のために
コントロールプレーンを更新します。
$ oc apply -f openstack_control_plane.yaml -n openstackRHOCP が
OpenStackControlPlaneCR に関連するリソースを作成するまで待機します。次のコマンドを実行して、ステータスを確認します。$ oc get openstackcontrolplane -n openstackステータスが "Setup complete" であれば、
OpenStackControlPlaneリソースが作成されています。ヒントデプロイの進行状況を追跡するには、
getコマンドの末尾に-wオプションを追加します。