5.22. VMware vSphere CSI Driver Operator
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.17 では、ドライバーバージョンは 3.2.0 です。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 以降、または VMware Cloud Foundation 4.3 以降、8.0 Update 1 以降、または VMware Cloud Foundation 5.0 以降
- vCenter バージョン: 7.0 Update 2 以降、または VMware Cloud Foundation 4.3 以降、8.0 Update 1 以降、または VMware Cloud Foundation 5.0 以降
- ハードウェアバージョン 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 をアンインストールするには、以下を実行します。
- サードパーティーの vSphere CSI Driver(VMware vSphere Container Storage プラグイン) の Deployment および Daemonset オブジェクトを削除します。
- サードパーティーの vSphere CSI Driver で以前にインストールされた configmap およびシークレットオブジェクトを削除します。
サードパーティーの 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 を使用して暗号化するには、以下を実行します。
暗号化をサポートするデータストア内のデフォルトのストレージポリシーの名前を見つけます。
これは、VM の暗号化に使用されたポリシーと同じです。
このストレージポリシーを使用するストレージクラスを作成します。
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. タグベースの配置の使用
手順
タグベースの配置を使用して暗号化するには:
- vCenter で、このストレージクラスで使用できるデータストアにタグを付けるためのカテゴリーを作成します。また、作成されたカテゴリーの関連付け可能なエンティティーとして StoragePod (Datastore クラスター)、Datastore、および Folder が選択されていることを確認します。
- vCenter で、前に作成したカテゴリーを使用するタグを作成します。
- 以前に作成したタグを、ストレージクラスで使用できる各データストアに割り当てます。データストアが OpenShift Container Platform クラスターに参加しているホストと共有されていることを確認してください。
- vCenter で、メインメニューから Policies and Profiles をクリックします。
- Policies and Profiles ページのナビゲーションペインで、VM Storage Policies をクリックします。
- CREATE をクリックします。
- ストレージポリシーの名前を入力します。
- Enable host based rules および Enable tag based placement rules を選択します。
Next タブで:
- Encryption および Default Encryption Properties を選択します。
- 先ほど作成したタグカテゴリーを選択し、選択したタグを選択します。ポリシーが一致するデータストアを選択していることを確認します。
- ストレージポリシーを作成します。
ストレージポリシーを使用するストレージクラスを作成します。
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 の複数の vCenter サポート
高可用性を実現するために、共有ストレージを使用せずに複数の vSphere vCenter クラスターに OpenShift Container Platform をデプロイすると役立ちます。OpenShift Container Platform v4.17 以降では、この機能がサポートされています。
複数の vCenter は、インストール時 にのみ設定できます。インストール後に複数の vCenter を設定することは できません。
サポートされる vCenter クラスターの最大数は 3 です。
vSphere CSI の複数の vCenter サポートは、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
5.22.9.1. インストール時に複数の vCenter を設定する
インストール時に複数の vCenter を設定するには、以下を実行します。
- インストール時に複数の vSphere クラスターを指定します。詳細は、「vSphere のインストール設定パラメーター」を参照してください。
5.22.10. vSphere CSI トポロジーの概要
OpenShift Container Platform は、異なるゾーンおよびリージョンに OpenShift Container Platform for vSphere をデプロイする機能を提供します。この機能を使用することで、複数のコンピュートクラスターとデータセンターにデプロイできるため、単一障害点を回避するのに役立ちます。
これは、vCenter でゾーンとリージョンのカテゴリーを定義し、これらのゾーンとリージョンのカテゴリーのタグを作成して、コンピューティングクラスターなどのさまざまな障害ドメインにこれらのカテゴリーを割り当てることによって実現されます。適切なカテゴリーを作成し、vCenter オブジェクトにタグを割り当てたら、それらの障害ドメインで Pod のスケジュールを担当する仮想マシン (VM) を作成する追加のマシンセットを作成できます。
次の例では、1 つのリージョンと 2 つのゾーンを持つ 2 つの障害ドメインを定義しています。
計算クラスター | 障害ドメイン | 説明 |
---|---|---|
コンピュートクラスター: 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.10.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.10.2. インストール時の vSphere ストレージトポロジーの作成
5.22.10.2.1. 手順
- インストール時にトポロジーを指定します。Configuring regions and zones for a VMware vCenter セクションを参照してください。
追加のアクションは必要ありません。OpenShift Container Platform によって作成されるデフォルトのストレージクラスはトポロジーを認識し、さまざまな障害ドメインでのボリュームのプロビジョニングを許可します。
5.22.10.3. インストール後に vSphere ストレージトポロジーを作成する
5.22.10.3.1. 手順
VMware vCenter vSphere クライアント GUI で、適切なゾーンとリージョンのカテゴリーとタグを定義します。
vSphere では任意の名前でカテゴリーを作成できますが、OpenShift Container Platform では、トポロジーカテゴリーの定義に
openshift-region
名とopenshift-zone
名を使用することを強く推奨します。vSphere のカテゴリーとタグの詳細は、VMware vSphere のドキュメントを参照してください。
- OpenShift Container Platform で、障害ドメインを作成します。Specifying multiple regions and zones for your cluster on vSphere セクションを参照してください。
障害ドメイン全体のデータストアに割り当てるタグを作成します。
OpenShift Container Platform が複数の障害ドメインにまたがる場合、データストアがそれらの障害ドメイン間で共有されない可能性があります。この場合、永続ボリューム (PV) のトポロジーを意識したプロビジョニングが役立ちます。
-
vCenter で、データストアにタグを付けるためのカテゴリーを作成します。例:
openshift-zonal-datastore-cat
。カテゴリーが OpenShift Container Platform クラスターに参加するデータストアのタグ付けに一意に使用される場合、他のカテゴリー名を使用できます。また、作成したカテゴリーの関連付け可能なエンティティーとしてStoragePod
、Datastore
、およびFolder
が選択されていることを確認します。 -
vCenter で、以前に作成したカテゴリーを使用するタグを作成します。この例では、タグ名
openshift-zonal-datastore
を使用しています。 以前に作成したタグ (この例では
openshift-zonal-datastore
) を、動的プロビジョニングと見なされる障害ドメイン内の各データストアに割り当てます。注記データストアのカテゴリーとタグには任意の名前を使用できます。この例で使用されている名前は、推奨事項として提供されています。定義するタグとカテゴリーが、OpenShift Container Platform クラスター内のすべてのホストと共有されるデータストアのみを一意に識別するようにします。
-
vCenter で、データストアにタグを付けるためのカテゴリーを作成します。例:
必要に応じて、各障害ドメイン内のタグベースのデータストアを対象とするストレージポリシーを作成します。
- vCenter で、メインメニューから Policies and Profiles をクリックします。
- Policies and Profiles ページのナビゲーションペインで、VM Storage Policies をクリックします。
- CREATE をクリックします。
- ストレージポリシーの名前を入力します。
ルールについては、Tag Placement rules を選択し、目的のデータストアを対象とするタグとカテゴリーを選択します (この例では、
openshift-zonal-datastore
タグ)。データストアは、ストレージ互換性テーブルにリストされています。
新しいゾーンストレージポリシーを使用する新しいストレージクラスを作成します。
- Storage > StorageClasses をクリックします。
- StorageClasses ページで、Create StorageClass をクリックします。
- Name に新しいストレージクラスの名前を入力します。
- Provisioner で、csi.vsphere.vmware.com を選択します。
- Additional parameters で、StoragePolicyName パラメーターの Value を、前に作成した新しいゾーンストレージポリシーの名前に設定します。
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
注記前述の YAML ファイルを編集し、コマンド
oc create -f $FILE
を実行して、ストレージクラスを作成することもできます。
5.22.10.4. インフラトポロジーを使用しない vSphere ストレージトポロジーの作成
OpenShift Container Platform は、トポロジー対応セットアップで障害ドメインを指定するためにインフラストラクチャーオブジェクトを使用することを推奨します。インフラストラクチャーオブジェクトで障害ドメインを指定し、同時に ClusterCSIDriver
オブジェクトでトポロジーカテゴリーを指定することは、サポートされていない操作です。
5.22.10.4.1. 手順
VMware vCenter vSphere クライアント GUI で、適切なゾーンとリージョンのカテゴリーとタグを定義します。
vSphere では任意の名前でカテゴリーを作成できますが、OpenShift Container Platform では、トポロジーを定義するために
openshift-region
およびopenshift-zone
名を使用することを強く推奨します。vSphere のカテゴリーとタグの詳細は、VMware vSphere のドキュメントを参照してください。
Container Storage Interface (CSI) ドライバーがこのトポロジーを検出できるようにするには、
clusterCSIDriver
オブジェクトの YAML ファイルのdriverConfig
セクションを編集します。-
以前に作成した
openshift-zone
およびopenshift-region
カテゴリーを指定します。 driverType
をvSphere
に設定します。~ $ 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
-
以前に作成した
次のコマンドを実行して、
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
オブジェクトにはトポロジーキーが含まれている必要があります。障害ドメイン全体のデータストアに割り当てるタグを作成します。
OpenShift Container Platform が複数の障害ドメインにまたがる場合、データストアがそれらの障害ドメイン間で共有されない可能性があります。この場合、永続ボリューム (PV) のトポロジーを意識したプロビジョニングが役立ちます。
-
vCenter で、データストアにタグを付けるためのカテゴリーを作成します。例:
openshift-zonal-datastore-cat
。カテゴリーが OpenShift Container Platform クラスターに参加するデータストアのタグ付けに一意に使用される場合、他のカテゴリー名を使用できます。また、作成したカテゴリーの関連付け可能なエンティティーとしてStoragePod
、Datastore
、およびFolder
が選択されていることを確認します。 -
vCenter で、以前に作成したカテゴリーを使用するタグを作成します。この例では、タグ名
openshift-zonal-datastore
を使用しています。 以前に作成したタグ (この例では
openshift-zonal-datastore
) を、動的プロビジョニングと見なされる障害ドメイン内の各データストアに割り当てます。注記カテゴリーとタグには、好きな名前を使用できます。この例で使用されている名前は、推奨事項として提供されています。定義するタグとカテゴリーが、OpenShift Container Platform クラスター内のすべてのホストと共有されるデータストアのみを一意に識別するようにします。
-
vCenter で、データストアにタグを付けるためのカテゴリーを作成します。例:
各障害ドメインのタグベースのデータストアを対象とするストレージポリシーを作成します。
- vCenter で、メインメニューから Policies and Profiles をクリックします。
- Policies and Profiles ページのナビゲーションペインで、VM Storage Policies をクリックします。
- CREATE をクリックします。
- ストレージポリシーの名前を入力します。
ルールについては、Tag Placement rules を選択し、目的のデータストアを対象とするタグとカテゴリーを選択します (この例では、
openshift-zonal-datastore
タグ)。データストアは、ストレージ互換性テーブルにリストされています。
新しいゾーンストレージポリシーを使用する新しいストレージクラスを作成します。
- Storage > StorageClasses をクリックします。
- StorageClasses ページで、Create StorageClass をクリックします。
- Name に新しいストレージクラスの名前を入力します。
- Provisioner で、csi.vsphere.vmware.com を選択します。
- Additional parameters で、StoragePolicyName パラメーターの Value を、前に作成した新しいゾーンストレージポリシーの名前に設定します。
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
注記前述の YAML ファイルを編集し、コマンド
oc create -f $FILE
を実行して、ストレージクラスを作成することもできます。
5.22.10.5. 結果
トポロジー対応ストレージクラスからの永続ボリュームクレーム (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 ...
5.22.11. vSphere のスナップショットの最大数の変更
vSphere Container Storage Interface (CSI) のボリュームあたりのスナップショットのデフォルトの最大数は 3 です。1 ボリュームあたり最大 32 個まで変更できます。
ただし、スナップショットの最大値を増やすとパフォーマンスとのトレードオフが発生するため、パフォーマンスを向上させるには、ボリュームごとに 2 - 3 個のスナップショットのみを使用するようにしてください。
VMware スナップショットのパフォーマンスに関する推奨事項の詳細は、関連情報 を参照してください。
前提条件
- 管理者権限でクラスターにアクセスできる。
手順
次のコマンドを実行して、現在の 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 が適用されます。
次のコマンドを実行してスナップショットの制限を変更します。
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.12. vSphere でのストレージの無効化と有効化
場合によって、クラスター管理者は Day 2 運用として VMware vSphere Container Storage Interface (CSI) ドライバーを無効にし、vSphere CSI ドライバーが vSphere セットアップと接続されないようにする必要があります。
vSphere 上のストレージの無効化および有効化は、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
5.22.12.1. vSphere でストレージを無効または有効にした場合の影響
vSphere でストレージを無効および有効にした場合の影響は、次の表で説明します。
無効化 | 手順 5 の有効化に進みます。 |
---|---|
| * vSphere CSI Driver Operator は CSI ドライバーを再インストールします。 * 必要に応じて、vSphere CSI Driver Operator が vSphere ストレージポリシーを作成します。 |
5.22.12.2. vSphere でのストレージの無効化と有効化
この手順を実行する前に、「vSphere でストレージを無効または有効にした場合の影響」の表と、環境への潜在的な影響を慎重に確認してください。
手順
vSphere 上のストレージを無効または有効にするには、以下を実行します。
- Administration > CustomResourceDefinitions をクリックします。
- CustomResourceDefinitions ページの Name ドロップダウンボックスの横に、"clustercsidriver" と入力します。
- CRD ClusterCSIDriver をクリックします。
- Instances タブをクリックします。
- csi.vsphere.vmware.com をクリックします。
- YAML タブをクリックします。
spec.managementState
の値をRemoved
またはManaged
に変更します。-
Removed
: ストレージが無効になっています -
Managed
: ストレージが有効になっています
-
- Save をクリックします。
ストレージを無効にする場合は、ドライバーが削除されていることを確認してください。
- Workloads > Pods をクリックします。
Pods ページで、Name フィルターボックスに "vmware-vsphere-csi-driver" と入力します。
表示される項目は Operator のみです。例: " vmware-vsphere-csi-driver-operator-559b97ffc5-w99fm"