Linux – Which NTP source should I use in ESXi virtual machines

guestlinuxntpvirtual-machinesvmware-esxi

I have a ESXi host running ~20 virtual machines (mostly EL6, but also one or two Windows Server 2008 R2).

What is the best practice for timekeeping on virtual machines?

I'm thinking about 3 different ways to do it, but I'm having trouble to find pros or cons on the internet for such methods.

1) ESXi syncs with 0.pool.ntp.org and then sets the BIOS time on each
VM

2) Each guest OS syncs with 0.pool.ntp.org

3) Each guest OS syncs with ntp.localdomain (a VM on my ESXi server
acting as a cached proxy to 0.pool.ntp.org)

I think the third option would be the better one since it reduces outgoing network traffic from my WAN interface, and it provides a precise time between all VMs.

Could you tell me if there is a better alternative?

Best Answer

You'd better read this guide: Guide to configure NTP on ESX servers (1003063) and this complete reference: http://www.vmware.com/pdf/vmware_timekeeping.pdf

Here's common practice:

  1. configure your ESXi to sync clock time by NTP via external time sources.
  2. install VMware VMtools inside all your VMs to sync time of VM with ESXi. Notice that you can toggle the time sync feature by configuring the entry tools.syncTime = true in vm_name.vmx file of your VM.

So that you have only one NTP client runs on ESXi server, all other VMs sync time with ESXi only.