We have an ESX 3.5 host here which is running RHEL4 VMs, and at the moment, we're having some issues with time drift with some database items on the VMs. Since the database is doing a lot of timestamping, and code relies on timestamps to be very accurate, we cannot afford to have much in the way of time drift in anyway.
We have the VMs configured individually with ntp.conf to point to a time server on the local network, but some time drift still occurs.
My question, is it best to enable the 'synchronise guest time with host' option, and leave ntp on the hosts turned off?
Or would it be better to just configure ntp.conf on each VM to point to the same time server as the ESX host?
Or a combination of enable 'synchronisation guest time with host', and configure ntp to point to the same time server as ESX host?
You don't want to do both. If you have a number of vm's, use the tools to sync with the host, and make sure your host is sync'ing with an ntp source. Also make sure that your hwclock is in sync with your system clock 'hwclock --systohc'
For some additional background on the topic, you may want to take a look at the following whitepaper: http://www.vmware.com/pdf/vmware_timekeeping.pdf
A large amount of the info in the document went straight over my head, but there is some really good, practical advice in it too (including information that agrees strongly with the comments posted above.)
Edit: it's worth noting that the VMware feature to synchronise VM times with the host only sets time forward, never backward. If you have a problem with the clock running too fast, you will need to make some adjustments to the kernel parameters of your VM, was described in the document above.
Message was edited by: jhanekom