検索

5.22. VMware vSphere CSI Driver Operator

download PDF

5.22.1. 概要

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

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

vSphere ストレージアセットにマウントする CSI でプロビジョニングされた永続ボリューム (PV) を作成するには、OpenShift Container Platform は、デフォルトで vSphere CSI Driver Operator および vSphere CSI ドライバーを openshift-cluster-csi-drivers namespace にインストールします。

  • vSphere CSI Driver Operator: Operator は、永続ボリューム要求 (PVC) の作成に使用できる thin-csi というストレージクラスを提供します。vSphere CSI Driver Operator は、ストレージボリュームをオンデマンドで作成できるようにし、クラスター管理者がストレージを事前にプロビジョニングする必要がなくすことで、動的ボリュームのプロビジョニングをサポートします。必要に応じて、このデフォルトのストレージクラスを無効にできます (デフォルトストレージクラスの管理 を参照)。
  • vSphere CSI ドライバー: このドライバーを使用すると、vSphere PV を作成し、マウントできます。OpenShift Container Platform 4.16 のドライバーバージョンは 3.1.2 です。vSphere CSI ドライバーは、XFS や Ext4 など、基盤となる Red Hat Core オペレーティングシステムリリースでサポートされているすべてのファイルシステムをサポートします。サポートされているファイルシステムの詳細は、利用可能なファイルシステムの概要 を参照してください。
注記

新規インストールの場合、OpenShift Container Platform 4.13 以降では、vSphere インツリーボリュームプラグインと同等の CSI ドライバーに自動的に移行できます。OpenShift Container Platform 4.15 以降に更新した場合も、自動移行が可能になります。更新と移行の詳細は、CSI の自動移行 を参照してください。

CSI 自動移行はシームレスに行ってください。移行をしても、永続ボリューム、永続ボリューム要求、ストレージクラスなどの既存の API オブジェクトを使用する方法は変更されません。

5.22.2. CSI について

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

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

5.22.3. vSphere CSI の制限

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

  • vSphere CSI Driver は、動的および静的なプロビジョニングをサポートします。ただし、PV 仕様で静的プロビジョニングを使用する場合は、csi.volumeAttributes でキー storage.kubernetes.io/csiProvisionerIdentity を使用しないでください。このキーは動的にプロビジョニングされた PV を示すためです。
  • vSphere クライアントインターフェイスを使用してデータストア間で永続コンテナーボリュームを移行することは、OpenShift Container Platform ではサポートされていません。

5.22.4. vSphere ストレージポリシー

vSphere CSI Driver Operator ストレージクラスは、vSphere のストレージポリシーを使用します。OpenShift Container Platform は、クラウド設定で設定されるデータストアをターゲットにするストレージポリシーを自動的に作成します。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: thin-csi
provisioner: csi.vsphere.vmware.com
parameters:
  StoragePolicyName: "$openshift-storage-policy-xxxx"
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: false
reclaimPolicy: Delete

5.22.5. ReadWriteMany vSphere ボリュームのサポート

基盤となる vSphere 環境が vSAN ファイルサービスをサポートしている場合、OpenShift Container Platform によってインストールされた vSphere Container Storage Interface (CSI) Driver Operator は ReadWriteMany (RWX) ボリュームのプロビジョニングをサポートします。vSAN ファイルサービスが設定されていない場合、使用可能なアクセスモードは ReadWriteOnce (RWO) のみです。vSAN ファイルサービスが設定されていない場合に RWX を要求すると、ボリュームの作成に失敗し、エラーがログに記録されます。

ご使用の環境で vSAN ファイルサービスを設定する方法の詳細は、vSAN File Service を参照してください。

次の永続ボリューム要求 (PVC) を行うことで、RWX ボリュームを要求できます。

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  resources:
    requests:
      storage: 1Gi
  accessModes:
     - ReadWriteMany
  storageClassName: thin-csi

RWX ボリュームタイプの PVC を要求すると、vSAN ファイルサービスによってサポートされる永続ボリューム (PV) がプロビジョニングされます。

5.22.6. VMware vSphere CSI Driver Operator の要件

vSphere Container Storage Interface (CSI) Driver Operator をインストールするには、次の要件を満たす必要があります。

  • VMware vSphere バージョン: 7.0 Update 2 以降、8.0 Update 1 以降
  • vCenter バージョン: 7.0 Update 2 以降、8.0 Update 1 以降
  • ハードウェアバージョン 15 以降の仮想マシン
  • クラスターにサードパーティーの vSphere CSI ドライバーがインストールされていない

