8.18.2.4. ストレージクラスの作成

ストレージクラスの作成時に、ストレージクラスに属する永続ボリューム(PV)の動的プロビジョニングに影響するパラメーターを設定します。

重要

OpenShift Container Platform Container Storage で OpenShift Virtualization を使用する場合は、仮想マシンディスクの作成時に RBD ブロックモードの永続ボリューム要求(PVC)を指定します。仮想マシンディスクにより、RBD ブロックモードボリュームはより効率的であり、Ceph FS または RBD ファイルシステムモード PVC よりも優れたパフォーマンスを提供します。

RBD ブロックモード PVC を指定するには、'ocs-storagecluster-ceph-rbd' ストレージクラスおよび VolumeMode: Block を使用します。

注記

StorageClass オブジェクトの作成後には、このオブジェクトのパラメーターを更新できません。

手順

  1. ストレージクラスを定義する YAML ファイルを作成します。以下は例になります。

    $ touch storageclass.yaml
  2. ファイルを編集します。以下は例になります。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: hostpath-provisioner 1
    provisioner: kubevirt.io/hostpath-provisioner
    reclaimPolicy: Delete 2
    volumeBindingMode: WaitForFirstConsumer 3
    1
    この値を変更することで、オプションでストレージクラスの名前を変更できます。
    2
    reclaimPolicy には、Delete および Retain の 2 つの値があります。値を指定しない場合、ストレージクラスはデフォルトで Delete に設定されます。
    3
    volumeBindingMode 値は、動的プロビジョニングおよびボリュームバインディングが実行されるタイミングを決定します。WaitForFirstConsumer を指定して、永続ボリューム要求 (PVC) を使用する Pod が作成されるまで PV のバインディングおよびプロビジョニングを遅延させます。これにより、PV が Pod のスケジュール要件を満たすようになります。
    注記

    仮想マシンは、ローカル PV に基づくデータボリュームを使用します。ローカル PV は特定のノードにバインドされます。ディスクイメージは仮想マシンで使用するために準備されますが、ローカルストレージ PV がすでに固定されたノードに仮想マシンをスケジュールすることができない可能性があります。

    この問題を解決するには、Kubernetes Pod スケジューラーを使用して PVC を正しいノード上の PV にバインドします。volumeBindingModeWaitForFirstConsumer に設定された StorageClass を使用すると、PV のバインディングおよびプロビジョニングは、Pod が PVC を使用して作成されるまで遅延します。

  3. StorageClass オブジェクトを作成します。

    $ oc create -f storageclass.yaml