11.5. ホストパスプロビジョナーを使用したローカルストレージの設定


ホストパスプロビジョナー (HPP) を使用して、仮想マシンのローカルストレージを設定できます。

OpenShift Virtualization Operator のインストール時に、Hostpath Provisioner Operator は自動的にインストールされます。HPP は、Hostpath Provisioner Operator によって作成される OpenShift Virtualization 用に設計されたローカルストレージプロビジョナーです。HPP を使用するには、基本ストレージプールを使用して HPP カスタムリソース (CR) を作成します。

11.5.1. 基本ストレージプールを使用したホストパスプロビジョナーの作成

storagePools スタンザを使用して HPP カスタムリソース (CR) を作成することにより、基本ストレージプールを使用してホストパスプロビジョナー (HPP) を設定します。ストレージプールは、CSI ドライバーが使用する名前とパスを指定します。

重要

オペレーティングシステムと同じパーティションにストレージプールを作成しないでください。そうしないと、オペレーティングシステムのパーティションがいっぱいになり、パフォーマンスに影響を与えたり、ノードが不安定になったり、使用できなくなったりする可能性があります。

前提条件

  • spec.storagePools.path で指定されたディレクトリーには、読み取り/書き込みアクセス権が必要です。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次の例のように、storagePools スタンザを含む hpp_cr.yaml ファイルを作成します。

    apiVersion: hostpathprovisioner.kubevirt.io/v1beta1
    kind: HostPathProvisioner
    metadata:
      name: hostpath-provisioner
    spec:
      imagePullPolicy: IfNotPresent
      storagePools:
      - name: any_name 
    1
    
        path: "/var/myvolumes" 
    2
    
      workload:
        nodeSelector:
          kubernetes.io/os: linux
    1
    使用するソースを識別するための名前を指定します。StorageClass.yamlstoragePools 名と同じである必要があります。たとえば、local などです。
    2
    このノードパスの下のストレージプールディレクトリーを指定します。各ワーカーノードにパス /var/myvolumes が作成されていることを確認します。
  2. ファイルを保存して終了します。
  3. 次のコマンドを実行して HPP を作成します。

    $ oc create -f hpp_cr.yaml

11.5.1.1. ストレージクラスの作成について

ストレージクラスの作成時に、ストレージクラスに属する永続ボリューム (PV) の動的プロビジョニングに影響するパラメーターを設定します。StorageClass オブジェクトの作成後には、このオブジェクトのパラメーターを更新できません。

ホストパスプロビジョナー (HPP) を使用するには、storagePools スタンザで CSI ドライバーの関連付けられたストレージクラスを作成する必要があります。

注記

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

この問題を解決するには、Kubernetes Pod スケジューラーを使用して、永続ボリューム要求 (PVC) を正しいノードの PV にバインドします。volumeBindingMode パラメーターが WaitForFirstConsumer に設定された StorageClass 値を使用することにより、PV のバインディングおよびプロビジョニングは、Pod が PVC を使用して作成されるまで遅延します。

11.5.1.2. storagePools スタンザを使用した CSI ドライバーのストレージクラスの作成

ホストパスプロビジョナー (HPP) を使用するには、コンテナーストレージインターフェイス (CSI) ドライバーに関連するストレージクラスを作成する必要があります。

ストレージクラスの作成時に、ストレージクラスに属する永続ボリューム (PV) の動的プロビジョニングに影響するパラメーターを設定します。StorageClass オブジェクトの作成後には、このオブジェクトのパラメーターを更新できません。

注記

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

この問題を解決するには、Kubernetes Pod スケジューラーを使用して、永続ボリューム要求 (PVC) を正しいノードの PV にバインドします。volumeBindingMode パラメーターが WaitForFirstConsumer に設定された StorageClass 値を使用することにより、PV のバインディングおよびプロビジョニングは、Pod が PVC を使用して作成されるまで遅延します。

手順

  1. storageclass_csi.yaml ファイルを作成して、ストレージクラスを定義します。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: hostpath-csi
    provisioner: kubevirt.io.hostpath-provisioner
    reclaimPolicy: Delete 
    1
    
    volumeBindingMode: WaitForFirstConsumer 
    2
    
    parameters:
      storagePool: my-storage-pool 
    3
    • reclaimPolicy は、ユーザーが PVC を削除したときに、基となるストレージが削除されるか保持されるかを定義します。reclaimPolicy には、Delete および Retain の 2 つの値があります。値を指定しない場合、デフォルト値は Delete です。
    • volumeBindingMode は、PV 作成のタイミングを定義します。この例の WaitForFirstConsumer 設定は、特定のノードに Pod がスケジュールされるまで、PV の作成が遅延されることを意味します。
    • parameters.storagePool は、HPP カスタムリソース (CR) で定義されているストレージプールの名前を定義します。
  2. ファイルを保存して終了します。
  3. 次のコマンドを実行して、StorageClass オブジェクトを作成します。

    $ oc create -f storageclass_csi.yaml
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る