Lifecycle management functionality relies on compliance checks. These checks involve various processes, including a Python script called 'precheck.py' which is part of the compliance check framework.
The precheck.py script executes concurrently on all hosts in the cluster, running separately for each ISO on each host during compliance checks.
ISOs are manually uploaded to the lifecycle manager. Once an ISO has passed compliance checks or has been remediated, it can be safely removed from the lifecycle manager. Removing compliant ISOs prevents further I/O activity associated with the precheck.py script. Importantly, other patch and express patch content obtained from VMware's online depot does not trigger the execution of the precheck.py script.
How often do compliance checks need to run ?
Check compliance does not need to be scheduled frequently.
From the release history in Build numbers and versions of VMware ESXi/ESX (2143832), the spacing between two releases is approximately 2 weeks. It is released monthly or once in two months.
A monthly compliance check should be adequate. Additionally, all patch and express patch releases are not based on ISO, which means they will not result in such I/O issues.
Workaround:
1. Check if there are duplicate compliance checks in the VCDB. (Note ID 3 and 4 in the example below): /opt/vmware/vpostgres/current/bin/psql -d VCDB postgres -c "select scheduledtask_id,name,description from vpx_scheduledtask;"
scheduledtask_id | name | description ------------------+--------------------------------------------------+------------------------------------------------------------ 2 | VMware vSphere Update Manager Check Notification | A predefined scheduled task to check update notifications. 1 | VMware vSphere Update Manager Update Download | A predefined scheduled task to download software updates. 3 | Automatic compliance check DEV_Cluster | Check for new updates 4 | Automatic compliance check | (4 rows)