我无法在多个 kvm 来宾上保持系统时钟同步。我用谷歌搜索了很多,发现了很多不同的选择,其中很多我都尝试过,但都无济于事。所以我在这里。
ntpd 是不可能的(主机系统运行它并且时钟总是正确的,但如果你在客人身上运行它,时钟就会失控)。
主机是 Ubuntu 9.04,内核是 2.6.28-11-server 客人是 Ubuntu 8.04,内核是 2.6.24-24-virtual
这是主机上的时钟源情况:
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc hpet acpi_pm jiffies
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
在客人身上:
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc pit jiffies
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
pit
我在客户机的内核启动参数中有“clock=pit divider=10”。它仍然在漂移。我们不是在谈论巨大的漂移,但有一些。
有什么建议么?有没有人遇到过这个问题并处理过?
从根本上说,时钟会漂移一些,我认为此时可以做的事情是有限度的。您说您没有在客人中运行 NTP,但我认为您应该这样做,只要确保您没有引用本地时钟(注释掉服务器 127.xxx)并且设置了 tinker panic 0如果有大的跳跃它必须纠正它不会吓坏。这基本上是 VMWare 计时论文中的指导方针,我猜想这也很大程度上适用于 KVM 设置。
在客户机上精确时钟的最佳选择是使用与时钟主机同步的
kvm-clock
源(pvclock )。这是 VMware 论文“VMware 虚拟机中的计时”(2008 年)的链接:http: //www.vmware.com/pdf/vmware_timekeeping.pdf