サードパーティーの vSphere CSI ドライバーがクラスターに存在する場合、OpenShift Container Platform はそれを上書きしません。サードパーティーの vSphere CSI ドライバーが存在すると、OpenShift Container Platform を OpenShift Container Platform 4.13 以降にアップグレードできなくなります。

注記

VMware vSphere CSI Driver Operator は、インストールマニフェストの platform: vsphere でデプロイされたクラスターでのみサポートされます。

Container Storage Interface (CSI) ドライバー、vSphere CSI Driver Operator、および vSphere Problem Detector Operator のカスタムロールを作成できます。カスタムロールには、各 vSphere オブジェクトに最小限の権限セットを割り当てる権限セットを含めることができます。つまり、CSI ドライバー、vSphere CSI Driver Operator、および vSphere Problem Detector Operator はこれらのオブジェクトとの基本的な対話を確立できます。

重要

vCenter への OpenShift Container Platform クラスターのインストールは、「必要な vCenter アカウントの特権」セクションで説明されているすべての特権のリストに対してテストされています。完全な権限リストに従うことで、一連の制限された権限を持つカスタムロールの作成時に発生する可能性のある予期しない動作やサポートされていない動作が発生する可能性を抑制できます。

サードパーティーの CSI ドライバーを削除するには、サードパーティーの vSphere CSI ドライバーの削除 を参照してください。

5.22.7. サードパーティー vSphere CSI Driver Operator の削除

OpenShift Container Platform 4.10 以降には、Red Hat がサポートする vSphere Container Storage Interface (CSI) Operator ドライバーの組み込みバージョンが含まれます。コミュニティーまたは別のベンダーが提供する vSphere CSI ドライバーをインストールした場合、OpenShift Container Platform の次のメジャーバージョン (4.13 以降など) への更新がクラスターで無効になる可能性があります。

OpenShift Container Platform 4.12 以降では、クラスターは引き続き完全にサポートされており、4.12.z などの 4.12 の z ストリームリリースの更新はブロックされませんが、OpenShift Container Platform の次のメジャーバージョンに更新する前に、サードパーティーの vSphere CSI Driver ドライバーを削除してこの状態を修正する必要があります。サードパーティーの vSphere CSI ドライバーの削除には、関連する永続ボリューム (PV) オブジェクトの削除が必要ないため、データ喪失は発生しません。

注記

以下の手順は完全ではない可能性があるため、ベンダーまたはコミュニティープロバイダーのアンインストールガイドを参照して、ドライバーおよびコンポーネントを完全に削除してください。

サードパーティーの vSphere CSI Driver をアンインストールするには、以下を実行します。

  1. サードパーティーの vSphere CSI Driver(VMware vSphere Container Storage プラグイン) の Deployment および Daemonset オブジェクトを削除します。
  2. サードパーティーの vSphere CSI Driver で以前にインストールされた configmap およびシークレットオブジェクトを削除します。
  3. サードパーティーの vSphere CSI ドライバー CSIDriver オブジェクトを削除します。

    ~ $ oc delete CSIDriver csi.vsphere.vmware.com
    csidriver.storage.k8s.io "csi.vsphere.vmware.com" deleted

OpenShift Container Platform クラスターからサードパーティーの vSphere CSI Driver を削除した後に、Red Hat の vSphere CSI Driver Operator のインストールが自動的に再開され、OpenShift Container Platform 4.11 以降へのアップグレードをブロックする可能性のある条件は自動的に削除されます。既存の vSphere CSI PV オブジェクトがある場合、それらのライフサイクルは Red Hat の vSphere CSI Driver Operator で管理されるようになります。

5.22.8. vSphere 永続ディスクの暗号化

vSphere 上で実行される OpenShift Container Platform では、仮想マシン (VM) と動的にプロビジョニングされた永続ボリューム (PV) を暗号化できます。

注記

OpenShift Container Platform は、RWX 暗号化 PV をサポートしていません。暗号化されたストレージポリシーを使用するストレージクラスから RWX PV をリクエストすることはできません。

PV を暗号化する前に仮想マシンを暗号化する必要があります。これは、インストール中またはインストール後に実行できます。

仮想マシンの暗号化の詳細は、以下を参照してください。

