5.17. OpenStack Manila CSI ドライバー Operator

5.17.1. 概要

OpenShift Container Platform は、OpenStack Manila 共有ファイルシステムサービスの Container Storage Interface (CSI) ドライバーを使用して永続ボリューム (PV) をプロビジョニングできます。

Container Storage Interface (CSI) Operator およびドライバーを使用する場合、永続ストレージ および CSI ボリュームの設定 について理解しておくことが推奨されます。

Manila ストレージアセットにマウントされる CSI でプロビジョニングされる PV を作成するには、OpenShift Container Platform は Manila CSI ドライバー Operator および Manila CSI ドライバーを Manila サービスが有効にされている OpenStack クラスターにデフォルトでインストールします。

  • Manila CSI ドライバー Operator は、利用可能なすべての Manila 共有タイプの PVC の作成に必要なストレージクラスを作成します。Operator は openshift-cluster-csi-drivers namespace にインストールされます。
  • Manila CSI ドライバー を使用すると、Manila PV を作成し、マウントできます。ドライバーは openshift-manila-csi-driver namespace にインストールされます。

5.17.2. CSI について

ストレージベンダーはこれまで Kubernetes の一部としてストレージドライバーを提供してきました。Container Storage Interface (CSI) の実装では、サードパーティーのプロバイダーは、コア Kubernetes コードを変更せずに標準のインターフェイスを使用してストレージプラグインを提供できます。

CSI Operator は、in-tree (インツリー) ボリュームプラグインでは不可能なボリュームスナップショットなどのストレージオプションを OpenShift Container Platform ユーザーに付与します。

5.17.3. Manila CSI Driver Operator の制限事項

次の制限は、Manila Container Storage Interface (CSI) Driver Operator に適用されます。

NFS のみがサポートされています
OpenStack Manila は、NFS、CIFS、CEPHFS など、多くのネットワーク接続ストレージプロトコルをサポートしており、これらは OpenStack クラウドで選択的に有効にすることができます。OpenShift Container Platform の Manila CSI Driver Operator は、NFS プロトコルの使用のみをサポートします。基盤となる OpenStack クラウドで NFS が利用可能でなく、有効化されていない場合は、Manila CSI Driver Operator を使用して OpenShift Container Platform のストレージをプロビジョニングすることはできません。
バックエンドが CephFS-NFS の場合、スナップショットはサポートされません
永続ボリューム (PV) のスナップショットを作成し、ボリュームをスナップショットに戻すには、使用している Manila 共有タイプがこれらの機能をサポートしていることを確認する必要があります。Red Hat OpenStack 管理者は、使用するストレージクラスに関連付けられた共有タイプで、スナップショットのサポート (share type extra-spec snapshot_support) およびスナップショットからの共有の作成 (share type extra-spec create_share_from_snapshot_support) を有効にする必要があります。
FSGroup はサポートされていません
Manila CSI は、複数のリーダーおよび複数のライターによるアクセス用の共有ファイルシステムを提供するため、FSGroup の使用をサポートしていません。これは、ReadWriteOnce アクセスモードで作成された永続ボリュームにも当てはまります。したがって、Manila CSI Driver で使用するために手動で作成するストレージクラスでは、fsType 属性を指定しないことが重要です。
重要

Red Hat OpenStack Platform 16.x および 17.x では、NFS を介した CephFS を使用する Shared File Systems サービス (Manila) は、Manila CSI を介した OpenShift Container Platform への共有の提供を完全にサポートします。ただし、このソリューションは大規模なスケールを意図したものではありません。CephFS NFS Manila-CSI Workload Recommendations for Red Hat OpenStack Platform の重要な推奨事項を確認してください。

5.17.4. Manila CSI ボリュームの動的プロビジョニング

OpenShift Container Platform は利用可能な Manila 共有タイプ別にストレージクラスをインストールします。

作成される YAML ファイルは Manila およびその Container Storage Interface (CSI) プラグインから完全に切り離されます。アプリケーション開発者は、ReadWriteMany (RWX) ストレージを動的にプロビジョニングし、YAML マニフェストを使用してストレージを安全に使用するアプリケーションと共に Pod をデプロイできます。

PVC 定義のストレージクラス参照を除き、AWS、GCP、Azure、および他のプラットフォームで OpenShift Container Platform で使用する同じ Pod および永続ボリューム要求 (PVC) 定義をオンプレミスで使用できます。

注記

Manila サービスはオプションです。サービスが Red Hat OpenStack Platform (RHOSP) で有効にされていない場合には、Manila CSI ドライバーがインストールされず、Manila のストレージクラスが作成されません。

前提条件

  • RHOSP は適切な Manila 共有インフラストラクチャーでデプロイされ、OpenShift Container Platform でボリュームを動的にプロビジョニングし、マウントするために使用できます。

手順 (UI)

Web コンソールを使用して Manila CSI ボリュームを動的に作成するには、以下を実行します。

  1. OpenShift Container Platform コンソールで、StoragePersistent Volume Claims をクリックします。
  2. 永続ボリューム要求 (PVC) の概要で、Create Persistent Volume Claim をクリックします。
  3. 結果のページで必要なオプションを定義します。

    1. 適切なストレージクラスを選択します。
    2. ストレージ要求の一意の名前を入力します。
    3. アクセスモードを選択し、作成する PVC の読み取りおよび書き込みアクセスを指定します。

      重要

      この PVC を満たす永続ボリューム (PV) をクラスター内の複数ノードの複数 Pod にマウントする必要がある場合には、RWX を使用します。

  4. ストレージ要求のサイズを定義します。
  5. Create をクリックして永続ボリューム要求 (PVC) を作成し、永続ボリュームを生成します。

手順 (CLI)

コマンドラインインターフェイス (CLI) を使用して Manila CSI ボリュームを動的に作成するには、以下を実行します。

  1. 以下の YAML によって記述される PersistentVolumeClaim オブジェクトを使用してファイルを作成し、保存します。

    pvc-manila.yaml

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-manila
    spec:
      accessModes: 1
        - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      storageClassName: csi-manila-gold 2

    1
    この PVC を満たす永続ボリューム (PV) をクラスター内の複数ノードの複数 Pod にマウントする必要がある場合には、RWX を使用します。
    2
    ストレージのバックエンドをプロビジョニングするストレージクラスの名前。Manila ストレージクラスは Operator によってプロビジョニングされ、これには csi-manila- 接頭辞があります。
  2. 以下のコマンドを実行して、直前の手順で保存されたオブジェクトを作成します。

    $ oc create -f pvc-manila.yaml

    新規 PVC が作成されます。

  3. ボリュームが作成され、準備状態にあることを確認するには、以下のコマンドを実行します。

    $ oc get pvc pvc-manila

    pvc-manila は、これが Bound であることを示します。

新規 PVC を使用して Pod を設定できるようになりました。