14.4.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>

    各項目の説明:

    <target_namespace>
    チェックアップを実行する namespace を指定します。

手順

  1. ストレージチェックアップ用の 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
  2. ターゲット namespace に ServiceAccount、Role、RoleBinding マニフェストを適用します。

    $ oc apply -n <target_namespace> -f <storage_sa_roles_rolebinding>.yaml
  3. ConfigMap と 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
  4. ターゲット namespace に ConfigMap と Job マニフェストファイルを適用し、チェックアップを実行します。

    $ oc apply -n <target_namespace> -f <storage_configmap_job>.yaml
  5. ジョブが完了するまで待ちます。

    $ oc wait job storage-checkup -n <target_namespace> --for condition=complete --timeout 10m
  6. 次のコマンドを実行して、チェックアップの結果を確認します。

    $ 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"
      status.failureReason: ""
      status.startTimestamp: "2023-07-31T13:14:38Z"
      status.completionTimestamp: "2023-07-31T13:19:41Z"
      status.result.cnvVersion: 4.21.2
      status.result.defaultStorageClass: trident-nfs
      status.result.goldenImagesNoDataSource: <data_import_cron_list>
      status.result.goldenImagesNotUpToDate: <data_import_cron_list>
      status.result.ocpVersion: 4.21.0
      status.result.pvcBound: "true"
      status.result.storageProfileMissingVolumeSnapshotClass: <storage_class_list>
      status.result.storageProfilesWithEmptyClaimPropertySets: <storage_profile_list>
      status.result.storageProfilesWithSmartClone: <storage_profile_list>
      status.result.storageProfilesWithSpecClaimPropertySets: <storage_profile_list>
      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>
      status.result.vmsWithUnsetEfsStorageClass: <vm_list>
    • data.status.succeeded は、チェックが成功したか (true) 失敗したか (false) を定義します。
    • data.status.failureReason は、チェックが失敗した場合の失敗理由を定義します。
    • data.status.startTimestamp は、RFC 3339 の時刻形式で、チェックが開始された時刻を定義します。
    • data.status.completionTimestamp は、RFC 3339 の時刻形式で、チェックアップが完了した時刻を定義します。
    • data.status.result.cnvVersion は、OpenShift Virtualization のバージョンを定義します。
    • data.status.result.defaultStorageClass は、デフォルトのストレージクラスが存在するかどうかを定義します。
    • data.status.result.goldenImagesNoDataSource は、データソースが準備できていないゴールデンイメージのリストを定義します。
    • data.status.result.goldenImagesNotUpToDate は、データインポート cron が最新ではないゴールデンイメージのリストを定義します。
    • data.status.result.ocpVersion は、OpenShift Container Platform のバージョンを定義します。
    • data.status.result.pvcBound は、10Mi の PVC が作成され、プロビジョナーによってバインドされたかどうかを定義します。
    • data.status.result.storageProfileMissingVolumeSnapshotClass は、スナップショットベースのクローンを使用しているが VolumeSnapshotClass が欠落しているストレージプロファイルのリストを定義します。
    • data.status.result.storageProfilesWithEmptyClaimPropertySets は、プロビジョナーが不明なストレージプロファイルのリストを定義します。
    • data.status.result.storageProfilesWithSmartClone は、スマートクローン (CSI/スナップショット) をサポートするストレージプロファイルのリストを定義します。
    • data.status.result.storageProfilesWithSpecClaimPropertySets は、仕様でオーバーライドされたストレージプロファイル claimPropertySets のリストを定義します。
    • data.status.result.vmsWithNonVirtRbdStorageClass は、仮想化ストレージクラスが存在する場合に、Ceph RBD ストレージクラスを使用する仮想マシンのリストを定義します。
    • data.status.result.vmsWithUnsetEfsStorageClass は、ストレージクラスで GID と UID が設定されていない Elastic File Store (EFS) ストレージクラスを使用する仮想マシンのリストを定義します。
  7. 以下のコマンドを実行して、以前に作成したジョブおよび config map を削除します。

    $ oc delete job -n <target_namespace> storage-checkup
    $ oc delete config-map -n <target_namespace> storage-checkup-config
  8. オプション: 別のチェックアップを実行する予定がない場合は、ServiceAccount、Role、RoleBinding マニフェストを削除します。

    $ oc delete -f <storage_sa_roles_rolebinding>.yaml
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る