VM を暗号化した後、vSphere Container Storage Interface (CSI) ドライバーを使用して、動的暗号化ボリュームプロビジョニングをサポートするストレージクラスを設定できます。これは、次の 2 つの方法のいずれかで実行できます。

  • データストア URL: このアプローチは柔軟性があまり高くないため、単一のデータストアを使用する必要があります。また、トポロジーを意識したプロビジョニングもサポートしていません。
  • タグベースの配置: プロビジョニングされたボリュームを暗号化し、タグベースの配置を使用して特定のデータストアをターゲットにします。

5.22.8.1. データストア URL の使用

手順

データストア URL を使用して暗号化するには、以下を実行します。

  1. 暗号化をサポートするデータストア内のデフォルトのストレージポリシーの名前を見つけます。

    これは、VM の暗号化に使用されたポリシーと同じです。

  2. このストレージポリシーを使用するストレージクラスを作成します。

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
     name: encryption
    provisioner: csi.vsphere.vmware.com
    parameters:
     storagePolicyName: <storage-policy-name> 1
     datastoreurl: "ds:///vmfs/volumes/vsan:522e875627d-b090c96b526bb79c/"
    1
    暗号化をサポートするデータストア内のデフォルトのストレージポリシーの名前

5.22.8.2. タグベースの配置の使用

手順

タグベースの配置を使用して暗号化するには:

  1. vCenter で、このストレージクラスで使用できるデータストアにタグを付けるためのカテゴリーを作成します。また、作成されたカテゴリーの関連付け可能なエンティティーとして StoragePod (Datastore クラスター)Datastore、および Folder が選択されていることを確認します。
  2. vCenter で、前に作成したカテゴリーを使用するタグを作成します。
  3. 以前に作成したタグを、ストレージクラスで使用できる各データストアに割り当てます。データストアが OpenShift Container Platform クラスターに参加しているホストと共有されていることを確認してください。
  4. vCenter で、メインメニューから Policies and Profiles をクリックします。
  5. Policies and Profiles ページのナビゲーションペインで、VM Storage Policies をクリックします。
  6. CREATE をクリックします。
  7. ストレージポリシーの名前を入力します。
  8. Enable host based rules および Enable tag based placement rules を選択します。
  9. Next タブで:

    1. Encryption および Default Encryption Properties を選択します。
    2. 先ほど作成したタグカテゴリーを選択し、選択したタグを選択します。ポリシーが一致するデータストアを選択していることを確認します。
  10. ストレージポリシーを作成します。
  11. ストレージポリシーを使用するストレージクラスを作成します。

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
     name:  csi-encrypted
    provisioner: csi.vsphere.vmware.com
    reclaimPolicy: Delete
    volumeBindingMode: WaitForFirstConsumer
    parameters:
     storagePolicyName: <storage-policy-name> 1
    1
    暗号化用に作成したストレージポリシーの名前

5.22.9. vSphere CSI トポロジーの概要

OpenShift Container Platform は、異なるゾーンおよびリージョンに OpenShift Container Platform for vSphere をデプロイする機能を提供します。この機能を使用することで、複数のコンピュートクラスターとデータセンターにデプロイできるため、単一障害点を回避するのに役立ちます。

これは、vCenter でゾーンとリージョンのカテゴリーを定義し、これらのゾーンとリージョンのカテゴリーのタグを作成して、コンピューティングクラスターなどのさまざまな障害ドメインにこれらのカテゴリーを割り当てることによって実現されます。適切なカテゴリーを作成し、vCenter オブジェクトにタグを割り当てたら、それらの障害ドメインで Pod のスケジュールを担当する仮想マシン (VM) を作成する追加のマシンセットを作成できます。

次の例では、1 つのリージョンと 2 つのゾーンを持つ 2 つの障害ドメインを定義しています。

表5.6 1 つのリージョンと 2 つのゾーンを含む vSphere ストレージトポロジー
計算クラスター障害ドメイン説明

コンピュートクラスター: ocp1、データセンター: アトランタ

openshift-region: us-east-1 (タグ)、openshift-zone: us-east-1a (タグ)

これにより、リージョン us-east-1 にゾーン us-east-1a を持つ障害ドメインが定義されます。

コンピュータークラスター: ocp2、データセンター: アトランタ

openshift-region: us-east-1 (タグ)、openshift-zone: us-east-1b (タグ)

これにより、us-east-1b と呼ばれる同じリージョン内の別の障害ドメインが定義されます。

