Hypervisor如何在主机和来宾VM之间同步时间?

时间:2010-12-12 01:49:57

标签: time synchronization virtualization virtual-machine

我看了this博客:

  

进行了一些研究之后我   发现这是由于   事实上,默认的Linux内核   以1000Hz的内部时钟运行   频率和VMware无法做到的   按时发送时钟中断   不会丢失它们。这意味着   有些时钟中断没有丢失   请注意Linux内核中的哪些内容   假设每个中断标记为1/1000   一秒钟所以每个时钟中断   迷路会让时钟倒塌   在1/1000秒之后。

现在,我的问题是,如果虚拟机管理程序能够处理时钟中断,虚拟机管理程序内部同步时间如何?

因为当说(扩大例子,而不是现实世界):在主持人的19:10:22,直到它传播给客人,主持人将是19:10:23。

我知道这是一个很难的问题,但我想你需要减慢虚拟机的时间。这是如何实现的?

VMWare timekeeping

1 个答案:

答案 0 :(得分:2)

虚拟机管理程序不会同步时钟。它是在来宾VM中运行的软件,它使时钟保持同步。

从链接PDF的第15页(继续说明第19页):

  

客户操作系统时钟同步有两个主要选项:VMware Tools定期时钟同步   或者如果直接在物理上运行,则将与客户机操作系统一起使用的本机同步软件   硬件。本机同步软件的一些示例是Microsoft W32Time for Windows和NTP for Linux。

VMware Tools时钟同步工具每隔一段时间(可能每分钟一次)检查客户时钟与主机时钟的关系,如果错误则更正客户时钟。如果客户时钟稍微关闭,该工具将加速或减慢客户时钟,直到它具有正确的时间(在Windows上使用SetSystemTimeAdjustment或在Unix上使用adjtime)。如果您想知道该工具如何访问主机的时钟,那么VMware工具只知道如何使用它。