【问题标题】:How can I resolve the drifting clock for my Virtual Machine?如何解决虚拟机的时钟漂移问题?
【发布时间】:2010-09-12 03:47:40
【问题描述】:

我的虚拟机的时钟漂移非常明显。那里有关于处理这个问题的文档,但似乎没有什么工作得很好。

任何人有任何建议,对他们有用的东西,...

据说通过ntp定期更新不是一个好的解决方案。

【问题讨论】:

  • 有兴趣知道为什么 ntp 不是一个好主意吗?
  • 您的虚拟机运行的是什么操作系统?
  • 关于 ntp 解决方案:我不得不承认我现在不记得为什么不鼓励 ntp。我认为这可能与同时使用不同方法的想法有关,以及这将是多么糟糕。

标签: vmware clock drift


【解决方案1】:
  1. 在听取任何人的意见之前,请仔细阅读 vmware 文档。我们正在运行 ESX5。

Linux 来宾的计时最佳实践除其他外说: 参考:http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

NTP 建议 注意:VMware 建议您使用 NTP 而不是 VMware Tools 定期时间同步。 NTP 是行业标准,可确保您的客人保持准确的时间。您可能必须打开防火墙 (UDP 123) 才能允许 NTP 流量。

这是一个示例 /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

这是一个示例(特定于 RedHat)/etc/ntp/step-tickers:

0.vmware.pool.ntp.org
1.vmware.pool.ntp.org

配置指令 tinker panic 0 指示 NTP 在看到时间大幅跳跃时不要放弃。这对于应对较大的时间漂移​​以及从暂停状态恢复虚拟机非常重要。

注意:指令 tinker panic 0 必须位于 ntp.conf 文件的顶部。

同样重要的是不要使用本地时钟作为时间源,通常称为无纪律本地时钟。当存在大量时间漂移时,NTP 倾向于回退到远程服务器而不是远程服务器。

这种配置的一个例子是:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

注释掉这两行。

更改 NTP 配置后,必须重新启动 NTP 守护程序。请参阅您的操作系统供应商的文档。

【讨论】:

    【解决方案2】:

    vmware 在这个问题上有a really good PDF doc

    基本上,主人会尽可能多地处理交付给客人的蜱虫。 不要像那样运行 NTP 或定时或垃圾。只需安装 vmware-guestd 并让主机完成您的任务。如果您仍然丢失滴答声,那么任何其他解决方案也会有很大的漂移。

    如果可以,请使用频率较低的客户操作系统。较新版本的 Linux 带有 1000Hz 的滴答声,但它曾经只有 100Hz。这对主机来说似乎更容易交付。通常需要重新构建内核来更改 HZ 值。

    【讨论】:

    • 最近,许多(大多数?)Linux 内核分发实际上是“无滴答”的,我无法解释这个概念,但这个线程可以:kerneltrap.org/node/6750
    • 这在 10 年前是真的。根据最新的 KB:“VMware 建议使用 NTP 而不是 VMware Tools 定期时间同步。”,见kb.vmware.com/selfservice/microsites/…
    【解决方案3】:

    只是添加一些关于为什么 NTPD 不是一个好的解决方案的数据。 NTPD 是一个试图补偿本地时钟漂移的守护进程;如果“内部时钟”在一天内漂移了 X 秒,则不是像“ntpdate”中那样像强制命令那样向前/向后跳跃,NTPD 会尝试向时钟添加/删除一些周期,以便及时,通常在 15 分钟内,时钟运行得足够准确,并且补偿克服了服务器在一天内获得/损失的 X 秒数。这样做的好处是您不会看到一天中的任何时间重复,这对于事务系统来说是必须的。

    但是为了能够做到这一点,NTPD 要求本地时钟做得相当好,这通常意味着本地时钟每天的漂移不会超过 42 秒(或多或少;我不确定的确切数字)。这通常是虚拟机中的问题,因为时钟是软件控制的,所以如果主机过载过多,您会看到客户端的时钟会运行得更慢,如果没有,那么时钟也会运行快速地。 NTPD 的问题是本地时钟不可靠,并且没有恒定的时间漂移​​;它可能或多或少取决于主机系统的过载。

    因此在这种情况下,最好按照建议安装客户端工具,并将 CLIENT 时钟与 HOST 的时钟(通常称为“挂钟”)同步

    【讨论】:

    【解决方案4】:

    没有明确的答案,因为存在多种方法,每种方法各有利弊。选择哪一个取决于您的任务、服务器负载、操作系统等。

    阅读vmware_timekeeping.pdf 以全面了解该问题。

    可以在单独的KB article 中找到适用于 Linux 的快速食谱

    【讨论】:

      【解决方案5】:

      此问题的最佳解决方案是(如果本地连接) 安装本地 NTP 服务器并将“service ntp restart”置于无限循环中,睡眠时间约为 30 秒。通过在“/etc/init.d/rc.local”文件中编写代码。重启系统和时间将与服务器计算机同步。

      【讨论】:

        【解决方案6】:

        安装虚拟机附加组件(工具)不会在来宾操作系统和主机操作系统之间同步时钟吗?

        【讨论】:

          【解决方案7】:

          据说通过 ntp 定期更新 不是一个好的解决方案

          不过,这是我推荐的解决方案。为什么它在您的位置不被认为是好的?

          【讨论】:

            【解决方案8】:

            如果您还没有 NTP,请安装它。

            ntpdate 会正确设置时钟,然后 ntpd 可以保持时钟准确。

            NTP pool project 提供了大量可供选择的 NTP 服务器。

            编辑刚刚注意到您说您认为 NTP 不是一个好的解决方案 - 为什么?如果您担心时钟变化的影响,NTP 是理想的选择,因为 ntpd 不会向前或向后跳跃时钟,而是通过稍微加速/减速来“旋转”时钟,直到它重新与正确的时间。

            【讨论】:

            • 如果我运行 ntpdate -u 它会更新时钟......但是,1 分钟后我已经关闭了 5 秒,所以我必须经常运行更新。然而,我不知道回转功能。我所使用的只是 ntpdate -u 跳跃。
            【解决方案9】:

            我遇到了同样的问题,解决了

            1. 安装 vmware-guestd
            2. 向内核发送选项clocksource=acpi_pm
            3. 以 root 身份每小时运行 hwclock -s。

            【讨论】:

              【解决方案10】:

              这是一个老问题,但最近影响了我们。我发现我们所有运行 vmware 工具的虚拟机都受到了这个问题的影响。

              最近我们开始使用 open-vm-tools 并且在那些 vm 上没有设置该选项。由于 Vmware 完全支持和推荐 open-vm-tools,我建议在 vmware 工具上使用它:http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2073803

              如果 open-vm-tools 在您使用的存储库中,也可以通过 yum installapt-get install 等轻松安装。

              【讨论】:

                【解决方案11】:

                你可以使用cmd和

                net time \\computer_name /set
                

                远程设置时钟(或在脚本中)

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2022-12-14
                  • 2022-07-09
                  • 2013-08-29
                  • 2011-04-24
                  • 2012-02-27
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-09-11
                  相关资源
                  最近更新 更多