5.22.9.1. vSphere CSI トポロジーの要件

vSphere CSI トポロジーには次のガイドラインが推奨されます。

  • トポロジータグは、ホストではなく、データセンターとコンピュートクラスターに追加することを強く推奨します。

    vsphere-problem-detector は、データセンターまたはコンピュートクラスターレベルで openshift-region または openshift-zone タグが定義されていない場合にアラートを発し、各トポロジータグ (openshift-region または openshift-zone) は階層内で 1 回だけ出現する必要があります。

    注記

    この推奨事項を無視すると、CSI ドライバーからのログ警告のみが発生し、ホストなどの階層の下位にある重複タグは無視されます。VMware はこれを無効な設定と見なすため、問題を防ぐためにはこれを使用しないでください。

  • トポロジー対応環境でのボリュームプロビジョニング要求は、特定のトポロジーセグメントの下にあるすべてのホストからアクセス可能なデータストアにボリュームを作成しようとします。これには、Kubernetes ノード仮想マシンが実行されていないホストも含まれます。たとえば、vSphere Container Storage プラグインドライバーが、データセンター dc-1 に適用された zone-a のボリュームをプロビジョニングする要求を受信した場合、dc-1 の下にあるすべてのホストは、ボリュームのプロビジョニング用に選択されたデータストアにアクセスできる必要があります。ホストには、dc-1 の直下にあるホストと、dc-1 内のクラスターの一部であるホストが含まれます。
  • 追加の推奨事項については、VMware の トポロジーを使用したデプロイメントに関するガイドラインとベストプラクティス セクションを参照してください。

5.22.9.2. インストール時の vSphere ストレージトポロジーの作成

5.22.9.2.1. 手順
  • インストール時にトポロジーを指定します。Configuring regions and zones for a VMware vCenter セクションを参照してください。

追加のアクションは必要ありません。OpenShift Container Platform によって作成されるデフォルトのストレージクラスはトポロジーを認識し、さまざまな障害ドメインでのボリュームのプロビジョニングを許可します。

5.22.9.3. インストール後に vSphere ストレージトポロジーを作成する

5.22.9.3.1. 手順
  1. VMware vCenter vSphere クライアント GUI で、適切なゾーンとリージョンのカテゴリーとタグを定義します。

    vSphere では任意の名前でカテゴリーを作成できますが、OpenShift Container Platform では、トポロジーカテゴリーの定義に openshift-region 名と openshift-zone 名を使用することを強く推奨します。

    vSphere のカテゴリーとタグの詳細は、VMware vSphere のドキュメントを参照してください。

  2. OpenShift Container Platform で、障害ドメインを作成します。Specifying multiple regions and zones for your cluster on vSphere セクションを参照してください。
  3. 障害ドメイン全体のデータストアに割り当てるタグを作成します。

    OpenShift Container Platform が複数の障害ドメインにまたがる場合、データストアがそれらの障害ドメイン間で共有されない可能性があります。この場合、永続ボリューム (PV) のトポロジーを意識したプロビジョニングが役立ちます。

    1. vCenter で、データストアにタグを付けるためのカテゴリーを作成します。例: openshift-zonal-datastore-cat。カテゴリーが OpenShift Container Platform クラスターに参加するデータストアのタグ付けに一意に使用される場合、他のカテゴリー名を使用できます。また、作成したカテゴリーの関連付け可能なエンティティーとして StoragePodDatastore、および Folder が選択されていることを確認します。
    2. vCenter で、以前に作成したカテゴリーを使用するタグを作成します。この例では、タグ名 openshift-zonal-datastore を使用しています。
    3. 以前に作成したタグ (この例では openshift-zonal-datastore) を、動的プロビジョニングと見なされる障害ドメイン内の各データストアに割り当てます。

      注記

      データストアのカテゴリーとタグには任意の名前を使用できます。この例で使用されている名前は、推奨事項として提供されています。定義するタグとカテゴリーが、OpenShift Container Platform クラスター内のすべてのホストと共有されるデータストアのみを一意に識別するようにします。

  4. 必要に応じて、各障害ドメイン内のタグベースのデータストアを対象とするストレージポリシーを作成します。

    1. vCenter で、メインメニューから Policies and Profiles をクリックします。
    2. Policies and Profiles ページのナビゲーションペインで、VM Storage Policies をクリックします。
    3. CREATE をクリックします。
    4. ストレージポリシーの名前を入力します。
    5. ルールについては、Tag Placement rules を選択し、目的のデータストアを対象とするタグとカテゴリーを選択します (この例では、openshift-zonal-datastore タグ)。

      データストアは、ストレージ互換性テーブルにリストされています。

  5. 新しいゾーンストレージポリシーを使用する新しいストレージクラスを作成します。

    1. Storage > StorageClasses をクリックします。
    2. StorageClasses ページで、Create StorageClass をクリックします。
    3. Name に新しいストレージクラスの名前を入力します。
    4. Provisioner で、csi.vsphere.vmware.com を選択します。
    5. Additional parameters で、StoragePolicyName パラメーターの Value を、前に作成した新しいゾーンストレージポリシーの名前に設定します。
    6. Create をクリックします。

      出力例

      kind: StorageClass
      apiVersion: storage.k8s.io/v1
      metadata:
        name: zoned-sc 1
      provisioner: csi.vsphere.vmware.com
      parameters:
        StoragePolicyName: zoned-storage-policy 2
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      volumeBindingMode: WaitForFirstConsumer

      1
      新しいトポロジー対応ストレージクラス名。
      2
      ゾーンストレージポリシーを指定します。
      注記

      前述の YAML ファイルを編集し、コマンド oc create -f $FILE を実行して、ストレージクラスを作成することもできます。

