主机重启时 KVM 客户机时间偏移

主机重启时 KVM 客户机时间偏移

我已经将 Ubuntu 服务器 12.04 安装为 KVM 主机,并创建了也运行 Ubuntu 服务器 12.04 的 Ubuntu 客户机。服务器处于 AST 时区,即 UTC + 3 小时。在客户机中正确设置时间后,date -s我可以随意重新启动客户机,并在重新启动之间保留正确的时间。

但是,如果重新启动 KVM 主机(主机在重新启动之间没有时间问题),那么一旦我启动 KVM 客户机,它们都会比正确时间晚 3 个小时。以下输出显示主机和客户机上的系统时间和硬件时钟时间。

root@kvmhost1:~# date
Wed Jan 16 14:10:38 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 02:10:40 PM AST  -0.187899 seconds

root@kvmguest1:~# date
Wed Jan 16 11:10:45 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 02:10:47 PM AST  -0.521226 seconds

一旦客户端的时间被纠正,他们就可以重新启动,而不会出现时间错误的变化。

我尝试过/测试过的东西

  • 我在三台独立的物理服务器上尝试过,都表现出完全相同的行为。
  • 其中一个 kvm 主机正在运行 Ubuntu 11.04,并且发生了同样的行为。
  • 我考虑过使用时间服务器来解决这个问题,但是Ubuntu 建议不要在 KVM 客户机上使用 NTP。关于这一点,有一个很好的讨论KVM 来宾时钟同步,这表明在客户机中运行的 kvm-clock 应该处理这个问题。
  • 我已经在客户端运行dmesg | grep kvm-clock并且确认 kvm 时钟正在使用中。

更新

--localtime我使用命令中的选项将硬件时钟设置为使用本地时间hwclock。同样的问题仍然存在。不过,输出更清晰一些,因为软件和硬件时钟设置了相同的时间。

root@kvmhost1:~# date
Wed Jan 16 15:50:26 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 03:50:29 PM AST  -0.750378 seconds

root@kvmguest1:~# date
Wed Jan 16 12:50:29 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 12:50:31 PM AST  -0.849677 seconds

解决方案

迈克尔·汉普顿 (Michael Hampton) 的以下回答解决了这个问题。客户机是使用 kickstart 文件创建的,默认情况下不会将硬件时钟设置为 UTC 时间。我在 kickstart 时区选项中添加了 --utc 选项,解决了这个问题。kickstart 选项现在如下:

timezone --utc Asia/Bahrain

答案1

看来您以某种方式安装了客户机,使其认为硬件时钟是本地时间。 KVM 客户机应始终将其硬件时钟视为 UTC 时间,除非它们是 Windows 客户机(但即使是 Windows 客户机也可以设置为 UTC 硬件时钟)...

编辑/etc/default/rcS文件,并将其更改UTC=noUTC=yes。然后重置您的访客时钟。

相关内容