Updating configuration setting of ESXi service vdtc with default values in vSphere ESXi 8.0 GA and later
search cancel

Updating configuration setting of ESXi service vdtc with default values in vSphere ESXi 8.0 GA and later

book

Article ID: 393094

calendar_today

Updated On:

Products

VMware vSphere ESXi 8.0

Issue/Introduction

Some of the vdtc properties' default value got updated in ESXi 8.0 GA release. In certain cases, the current configuration of the vdtc service may not reflect new system defined default values on the host upgraded to ESXi 8.0 GA and later versions.

If you prefer to use the system defined default values for the upgraded ESXi version, please follow the resolution provided below to set the current configuration. 

These are the vdtc properties that are identified to have the default values added, updated or removed in ESXi 8.0 GA.

/log/level
/vmacore/thread_pool/io_threads
/vmacore/thread_pool/max_threads
/vmacore/thread_pool/min_threads
/vmacore/thread_pool/thread_name_prefix
/working_dir

Default values across various ESXi version:

 

Setting 7.0 U3 8.0 GA 8.0 U1 8.0 U2 8.0 U3 9.0

/log/level

info verbose verbose verbose verbose verbose

/vmacore/thread_pool/io_threads

- 0 0 0 0 0

/vmacore/thread_pool/max_threads

- 3 3 3 3 3

/vmacore/thread_pool/min_threads

- 0 0 00   0

/vmacore/thread_pool/thread_name_prefix

- vdtc vdtc vdtc vdtc vdtc

/working_dir

- /var/log /var/log /var/log /var/log /var/log

Environment

VMware vSphere ESXi 8.0 GA and later

Cause

This issue occurs during the ESXi upgrade process, when certain default values of vdtc are either added, removed or updated in the upgraded version and the upgrade does not restore the new default values. This results in certain properties containing outdated default values in the current vdtc configuration.

Resolution

Follow the steps mentioned if you want to use default values for the vdtc configuration:
 
Steps to restore the default settings for the vdtc service:
 
To set default values in ESXi Version 8.0GA, 8.0U1 and 8.0U2:
 
1.  Create a temporary JSON file:
 
configstorecli config current get -c esx -g services -k vdtc -outfile vdtc.json
 
2.  Create a backup of the file containing the current configuration:
 
cp vdtc.json vdtc.json.bak
 
3.  Edit the exported file:
 
vi vdtc.json
 
4.  Find the /log/level value in the exported file. If the value is "info", then perform the below steps to use the default value.
 
Change the /log/level value to contain the new value:
 
Property: "/log/level". Existing value: info, New Value: verbose
 
/log setting should look like:
 
log": {
 
"level": "verbose",
 
}
 
5.  Add the following section to the json file and save it:
 
"vmacore": {
 
"thread_pool": {
 
"io_threads": 0,
 
"max_threads": 3,
 
"min_threads": 0,
 
"thread_name_prefix": "vdtc"
 
}
 
},
 
"working_dir": "/var/log/"
 
6.  Apply the changed configuration file to the database:
 
configstorecli config current set -c esx -g services -k vdtc -infile vdtc.json
 
7.  Restart vdtc service:
 
/etc/init.d/vdtc restart
 
8.  Verify the values set:
 
configstorecli config current get -c esx -g services -k vdtc
 
 
To set default values in ESXi Version 8.0U3 and 9.0:
 
In ESXi 8.0U3 and ESXi 9.0, when a property is missing in the current configuration, it will fall back to the system defined default values. Properties "/vmacore" and "/working_dir" default values are defined in the default configuration. In certain upgrade scenarios, these two properties might be missing in the upgraded ESXi 8.0 U3/ESXi 9.0 host. They are not required to be added again to the current configuration since they fallback to the system defined default values.
 
 
1.  Get the current configuration and check the "/log/level" value
 
configstorecli config current get -c esx -g services -k vdtc -p /log/level
 
2.  If the "/log/level" value is "info", then perform the below steps to use the default value.
 
configstorecli config current set -c esx -g services -k vdtc -p /log/level -v verbose
 
3.  Restart vdtc service:
 
/etc/init.d/vdtc restart
 
4.  Verify the values set:
 
configstorecli config current get -c esx -g services -k vdtc -p /log/level
 
verbose