5.22.9.4. インフラトポロジーを使用しない vSphere ストレージトポロジーの作成

注記

OpenShift Container Platform は、トポロジー対応セットアップで障害ドメインを指定するためにインフラストラクチャーオブジェクトを使用することを推奨します。インフラストラクチャーオブジェクトで障害ドメインを指定し、同時に ClusterCSIDriver オブジェクトでトポロジーカテゴリーを指定することは、サポートされていない操作です。

5.22.9.4.1. 手順
  1. VMware vCenter vSphere クライアント GUI で、適切なゾーンとリージョンのカテゴリーとタグを定義します。

    vSphere では任意の名前でカテゴリーを作成できますが、OpenShift Container Platform では、トポロジーを定義するために openshift-region および openshift-zone 名を使用することを強く推奨します。

    vSphere のカテゴリーとタグの詳細は、VMware vSphere のドキュメントを参照してください。

  2. Container Storage Interface (CSI) ドライバーがこのトポロジーを検出できるようにするには、clusterCSIDriver オブジェクトの YAML ファイルの driverConfig セクションを編集します。

    • 以前に作成した openshift-zone および openshift-region カテゴリーを指定します。
    • driverTypevSphere に設定します。

      ~ $ oc edit clustercsidriver csi.vsphere.vmware.com -o yaml

      出力例

      apiVersion: operator.openshift.io/v1
      kind: ClusterCSIDriver
      metadata:
        name: csi.vsphere.vmware.com
      spec:
        logLevel: Normal
        managementState: Managed
        observedConfig: null
        operatorLogLevel: Normal
        unsupportedConfigOverrides: null
        driverConfig:
          driverType: vSphere 1
            vSphere:
              topologyCategories: 2
              - openshift-zone
              - openshift-region

      1
      driverTypevSphere に設定されていることを確認します。
      2
      vCenter で以前に作成された openshift-zone および openshift-region カテゴリー。
  3. 次のコマンドを実行して、CSINode オブジェクトにトポロジーキーがあることを確認します。

    ~ $ oc get csinode

    出力例

    NAME DRIVERS AGE
    co8-4s88d-infra-2m5vd 1 27m
    co8-4s88d-master-0 1 70m
    co8-4s88d-master-1 1 70m
    co8-4s88d-master-2 1 70m
    co8-4s88d-worker-j2hmg 1 47m
    co8-4s88d-worker-mbb46 1 47m
    co8-4s88d-worker-zlk7d 1 47m

    ~ $ oc get csinode co8-4s88d-worker-j2hmg -o yaml

    出力例

    ...
    spec:
      drivers:
      - allocatable:
          count: 59
      name: csi-vsphere.vmware.com
      nodeID: co8-4s88d-worker-j2hmg
      topologyKeys: 1
      - topology.csi.vmware.com/openshift-zone
      - topology.csi.vmware.com/openshift-region

    1
    vSphere openshift-zone および openshift-region カテゴリーからのトポロジーキー。
    注記

    CSINode オブジェクトは、更新されたトポロジー情報を受信するのに時間がかかる場合があります。ドライバーが更新された後、CSINode オブジェクトにはトポロジーキーが含まれている必要があります。

  4. 障害ドメイン全体のデータストアに割り当てるタグを作成します。

    OpenShift Container Platform が複数の障害ドメインにまたがる場合、データストアがそれらの障害ドメイン間で共有されない可能性があります。この場合、永続ボリューム (PV) のトポロジーを意識したプロビジョニングが役立ちます。

    1. vCenter で、データストアにタグを付けるためのカテゴリーを作成します。例: openshift-zonal-datastore-cat。カテゴリーが OpenShift Container Platform クラスターに参加するデータストアのタグ付けに一意に使用される場合、他のカテゴリー名を使用できます。また、作成したカテゴリーの関連付け可能なエンティティーとして StoragePodDatastore、および Folder が選択されていることを確認します。
    2. vCenter で、以前に作成したカテゴリーを使用するタグを作成します。この例では、タグ名 openshift-zonal-datastore を使用しています。
    3. 以前に作成したタグ (この例では openshift-zonal-datastore) を、動的プロビジョニングと見なされる障害ドメイン内の各データストアに割り当てます。

      注記

      カテゴリーとタグには、好きな名前を使用できます。この例で使用されている名前は、推奨事項として提供されています。定義するタグとカテゴリーが、OpenShift Container Platform クラスター内のすべてのホストと共有されるデータストアのみを一意に識別するようにします。

  5. 各障害ドメインのタグベースのデータストアを対象とするストレージポリシーを作成します。

    1. vCenter で、メインメニューから Policies and Profiles をクリックします。
    2. Policies and Profiles ページのナビゲーションペインで、VM Storage Policies をクリックします。
    3. CREATE をクリックします。
    4. ストレージポリシーの名前を入力します。
    5. ルールについては、Tag Placement rules を選択し、目的のデータストアを対象とするタグとカテゴリーを選択します (この例では、openshift-zonal-datastore タグ)。

      データストアは、ストレージ互換性テーブルにリストされています。

  6. 新しいゾーンストレージポリシーを使用する新しいストレージクラスを作成します。

    1. Storage > StorageClasses をクリックします。
    2. StorageClasses ページで、Create StorageClass をクリックします。
    3. Name に新しいストレージクラスの名前を入力します。
    4. Provisioner で、csi.vsphere.vmware.com を選択します。
    5. Additional parameters で、StoragePolicyName パラメーターの Value を、前に作成した新しいゾーンストレージポリシーの名前に設定します。
    6. Create をクリックします。

      出力例

      kind: StorageClass
      apiVersion: storage.k8s.io/v1
      metadata:
        name: zoned-sc 1
      provisioner: csi.vsphere.vmware.com
      parameters:
        StoragePolicyName: zoned-storage-policy 2
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      volumeBindingMode: WaitForFirstConsumer

      1
      新しいトポロジー対応ストレージクラス名。
      2
      ゾーンストレージポリシーを指定します。
      注記

      前述の YAML ファイルを編集し、コマンド oc create -f $FILE を実行して、ストレージクラスを作成することもできます。

