5.11. Red Hat Virtualization CSI Driver Operator

5.11.1. 概要

OpenShift Container Platform は、Red Hat Virtualization (RHV) の Container Storage Interface (CSI) ドライバーを使用して永続ボリューム (PV) をプロビジョニングできます。

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

RHV ストレージアセットにマウントする CSI でプロビジョニングされる PV を作成するには、OpenShift Container Platform は openshift-cluster-csi-drivers namespace にデフォルトで oVirt CSI ドライバーおよび oVirt CSI ドライバーをインストールします。

  • oVirt CSI Driver Operator は、永続ボリューム要求 (PVC) の作成に使用できるデフォルトの StorageClass オブジェクトを提供します。
  • oVirt CSI ドライバー を使用すると、oVirt PV を作成し、マウントできます。

5.11.2. CSI について

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

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

注記

oVirt CSI ドライバーは、スナップショットをサポートしていません。

5.11.3. oVirt CSI ドライバーのストレージクラス

OpenShift Container Platform は、動的にプロビジョニングされる永続ボリュームを作成するために使用される ovirt-csi-sc という名前のタイプが StorageClass のデフォルトオブジェクトを作成します。

異なる設定の追加ストレージクラスを作成するには、以下のサンプル YAML で記述される StorageClass オブジェクトを使ってファイルを作成し、保存します。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: <storage-class-name>  1
  annotations:
    storageclass.kubernetes.io/is-default-class: "false"  2
provisioner: csi.ovirt.org
parameters:
  storageDomainName: <rhv-storage-domain-name> 3
  thinProvisioning: "true"  4
  csi.storage.k8s.io/fstype: ext4 5
1
ストレージクラス名
2
ストレージクラスがクラスターのデフォルトストレージクラスの場合に false に設定されます。true に設定される場合、既存のデフォルトストレージクラスを編集し、false に設定する必要があります。
3
使用する RHV ストレージドメイン名。
4
ディスクはシンプロビジョニングされる必要があります。
5
作成するファイルシステムタイプ。

5.11.4. RHV での永続ボリュームの作成

PersistentVolumeClaim (PVC) オブジェクトの作成時に、OpenShift Container Platform は新規の永続ボリューム (PV) をプロビジョニングし、PersistentVolume オブジェクトを作成します。

前提条件

  • 実行中の OpenShift Container Platform クラスターにログインしている。
  • ovirt-credentials シークレットに正しい RHV 認証情報を指定している。
  • oVirt CSI ドライバーをインストールしている。
  • 1 つ以上のストレージクラスが定義されている。

手順

  • Web コンソールを使用して RHV で永続ボリュームを動的に作成する場合は、以下を実行します。

    1. OpenShift Container Platform コンソールで、StoragePersistent Volume Claims をクリックします。
    2. 永続ボリューム要求 (PVC) の概要で、Create Persistent Volume Claim をクリックします。
    3. 結果のページで必要なオプションを定義します。
    4. 適切な StorageClass オブジェクト (デフォルトは ovirt-csi-sc) を選択します。
    5. ストレージ要求の一意の名前を入力します。
    6. アクセスモードを選択します。現時点で、RWO (ReadWriteOnce) は唯一のサポートされているアクセスモードです。
    7. ストレージ要求のサイズを定義します。
    8. ボリュームモードを選択します。

      Filesystem: Pod にディレクトリーとしてマウントされます。このモードはデフォルトです。

      Block: ファイルシステムのないブロックデバイスです。

    9. Create をクリックして PersistentVolumeClaim オブジェクトを作成し、PersistentVolume オブジェクトを生成します。
  • コマンドラインインターフェイス (CLI) を使用して RHV CSI ボリュームを動的に作成するには、以下を実行します。

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

      pvc-ovirt.yaml

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: pvc-ovirt
      spec:
        storageClassName: ovirt-csi-sc 1
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
          storage: <volume size>  2
        volumeMode: <volume mode> 3

      1
      必要なストレージクラスの名前。
      2
      ボリュームのサイズ (GiB)。
      3
      サポートされているオプション:
      • Filesystem: Pod にディレクトリーとしてマウントされます。このモードはデフォルトです。
      • Block: ファイルシステムのないブロックデバイスです。
    2. 以下のコマンドを実行して、直前の手順で保存されたオブジェクトを作成します。

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

      $ oc get pvc pvc-ovirt

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