我有一台Ubuntu 9.10服务器作为安装有ntpd的KVM主机运行。 主机系统具有正确的系统时间。 目前我只有一个KVM客户机,也是Ubuntu 9.10服务器。 我没有安装ntpd,我刚发现时钟慢了大约6分钟。 一个月前安装的时候不是这样。
我以为我只需要保持主机时钟同步,并且客人使用主机时钟。 但也许这是使用OpenVZ的内存。 我相信这个推理只涉及到主机可以修改物理系统时钟。
在主机和所有客人上运行ntpd是否正确的事情? 还是有其他的东西是首选? 我应该如何保持客人时钟同步?
检查你使用的是什么clocksource:
$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
检查哪些是可用的:
$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
如果您在“available_clocksource”中有“kvm-clock”条目,请尝试通过设置内核参数来使用它:
clocksource=kvm-clock
在这里 (一般)相当好的文件为什么这是如此棘手得到正确的时钟。
我在虚拟机和多个不同的虚拟化平台上遇到了许多计时问题,而且本机Host-VM时间同步工具也遇到了问题。
我的build议是拥有基于物理硬件(在本例中为KVM主机服务器)的权威时间源,并使用标准OS时间同步方法(在您的情况下为ntpd)将VM同步回到服务器。 如果虚拟机客户过度漂移,通常需要更短的重新同步时间间隔。 总之,我认为你ntpd在正确的轨道上。
以VMWare为例,我们发现VMWare Tools时间同步只会在虚拟机上向后漂移的时候进行校正。 如果虚拟机领先于主机,这将不会纠正时间。
有报告称,kvm-clock会导致时间跳跃(以小时为单位),甚至可能导致系统死机。 您可能必须禁用它,如下所示:
https://patchwork.kernel.org/patch/104597/ (无论是补丁本身,还是LD_PRELOAD包装器kvm-noclock)。