XEN中domU的时间同步问题
今天早上一位同事在线上问我, 他的一台机器的时间设置有问题, 明明用date -s设置成了新时间, 却又马上回退到之前的时间了:
# date -s '2012-04-21 10:47:10'
Sat Apr 21 10:47:10 CST 2012
# date
Sat Apr 21 11:07:30 CST 2012
时间为什么修改不了呢?
我初步判断可能是没有写入到系统硬件时间, 内核有某种机制把硬件时间又写会给操作系统了。 让同事执行一下
# hwclock -w
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
根据提示:
# hwclock -w --debug
hwclock from util-linux-2.12r
hwclock: Open of /dev/rtc failed, errno=19: No such device.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.
这个时候只能google了, 得到答案: 原来同事的这台机器是虚拟机, 虚拟软件用的是XEN, 另外一台虚拟子机在设置时间时,没有问题, 就是这台有问题。
google到的解法是增加 xen.independent_wallclock=1 设置, 就OK , 比较两台机器上的设置, 确实有问题的那台没有加这个设置。
附上搜到的两篇博文:
《xen pv(半虚拟化)下domU的时间同步问题》 摘自: BitBi.Biz Blog
centos5.6 xen使用时我一部分是pv的domU,一部分是hvm的domU,但在时间同步问题上遇到一点问题。
在pv的domU下使用ntpdate 192.168.1.1 同步时间后,时间还是变成以前的时间,后来发现domU上的时间是跟着dom0走的,后来就在dom0上启动了ntpd服务,domU上的时间就一致了。
当然你也可以使用以下办法让domU自己同步时间(不会同步后时间再变回去)
#vim /etc/sysctl.conf
# Set independent wall clock time
xen.independent_wallclock=1
#sysctl -p
但是使用hwclock -w –debug还是报错的:
#hwclock -w --debug
hwclock from util-linux-2.13-pre7
hwclock: Open of /dev/rtc failed, errno=19: No such device.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.
后来在网上搜了好久还是没找到合适的解释,但有的说是/dev/rtc文件被dom0占用了
# dmesg| grep rtc
rtc: IRQ 8 is not free
这里显示也是被占用,但/dev/rtc文件是存在的,不知道是不是BUG。
这种问题在hvm(全虚拟化)下的domU是不存在的。
《xen 时间问题》 摘自:%B4%F8%B5%B6%B2%BB%B4%F8%C9%A1/blog/item/33b1f4faf5e609006c22eb75.html
最近无意看到 xen虚拟的几台机器时间不准,ssh上去发现ntp正常,ntpdate后时间继续重置了。
# hwclock -r 提示--debug
# [root@host1 vhosts]# hwclock --debug
hwclock from util-linux-2.13-pre7
hwclock: Open of /dev/rtc failed, errno=19: No such device. # 提示没有这个设备
No usable clock interface found.
Cannot access the Hardware Clock via any known method.
[root@host1 vhosts]#
google了下解决办法# echo "xen.independent_wallclock = 1" >> /etc/sysctl.conf
#
# sysctl -p
#
# 再次ntpdate 同步后没发现问题了额