VM storage Policies Compliance displaying exclamatory (warning) state at the cluster level on vSAN environment
search cancel

VM storage Policies Compliance displaying exclamatory (warning) state at the cluster level on vSAN environment

book

Article ID: 434315

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

  • Go to vCenter Web client UI > Hosts and Clusters view > Select the Cluster\Datacenter\vCenter > VM list and the column 'VM storage Policies Compliance' displays exclamatory (warning/non-compliant) state at the cluster level as below,


  • Select affected Cluster from vCenter Web client UI > Hosts and Clusters view > (affected) Cluster > Monitor > vSAN > Skyline Health > Retest shows, Cluster Health Core 100% healthy.

  • 'VM storage Policies Compliance' shows 'Compliant' in below scenarios,
    • When reviewing other than affected cluster.
    • When reviewing from vCenter Web client UI > Hosts and Clusters view > Select VM > Summary  within the affected cluster other than the affected 1 or more VMs

  • Select the affected VM, right click > VM Polices > Edit VM Storage Policies... > Select New storage policy throws error, "Failed to update vSAN storage policy"

  • less /var/log/vmware/vmware-sps/sps.log, shows below,

    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.sps.pbm.compliance.ComplianceProviderImpl - Timer stopped: checkCompliance, Time taken: 1547 ms.
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.pbm.compliance.impl.ComplianceManagerImpl - Timer stopped: fetchOrCheckRollupComplianceResult, Time taken: 1740 ms.
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] ERROR opId= com.vmware.pbm.compliance.impl.ComplianceManagerImpl - Exception occured. Entities: [(pbm.ServerObjectRef) {
       dynamicType = null,
       dynamicProperty = null,
       objectType = virtualMachine,
       key = vm-####,
       serverUuid = null
    ...
    ...
    java.lang.IllegalArgumentException: null
            at com.google.common.base.Preconditions.checkArgument(Preconditions.java:129) ~[guava-32.1.0-jre.jar:?]
            at com.vmware.pbm.compliance.ComplianceUtil.mergeComplianceResultInt(ComplianceUtil.java:595) ~[pbm-1.0.jar:?]
     ...
     ...
            at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-5] INFO  opId= com.vmware.vim.storage.common.task.CustomThreadPoolExecutor - [VLSI] Request took 3811 millis to execute. | Slow run() method execution Alert


  • less /var/log/vmware/vmware-sps/sps.log | grep CustomThreadPoolExecutor | grep VCQUERY, shows queue size has reached 100 as below,

    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.vim.storage.common.task.CustomThreadPoolExecutor - [VCQUERY] Active thread count is: 32, queue size: 98
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.vim.storage.common.task.CustomThreadPoolExecutor - [VCQUERY] Active thread count is: 32, queue size: 98
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.vim.storage.common.task.CustomThreadPoolExecutor - [VCQUERY] Active thread count is: 32, queue size: 99
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.vim.storage.common.task.CustomThreadPoolExecutor - [VCQUERY] Active thread count is: 32, queue size: 99
    YYYY-MM-DDTHH:MM:SS [pool-4-thread-9] INFO  opId= com.vmware.vim.storage.common.task.CustomThreadPoolExecutor - [VCQUERY] Active thread count is: 32, queue size: 100

Environment

vCenter 8.x

Cause

Storage policy association for the VM was not set proper when the VM was deployed or configured.

Resolution

Follow these steps to resolve the issue,

Step 1: Identify the affected VMs

  1. Log in to the vSphere Client.

  2. Navigate to the Hosts and Clusters view.

  3. Select a VM and open the Summary tab.

  4. Check the VM Storage Policies Compliance widget. Note any VMs that are displaying a Non-Compliant status.

Step 2: Migrate the VM to alternate storage

  1. Right-click the affected VM and select Migrate.

  2. Choose Change storage only (Storage vMotion) and select a different datastore. Ensure you select your desired VM storage policy from the dropdown menu during this process.

Note: If your environment only has a single vSAN datastore available, select Change both compute resource and storage instead, and migrate the VM to an entirely different cluster.

Step 3: Verify the initial compliance status

  1. Wait for the relocation task to finish successfully.

  2. Navigate back to the VM's Summary tab.

  3. Verify that the VM Storage Policies Compliance status has updated to Compliant.

Step 4: Restore the VM to its original location

  1. Right-click the VM and select Migrate again.

  2. Move the VM back to its original datastore (and original cluster, if applicable) using the same migration method as Step 2.

  3. Once the task finishes, check the Summary tab one last time to confirm the status remains Compliant.

Step 5: Repeat for remaining VMs

  • Repeat Steps 2 through 4 for any additional VMs you identified as non-compliant in Step 1.