5.22.9.5. Results

トポロジー対応ストレージクラスからの永続ボリュームクレーム (PVC) と PV の作成は完全にゾーンであり、Pod のスケジュール方法に応じて、それぞれのゾーンでデータストアを使用する必要があります。

~ $ oc get pv <pv-name> -o yaml

出力例

...
nodeAffinity:
  required:
    nodeSelectorTerms:
    - matchExpressions:
      - key: topology.csi.vmware.com/openshift-zone 1
        operator: In
        values:
        - <openshift-zone>
      -key: topology.csi.vmware.com/openshift-region 2
        operator: In
        values:
        - <openshift-region>
...
peristentVolumeclaimPolicy: Delete
storageClassName: <zoned-storage-class-name> 3
volumeMode: Filesystem
...

1 2
PV にはゾーン化されたキーがあります。
3
PV はゾーンストレージクラスを使用しています。

5.22.10. vSphere のスナップショットの最大数の変更

vSphere Container Storage Interface (CSI) のボリュームあたりのスナップショットのデフォルトの最大数は 3 です。1 ボリュームあたり最大 32 個まで変更できます。

ただし、スナップショットの最大値を増やすとパフォーマンスとのトレードオフが発生するため、パフォーマンスを向上させるには、ボリュームごとに 2 - 3 個のスナップショットのみを使用するようにしてください。

