为什么 Azure Linux VM 不与主机保持时间同步?

为什么 Azure Linux VM 不与主机保持时间同步?

使用去年在 Azure 上构建的 Ubuntu 12.04 VM。它们似乎只在启动时获得正确的时间,并且每天偏差约一秒。这是 Azure VM 的正常问题吗?我知道 VM 时间偏差是正常的,但我认为 Azure (Hyper-V) 中的 Linux VM 通过集成服务从主机获得定期时间同步。

答案1

操作系统通常只在启动时读取(模拟的)硬件时钟,然后使用中断定时器来维护时钟。当然,这不是一个完美的时间源,因此您必须使用 NTP 软件来保持其准确性。

答案2

似乎其他人也有这个问题,即使在 Windows VM 角色中也是如此。每周一次会导致太多的时间漂移​​,所以我想每天或更少的手动设置确实是有序的:

https://stackoverflow.com/questions/6186776/how-to-validate-local-vm-clock-with-ntp-on-windows-azure

答案3

这是预料之中的,因为 Hyper-V 的时钟同步不一定在启动后继续控制时钟 - 请参阅使用 CentOS 6.2 在 HyperV 上进行时间同步了解详情。

答案4

截至 2022 年,大多数“较新的 Linux 映像”使用克罗尼德,直接从主机同步。

“Azure 由运行 Windows Server 2016 的基础设施支持。Windows Server 2016 改进了用于校正时间和调节本地时钟以与 UTC 同步的算法。Windows Server 2016 的精确时间功能极大地改进了 VMICTimeSync 服务如何管理主机上的虚拟机以获得准确的时间。改进包括更准确的虚拟机启动或虚拟机恢复的初始时间以及中断延迟校正。”

“从 2021 年初开始,最新的带有 Linux 的 Azure Marketplace 映像将被更改为使用 chronyd 作为时间同步服务,并且 chronyd 配置为与 Azure 主机而不是外部 NTP 时间源同步。 Azure 主机时间通常是同步的最佳时间源,因为它的维护非常准确和可靠,并且可以访问,而不会产生通过公共互联网访问外部 NTP 时间源所固有的可变网络延迟。”

阅读此处:https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-sync

相关内容