使用 CentOS 6.2 在 HyperV 上进行时间同步

使用 CentOS 6.2 在 HyperV 上进行时间同步

我有一个 CentOS VM(版本 6.2)在 HyperV 下运行。我安装了集成服务(现在是基础服务的一部分),CentOS 显示当前时钟源是 hyperv_clocksource,但是经过一周的正常运行后,我在 VM 中的时间快了大约 10 分钟。我对新 IC 和可插入时钟源的理解是这种情况不应该再发生了。是否需要任何额外的配置才能使可插入时钟源“工作”?

我知道有很多关于将内核选项设置为 PIT 和诸如此类内容的链接,但这些链接似乎都早于集成时钟源支持,而且据我所知,它应该不再需要了。ntpd 和 adjtimex 也不应该。

编辑:之前运行的是 3.2 版 IC(Centos 6.2 附带的版本),今天升级到 3.3 版,机器已经运行了 1 小时 22 分钟,时钟已经快了 5 秒。所以我现在运行最新的IC,但仍然存在同样的问题。

答案1

我以前遇到过这个问题,并通过调整启动开关(notsc divider=10)和 ntp 设置来纠正它:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.6.1.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-164.6.1.el5 ro root=/dev/VolGroup00/LogVol00 hda=noprobe hdb=noprobe notsc divider=10
    initrd /initrd-2.6.18-164.6.1.el5.img
title CentOS (2.6.18-164.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00
    initrd /initrd-2.6.18-164.el5.img

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

来源:

纠正 Server 2008 R2 上 Hyper-V 的 Linux 时钟漂移
http://hardanswers.net/correct-clock-drift-in-centos-hyper-v

答案2

不幸的是,Hyper-V Linux 客户机在负载下时钟漂移相当常见(不同步的虚拟机中的时钟漂移在某种程度上是不可避免的)。请参阅Linux 时钟每周慢 10 分钟即使使用 NTP,Hyper-V Machine 的时间也会发生偏移看看其他讨论它的帖子。我看到的轶事证据表明:

答案3

首先,检查 hyper-v 是否检测到集成服务。我知道的唯一方法是使用系统中心虚拟机管理器,但我认为一定有一种方法可以使用 hyper-v 的 mmc。

此外,我还看到过这种情况,当 VM 配置中禁用时钟同步时。时钟运行得更快的原因我不得而知。我附上了虚拟机配置的屏幕截图供您参考。 在此处输入图片描述

相关内容