VMware スナップショットのパフォーマンスに関する推奨事項の詳細は、関連情報 を参照してください。

前提条件

  • 管理者権限でクラスターにアクセスできる。

手順

  1. 次のコマンドを実行して、現在の config map を確認します。

    $ oc -n openshift-cluster-csi-drivers get cm/vsphere-csi-config -o yaml

    出力例

    apiVersion: v1
    data:
      cloud.conf: |+
        # Labels with topology values are added dynamically via operator
        [Global]
        cluster-id = vsphere-01-cwv8p
    
        [VirtualCenter "vcenter.openshift.com"]
        insecure-flag           = true
        datacenters             = DEVQEdatacenter
        migration-datastore-url = ds:///vmfs/volumes/vsan:527320283a8c3163-2faa6dc5949a3a28/
    
    kind: ConfigMap
    metadata:
      creationTimestamp: "2024-03-06T09:46:40Z"
      name: vsphere-csi-config
      namespace: openshift-cluster-csi-drivers
      resourceVersion: "126687"

    この例では、スナップショットのグローバル最大数は設定されていないため、デフォルト値の 3 が適用されます。

  2. 次のコマンドを実行してスナップショットの制限を変更します。

    • global スナップショット制限を設定します。

      $ oc patch clustercsidriver/csi.vsphere.vmware.com --type=merge -p '{"spec":{"driverConfig":{"vSphere":{"globalMaxSnapshotsPerBlockVolume": 10}}}}'
      clustercsidriver.operator.openshift.io/csi.vsphere.vmware.com patched

      この例では、グローバル制限が 10 に変更されます (globalMaxSnapshotsPerBlockVolume が 10 に設定されています)。

    • 仮想ボリューム のスナップショット制限を設定します。

      このパラメーターは、仮想ボリュームデータストアのみに制限を設定します。仮想ボリュームの最大スナップショット制限は、設定されている場合はグローバル制約を上書きしますが、設定されていない場合はデフォルトでグローバル制限になります。

      $ oc patch clustercsidriver/csi.vsphere.vmware.com --type=merge -p '{"spec":{"driverConfig":{"vSphere":{"granularMaxSnapshotsPerBlockVolumeInVVOL": 5}}}}'
      clustercsidriver.operator.openshift.io/csi.vsphere.vmware.com patched

      この例では、仮想ボリュームの制限が 5 に変更されます (granularMaxSnapshotsPerBlockVolumeInVVOL が 5 に設定されています)。

    • vSAN スナップショットの制限を設定します。

      このパラメーターは、vSAN データストアのみに制限を設定します。vSAN の最大スナップショット制限は、設定されている場合はグローバル制約をオーバーライドしますが、設定されていない場合はデフォルトでグローバル制限になります。vSAN ESA セットアップでは、最大値 32 を設定できます。

      $ oc patch clustercsidriver/csi.vsphere.vmware.com --type=merge -p '{"spec":{"driverConfig":{"vSphere":{"granularMaxSnapshotsPerBlockVolumeInVSAN": 7}}}}'
      clustercsidriver.operator.openshift.io/csi.vsphere.vmware.com patched

      この例では、vSAN 制限が 7 に変更されます (granularMaxSnapshotsPerBlockVolumeInVSAN が 7 に設定されています)。

検証

  • 次のコマンドを実行して、行った変更が config map に反映されていることを確認します。

    $ oc -n openshift-cluster-csi-drivers get cm/vsphere-csi-config -o yaml

    出力例

    apiVersion: v1
    data:
      cloud.conf: |+
        # Labels with topology values are added dynamically via operator
        [Global]
        cluster-id = vsphere-01-cwv8p
    
        [VirtualCenter "vcenter.openshift.com"]
        insecure-flag           = true
        datacenters             = DEVQEdatacenter
        migration-datastore-url = ds:///vmfs/volumes/vsan:527320283a8c3163-2faa6dc5949a3a28/
    
        [Snapshot]
        global-max-snapshots-per-block-volume = 10 1
    
    kind: ConfigMap
    metadata:
      creationTimestamp: "2024-03-06T09:46:40Z"
      name: vsphere-csi-config
      namespace: openshift-cluster-csi-drivers
      resourceVersion: "127118"
      uid: f6968303-81d8-4048-99c1-d8211363d0fa

    1
    global-max-snapshots-per-block-volume が 10 に設定されました。

5.22.11. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.