12.2.5. 스토리지 점검 실행


사전 정의된 점검을 사용하여 OpenShift Container Platform 클러스터 스토리지가 OpenShift Virtualization 워크로드를 실행하도록 최적으로 구성되었는지 확인합니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 클러스터 관리자가 다음 예와 같이 스토리지 점검 서비스 계정 및 네임스페이스에 필요한 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
    점검을 실행할 네임스페이스입니다.

프로세스

  1. 스토리지 점검에 대한 ServiceAccount,Role, RoleBinding 매니페스트 파일을 생성합니다.

    예 12.3. 서비스 계정, 역할 및 역할 바인딩 매니페스트의 예

    ---
    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. 대상 네임스페이스에 ServiceAccount,Role, RoleBinding 매니페스트를 적용합니다.

    $ oc apply -n <target_namespace> -f <storage_sa_roles_rolebinding>.yaml
  3. ConfigMap작업 매니페스트 파일을 생성합니다. 구성 맵에는 검사 작업에 대한 입력 매개변수가 포함되어 있습니다.

    입력 구성 맵 및 작업 매니페스트 예

    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: storage-checkup-config
      namespace: $CHECKUP_NAMESPACE
    data:
      spec.timeout: 10m
    ---
    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. 대상 네임스페이스에 ConfigMap작업 매니페스트 파일을 적용하여 점검을 실행합니다.

    $ 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

    출력 구성 맵 예(성공)

    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.16.2
      status.result.defaultStorageClass: trident-nfs 
    5
    
      status.result.goldenImagesNoDataSource: <data_import_cron_list> 
    6
    
      status.result.goldenImagesNotUpToDate: <data_import_cron_list> 
    7
    
      status.result.ocpVersion: 4.16.0
      status.result.storageMissingVolumeSnapshotClass: <storage_class_list>
      status.result.storageProfilesWithEmptyClaimPropertySets: <storage_profile_list> 
    8
    
      status.result.storageProfilesWithSpecClaimPropertySets: <storage_profile_list>
      status.result.storageWithRWX: |-
        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> 
    9
    
      status.result.vmsWithUnsetEfsStorageClass: <vm_list> 
    10

    1
    검사 성공(true)인지(false)인지 여부를 지정합니다.
    2
    검사에 실패하는 경우 실패 이유
    3
    검사 시작 시간(RFC 3339 시간 형식)입니다.
    4
    검사 완료 시간(RFC 3339 시간 형식)입니다.
    5
    기본 스토리지 클래스가 있는지 여부를 지정합니다.
    6
    데이터 소스가 준비되지 않은 골든 이미지 목록입니다.
    7
    데이터 가져오기 cron이 최신 상태가 아닌 골든 이미지 목록입니다.
    8
    알 수 없는 프로비저너가 있는 스토리지 프로필 목록입니다.
    9
    가상화 스토리지 클래스가 있는 경우 Ceph RBD 스토리지 클래스를 사용하는 가상 머신 목록입니다.
    10
    스토리지 클래스에 GID 및 UID가 설정되지 않은 EFS(Elastic File Store) 스토리지 클래스를 사용하는 가상 머신 목록입니다.
  7. 다음 명령을 실행하여 이전에 생성한 작업 및 구성 맵을 삭제합니다.

    $ 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은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동