monitoring

CDIDefaultStorageClassDegraded

Meaning

This alert fires if the default storage class does not support smart cloning (CSI or snapshot-based) or the ReadWriteMany access mode. The alert does not fire if at least one default storage class supports these features.

A default virtualization storage class has precedence over a default Kubernetes storage class for creating a VirtualMachine disk image.

Impact

If the default storage class does not support smart cloning, the default cloning method is host-assisted cloning, which is much less efficient.

If the default storage class does not support ReadWriteMany, virtual machines (VMs) cannot be live migrated.

Diagnosis

  1. Get the default virtualization storage class by running the following command:

    $ export CDI_DEFAULT_VIRT_SC="$(kubectl get sc -o jsonpath='{.items[?(.metadata.annotations.storageclass\.kubernetes\.io\/is-default-class=="true")].metadata.name}')"
    
  2. If a default virtualization storage class exists, check that it supports ReadWriteMany by running the following command:

    $ kubectl get storageprofile $CDI_DEFAULT_VIRT_SC -o jsonpath='{.status.claimPropertySets}' | grep ReadWriteMany
    
  3. If there is no default virtualization storage class, get the default Kubernetes storage class by running the following command:

    $ export CDI_DEFAULT_K8S_SC="$(kubectl get sc -o jsonpath='{.items[?(.metadata.annotations.storageclass\.kubernetes\.io\/is-default-class=="true")].metadata.name}')"
    
  4. If a default Kubernetes storage class exists, check that it supports ReadWriteMany by running the following command:

    $ kubectl get storageprofile $CDI_DEFAULT_VIRT_SC -o jsonpath='{.status.claimPropertySets}' | grep ReadWriteMany
    

See doc for details about smart clone prerequisites.

Mitigation

Ensure that you have a default (Kubernetes or virtualization) storage class, and that the default storage class supports smart cloning and ReadWriteMany.

If you cannot resolve the issue, see the following resources: