2

I have a Windows VM that has time drift problems, and left to its own devices will drift by minutes per day.

I know there are issues with time on VMs, but I was hoping using the Meinberg NTP service would be successful.

It works, generally, in that the time gets corrected in one big step about once every 70mins when it's at about 10mins offset.

This has totally confused me as I thought NTP was meant to drift gently back towards the right time, and panic and die if the offset was more than 3 minutes.

So (a) what is happening and (b) how do I make it update more regularly?

annaken
  • 431
  • 4
  • 5

1 Answers1

2

First... NTP generally is designed to adjust your clock periodically... yes... but it's also generally understood that it only checks infrequently. Initial checks are usually once every few minutes... and after a baseline is established... it drops back to every few hours. If you query a NTP server too frequently, they're likely to simply ban you.

That being said, most virtual server frameworks include some sort of tool package that includes a tool that is used to keep the host & guests in sync. Hyper-V is the only animal that only plays nice with Windows. (Microsoft started making tools for Linux... then once the driver-base made it into the kernel source... completely stopped supporting it... forcing the linux kernel team to yank what MS added.) There are a few work-arounds for many such situations... but more info on what flavor of VM environment you're working with would help.

Edit It appears as if Microsoft has finally managed to get support for their hypervisor back into the linux kernel. (as of Windows 2012 R2) Lets hope they continue to support it. I have not tested it, and have not looked into all the details. But given Microsoft's history... I personally wouldn't rely on it just-yet.

As for answers to your last 2 questions... A) The clock drifts... because it isn't using the hardware clock... but rather a CPU-Tick based clock (most OSes do this) that is far more precise than the standard clock. Unfortunately... when this is done... the number of CPU ticks isn't a constant in a virtual machine... and so... the RTC clock will drift. Generally if you have an application query the hardware clock directly... it'l return pretty near spot-on. And B)... I'm not sure how to configure the "Meinberg NTP" service... but I also suggest you don't touch it.

TheCompWiz
  • 7,409
  • 17
  • 23
  • -1. See, the drivers are still in the linux kernel. Not janked. – TomTom Sep 18 '14 at 08:31
  • Not 'still' ... It appears Microsoft decided to become responsible for their code again. The Support *was* removed from the linux kernel for a time due to Microsoft not wanting to support the code they contributed to the kernel driver. I hope their contribution to the kernel continues to be supported... and doesn't get yanked again. – TheCompWiz Sep 18 '14 at 13:14