我一直在看这些日志消息
Jan 3 00: 58: 57 foo kernel: set_rtc_mmss: can't update from 0 to 58
它们出现在VMware上运行的CentOS 6.4 VM上.我知道这与客户操作系统上没有正确设置的硬件时钟有关.我找到了这个命令,它将硬件时钟设置为当前系统时间:
sudo hwclock --systohc
这是虚拟机的正确设置吗?此外,这可以设置在哪里,所以它是持久的?在内核启动参数?我希望新配置的VM没有这个问题.
更新1
按照要求:
me@foo:~> ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== LOCAL(0) .LOCL. 10 l 43 64 377 0.000 0.000 0.000 +dtc-nist01.ntp. .ACTS. 1 u 174 1024 377 3.311 -8.554 0.497 *nist1-nj.ustimi .ACTS. 1 u 205 1024 377 6.737 3.775 0.433 +nist1-pa.ustimi .ACTS. 1 u 55 1024 377 8.610 4.688 0.337
我看到这个VM上的vmwaretools已经过时了.也许我用于管理vmwaretools安装的puppet模块没有正确安装它.我会看一看然后再回复你.
更新2
是的,已安装vmware工具并且版本最新.
me@foo:~> ps aux | grep vmtools root 56021 0.0 0.1 59508 4156 ? S Jan09 3:29 /usr/sbin/vmtoolsd
更新3
我尝试在VM上启用“与主机同步访客时间”:
me@foo:~> vmware-toolBox-cmd timesync status Disabled me@foo:~> vmware-toolBox-cmd timesync enable me@foo:~> vmware-toolBox-cmd timesync status Enabled
但我仍然收到这些消息.实际上,日期和时间 – 现在相隔几分钟,而它们过去相当紧张.
过去,较早的SLES 9虚拟机受益于VMware文章Timekeeping best practices for Linux guests中的设置,但它表明CentOS / RHEL 6 guest虚拟机不需要任何其他内核参数集.
更新4
升级到CentOS 6.5并没有帮助.内核是:
Linux foo 2.6.32-431.1.2.0.1.el6.x86_64 #1 SMP Fri Dec 13 13:06:13 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
VMWare在知识库中确实有一些关于如何在客户机操作系统中配置ntp客户端的建议.首先要确保禁用vmware-toolBox timesync,因为您只需要ntp来更新时间.
原文链接:https://www.f2er.com/centos/373577.html从Timekeeping best practices for Linux guests开始:
这是他们的示例/etc/ntp.conf:
tinker panic 0 restrict 127.0.0.1 restrict default kod nomodify notrap server 0.vmware.pool.ntp.org server 1.vmware.pool.ntp.org server 2.vmware.pool.ntp.org driftfile /var/lib/ntp/drift
第一行(修补程序恐慌0)允许大时间跳转. (例如系统状态已保存/恢复)
另一种方法是禁用guest虚拟机中的ntp并启用vmware-tools时间同步.