[ntp:questions] Win7: ntpd adjusting time backwards
jmostert at xs4all.nl
Thu Dec 13 20:27:02 UTC 2012
On 2012-12-13 09:53, Mischanko, Edward T wrote:
> I have always read that NTP should not be run Virtual Machines. NTP should
> only be running on the "Real" machine with a hardware system clock. If the
> hardware machine is in synch, then the VM on the hardware machine should also
> be in synch.
That can only work if there's some sort of driver or integration patch that
makes the guest OS retrieve its time directly from the host's hardware clock.
Otherwise, the guest OS maintains its own notion of time based on whatever
hardware is being virtualized.
In the case of Windows on VMWare (which is what I'm using), Windows simply
maintains time just like it does on actual hardware, which is by taking the
initial time from the CMOS and then maintaining ticks with timer interrupts.
VMWare will simply emulate the interrupts, but Windows keeps its own time. Thus
the guest OS clock is subject to losing or gaining ticks depending on the
hypervisor's scheduling, which has nothing to do with the host's clock.
VMWare has a feature that integrates time synchronization with the guest OS, but
this is not meant as an accurate timekeeper, just as a stopgap measure for
keeping up the clock if the VM lags behind too far. It will look once every
minute to see if the guest is too far behind, and if it is, it will simply step
the clock to the "correct" time. This is far more crude than what ntpd does.
It's still important to keep the host clock synchronized as well, to make sure
the VM has accurate time if it's turned off or migrated to another host in the
cluster, but (at least in the case of VMWare) you cannot count on the host clock
to keep the guest clock accurate to the kind of accuracy that NTP can achieve.
VMWare has a whitepaper covering it in more detail, see
More information about the questions