14.2.2.3. コマンドラインを使用したストレージチェックアップの実行
事前定義されたチェックアップを使用して、OpenShift Container Platform クラスターストレージが OpenShift Virtualization ワークロードを実行するために最適に設定されていることを確認します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 クラスター管理者が、次の例のように、ストレージチェックアップのサービスアカウントと namespace に必要な
cluster-reader権限を作成した。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kubevirt-storage-checkup-clustereader roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-reader subjects: - kind: ServiceAccount name: storage-checkup-sa namespace: <target_namespace>1 - 1
- チェックアップの実行対象の namespace。
手順
ストレージチェックアップ用の
ServiceAccount、Role、およびRoleBindingマニフェストファイルを作成します。サービスアカウント、ロール、およびロールバインディングマニフェストの例:
--- apiVersion: v1 kind: ServiceAccount metadata: name: storage-checkup-sa --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: storage-checkup-role rules: - apiGroups: [ "" ] resources: [ "configmaps" ] verbs: ["get", "update"] - apiGroups: [ "kubevirt.io" ] resources: [ "virtualmachines" ] verbs: [ "create", "delete" ] - apiGroups: [ "kubevirt.io" ] resources: [ "virtualmachineinstances" ] verbs: [ "get" ] - apiGroups: [ "subresources.kubevirt.io" ] resources: [ "virtualmachineinstances/addvolume", "virtualmachineinstances/removevolume" ] verbs: [ "update" ] - apiGroups: [ "kubevirt.io" ] resources: [ "virtualmachineinstancemigrations" ] verbs: [ "create" ] - apiGroups: [ "cdi.kubevirt.io" ] resources: [ "datavolumes" ] verbs: [ "create", "delete" ] - apiGroups: [ "" ] resources: [ "persistentvolumeclaims" ] verbs: [ "delete" ] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: storage-checkup-role subjects: - kind: ServiceAccount name: storage-checkup-sa roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: storage-checkup-roleターゲット namespace に
ServiceAccount、Role、RoleBindingマニフェストを適用します。$ oc apply -n <target_namespace> -f <storage_sa_roles_rolebinding>.yamlConfigMapとJobマニフェストファイルを作成します。この config map に、チェックアップジョブの入力パラメーターを含めます。入力 config map とジョブマニフェストの例:
--- apiVersion: v1 kind: ConfigMap metadata: name: storage-checkup-config namespace: $CHECKUP_NAMESPACE data: spec.timeout: 10m spec.param.storageClass: ocs-storagecluster-ceph-rbd-virtualization spec.param.vmiTimeout: 3m --- apiVersion: batch/v1 kind: Job metadata: name: storage-checkup namespace: $CHECKUP_NAMESPACE spec: backoffLimit: 0 template: spec: serviceAccount: storage-checkup-sa restartPolicy: Never containers: - name: storage-checkup image: quay.io/kiagnose/kubevirt-storage-checkup:main imagePullPolicy: Always env: - name: CONFIGMAP_NAMESPACE value: $CHECKUP_NAMESPACE - name: CONFIGMAP_NAME value: storage-checkup-configターゲット namespace に
ConfigMapとJobマニフェストファイルを適用し、チェックアップを実行します。$ oc apply -n <target_namespace> -f <storage_configmap_job>.yamlジョブが完了するまで待ちます。
$ oc wait job storage-checkup -n <target_namespace> --for condition=complete --timeout 10m次のコマンドを実行して、チェックアップの結果を確認します。
$ oc get configmap storage-checkup-config -n <target_namespace> -o yaml出力 config map の例 (成功):
apiVersion: v1 kind: ConfigMap metadata: name: storage-checkup-config labels: kiagnose/checkup-type: kubevirt-storage data: spec.timeout: 10m status.succeeded: "true"1 status.failureReason: ""2 status.startTimestamp: "2023-07-31T13:14:38Z"3 status.completionTimestamp: "2023-07-31T13:19:41Z"4 status.result.cnvVersion: 4.20.25 status.result.defaultStorageClass: trident-nfs6 status.result.goldenImagesNoDataSource: <data_import_cron_list>7 status.result.goldenImagesNotUpToDate: <data_import_cron_list>8 status.result.ocpVersion: 4.20.09 status.result.pvcBound: "true"10 status.result.storageProfileMissingVolumeSnapshotClass: <storage_class_list>11 status.result.storageProfilesWithEmptyClaimPropertySets: <storage_profile_list>12 status.result.storageProfilesWithSmartClone: <storage_profile_list>13 status.result.storageProfilesWithSpecClaimPropertySets: <storage_profile_list>14 status.result.storageProfilesWithRWX: |- ocs-storagecluster-ceph-rbd ocs-storagecluster-ceph-rbd-virtualization ocs-storagecluster-cephfs trident-iscsi trident-minio trident-nfs windows-vms status.result.vmBootFromGoldenImage: VMI "vmi-under-test-dhkb8" successfully booted status.result.vmHotplugVolume: |- VMI "vmi-under-test-dhkb8" hotplug volume ready VMI "vmi-under-test-dhkb8" hotplug volume removed status.result.vmLiveMigration: VMI "vmi-under-test-dhkb8" migration completed status.result.vmVolumeClone: 'DV cloneType: "csi-clone"' status.result.vmsWithNonVirtRbdStorageClass: <vm_list>15 status.result.vmsWithUnsetEfsStorageClass: <vm_list>16 - 1
- チェックアップが成功したか (
true)、失敗したか (false) を示します。 - 2
- チェックアップが失敗した場合の失敗の理由。
- 3
- チェックアップが開始した時刻 (RFC 3339 時刻形式)。
- 4
- チェックアップが完了した時刻 (RFC 3339 時刻形式)。
- 5
- OpenShift Virtualization のバージョン。
- 6
- デフォルトのストレージクラスがあるかどうかを指定します。
- 7
- データソースの準備ができていないゴールデンイメージのリスト。
- 8
- データインポート cron が最新ではないゴールデンイメージのリスト。
- 9
- OpenShift Container Platform のバージョン。
- 10
- 10 Mi の PVC が作成され、プロビジョナーによってバインドされているかどうかを指定します。
- 11
- スナップショットベースのクローンを使用しているが、VolumeSnapshotClass が欠落しているストレージプロファイルのリスト。
- 12
- 不明なプロビジョナーを持つストレージプロファイルのリスト。
- 13
- スマートクローン (CSI/スナップショット) をサポートするストレージプロファイルのリスト。
- 14
- ストレージプロファイル spec でオーバーライドされる claimPropertySets のリスト。
- 15
- 仮想化ストレージクラスが存在する場合に Ceph RBD ストレージクラスを使用する仮想マシンのリスト。
- 16
- GID と UID がストレージクラスに設定されていない Elastic File Store (EFS) ストレージクラスを使用する仮想マシンのリスト。
以下のコマンドを実行して、以前に作成したジョブおよび config map を削除します。
$ oc delete job -n <target_namespace> storage-checkup$ oc delete config-map -n <target_namespace> storage-checkup-configオプション: 別のチェックアップを実行する予定がない場合は、
ServiceAccount、Role、RoleBindingマニフェストを削除します。$ oc delete -f <storage_sa_roles_rolebinding>.yaml