虚拟机linux与主机时间同步

[]vmwarelinux系统时间变慢的解决

来源: ChinaUnix博客  日期: 2009.12.01 08:37 (共有条评论我要评论

 

 

环境:vmware5.5 linux AS4

      安装好vmware后发现vmware的时间会越走越慢,是什么原因呢,以下是摘自

http://blog.seety.org/everydaywork/2005/5/22/332/

的介绍:

Linux 2.6核心里把系统计时器的频率加高到1000 Hz VMware没办法真的每隔1ms就报一次讯号给guestOS,所以guestOS里的Linux 2.6无法确实接到计时器的讯号。本来这也不应该造成问题,不过2.6核心处理这个"tick loss"的程式有问题,以致于guestOS里的Linux 2.6系统时间走一秒会慢一秒;外面过了两秒里面只过了一秒。

可以通过更改计时器频率的方法来处理:

include/asm-i386/param.h

#define HZ               1000               /* Internal kernel timer frequency */

改成

#define HZ               100               /* Internal kernel timer frequency */

意思就是让计时器慢到 100Hz,虽然这样可行,但要重新编译内核太麻烦了。那有没其他办法呢,答案是肯定的。

方法一:安装Vmware tools

安装完成vmware tools后运行 vmware-toolbox,把Options中的time synchronization....钩选上。这样VMWare Tool后台程序就会每三分钟与宿主主机同步更新一次时间。试验中发现vmware-tolls 只会在虚拟机慢于主机的时候将虚拟机时间同步到主机,暂时未发现怎么设置使虚拟机时间过快的时候也同步。

vmware tools的安装,参考我的另一篇笔记:

http://hi.baidu.com/archieyao/blog/item/498848adab17290a4a36d61c.html

      据网上的介绍,对于grub方式启动,在kernel参数里加入 clock=pit nosmp noapic nolapic也可以解决部分问题,但我试验过好像并没什么优化,如果不进行时间同步,虚拟机上的时间依然走得像醉汉,可能我的内核是2.6的原因吧。

方法二、连接到时间服务器同步时间,前提是能联网。

      linux下使用ntpdaten连接时间服务器进行时间同步,ntpdate命令的语法很简单,但必须用root身份运行它。你可以在命令行中指定一个或者多个时间服务器。

命令格式:

#ntpdate 服务器地址

      到那找时间服务器呢?Windows XP中有几个现成的时间服务器可以使用,何不就地取材呢^-^ ,打开xp控制面版->日期和时间->internet时间,服务器列表里的服务器都可以使用:

#ntpdate time.windows.com time-a.nist.gov time-b.nist.gov time-nw.nist.gov

还可以使用这里面的时间服务器:Internet 上可用的“简单网络时间协议”时间服务器列表 

http://www.mycuc.com/Article/wenzhai/pcwz/200704/634.htm

      为了保证时间精确同步,还需要定时运行ntpdate来同步时间,通过crontab来实现定时调度。例如设定每分钟同步一次,添加进系统任务调度中,在/etc/crontab里面添加以下句子:

*/1 * * * * ntpdate time.windows.com time-a.nist.gov time-b.nist.gov time-nw.nist.gov

重启系统任务调度服务:

#service crond restart

等候1分钟左右检查时间同步是否起作用。

--------------------------------------------------------------------------------------------------------------

关于时间过快或过慢的vmware 官方文档:

http://www.vmware.com/pdf/vmware_timekeeping.pdf

Clock in a Linux Guest Runs More Slowly or Quickly Than Real Time

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1420

 

你可能感兴趣的:(虚拟机linux与主机时间同步)