情况:
- 我们有一些运行计算作业的 Linux 虚拟机。
- VM 无法访问 Internet(包括 NTP)。
- 虚拟机管理程序确实知道正确的时间。
- 虚拟机管理程序的时间通过其硬件时钟向虚拟机公开。
- 虚拟机管理程序似乎是基于 QEMU/KVM 的。我们不控制虚拟机管理程序(它是云 VPS 产品)。
问题:
- VM 的系统时钟偏离正确的时间/硬件时钟。
问题:
是否可以始终保持系统时钟与硬件时钟同步?
或者,是否可以告诉 ntpd 使用硬件时钟作为参考来解决系统时钟漂移?
我尝试过的:
- 然而,对于cronjob
0 * * * * hwclock --hctosys
,漂移足够明显,即使每小时同步也是不够的,此时增加 cronjob 频率似乎是一种解决方法。
答案1
[我在这里凭记忆工作,所以稍后我会尝试检查一下。]
QEMU/KVM 虚拟机可以通过虚拟化层将其时钟同步到主机。
以下是确认您的访客正在使用主机的方法:
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
如果它没有返回该值,kvm-clock
您需要在客户端中加载半虚拟化时钟模块,这是virtio
内核模块的一部分。
ntpd
如果您的虚拟机正在与主机同步,请不要运行(或任何其他外部同步)。