We have a number of single server virtualization solutions where the VMs are running at quite a high load point.
This tends to create timing issues with the VMs not being able to keep up with keeping time. In some cases we have SQL VMs that can skew time visibly.
So, we need a reliable time source. We are not able to set pool.ntp.org as the time source for the primary DC in this situation as it would not be keeping time very well either thus requiring a more frequent polling interval. Do that with ntp.org and the server will receive a Kiss-of-Death packet in short order.
So, we configure our Hyper-V host to be an authoritative time server polling ntp.org's servers every 30 minutes.
To do so we need to set things up on the host.
- Allow UDP Port 123 Inbound on the firewall
- Configure the host as a time server: KB816042 How to configure an authoritative time server in Windows Server
- We run the Fix It Myself steps
- Verify Type is set to NTP
We use this free tool to test our setup from a client system:
Drop in the Hyper-V host's name and we should see the following:
Once we have a successful time poll we run the following command set on the PDCe VM as per our previous blog post on time skew:
- w32tm /config /syncfromflags:manual "/manualpeerlist:Hyper-V.DOMAIN.LOCAL,0x1" /reliable:yes
- w32tm /config /update
- net stop w32time && net start w32time
- w32tm /resync /force
- w32tm /query /source
The final result should be the Hyper-V server as source time.
We then create a batch file with the step 4 command in it and schedule that batch file to run as frequently as every minute on the most demanding VMs.
Microsoft Cluster MVP
Co-Author: SBS 2008 Blueprint Book
Chef de partie in the SMBKitchen ASP Project
Find out more at
Third Tier: Enterprise Solutions for Small Business