每次我在 VMware ESXi 上虚拟化的 CentOS 7 (Scientific Linux 7) 服务器上同步时间时,第二天我就会发现时间快进了 3 个小时。我做了一个 cronjob 每 5 分钟写入一次时间,我注意到当时间是 时22:55
,下一次写入的时间是2:00
。这是我的/etc/ntp.conf
,应该与本地 NTP 服务器同步
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict localhost
restrict -6 ::1
server xx.xx.xx.xx prefer iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntp.log
我chronyd
只配置了server
上面的指令,但我得到了相同的行为。
/etc/adjtime
内容:
0.0 0 0.0
0
UTC
我同步时间的方式:
- 停止
ntpd
ntpdate xx.xx.xx.xx
timedatectl set-ntp true
- 开始
ntpd
。
/etc/localtime
通过链接tzselect
、 和timedatectl set-timezone
命令,时区是正确的。
答案1
在我看来,您很可能遇到 VMWare 集成时间同步问题。
默认情况下,您的 esxi 确保来宾计算机的时钟与其时钟同步。
如果您想禁用 esxi 时钟和来宾虚拟机之间的同步,您可以这样做。
请参阅VMWare KB1189:
- 关闭虚拟机电源
- 通过 SSH 连接到 ESXI
- 编辑文件 /vmfs/volumes/datastore_name/vm_name/vm_name.vmx
- 将 thos 值更改为
0
或FALSE
(这取决于您使用的 vmware 产品的类型:
tools.syncTime = "0" 或 "FALSE"
time.synchronize.continue = "0" 或 "FALSE"
time.synchronize.restore = "0" 或 "FALSE" time.synchronize.resume.disk
= "0" 或 "FALSE"
time.synchronize.shrink = "0" 或 "FALSE"
time.synchronize.tools.startup = "0" 或 "FALSE"
time.synchronize.tools.enable = "0" 或 "FALSE"
time.synchronize.resume.host = "0" 或 "FALSE"
重要的提示:
在执行此操作之前,我建议您检查 ESX 的时钟是否已正确配置,并且这不是问题,保持 esxi 时钟同步更容易,以便所有虚拟机都有正确的时钟。