虚拟机管理程序如何同步主机和虚拟机VM之间的时间?
问题描述:
我读this博客:虚拟机管理程序如何同步主机和虚拟机VM之间的时间?
进行了一些研究之后,我 发现,这是由 事实引起的在1000Hz的内部时钟 频率和VMware的默认的Linux内核 运行是无法 按时发送时钟中断 而不会丢失它们。这意味着某些时钟中断在没有 的情况下会丢失,通知Linux内核,其中 假设每个中断标记1/1000的第 秒。因此每个时钟中断 会丢失,使得时钟在1/1000秒后落入 。
现在,我的问题是,如何做的管理程序同步时间内如果管理程序能够处理时钟中断?
因为当说(放大的例子,而不是现实世界):它在主机上的19:10:22,直到它传播到客人,它将在主机上19:10:23。
我知道这是一个棘手的问题,但我想你需要从虚拟机角度放慢时间。这是如何实现的?
答
管理程序不同步的时钟。它是在来宾虚拟机中运行的软件,可以保持时钟同步。
从15页(有解释到19页继续上)你的链接PDF的:
有客户操作系统时钟同步提供了两个主要选项:VMware Tools的周期性时钟同步 或本机同步软件,如果您直接在物理硬件上运行它,则可以将其与客户操作系统一起使用。本地同步软件的一些示例是Windows的Microsoft W32Time和Linux的NTP。
VMware Tools时钟同步工具只是经常检查客户时钟与主机时钟(可能每分钟一次)并更正客户时钟(如果它错误)。如果客人时钟关闭一点点,该工具将加速或减慢客人时钟,直到它具有正确的时间(使用Windows上的SetSystemTimeAdjustment
或Unix上的adjtime
等API)。如果您想知道该工具如何访问主机的时钟,那么VMware工具只知道如何使用它的API。
这不是一个服务器故障问题,它是虚拟机的内部。 – zengr 2010-12-12 01:53:55
不是你链接的PDF来回答你的问题吗? – Gabe 2010-12-12 05:10:12
vmware论文更多地讨论了VMware的具体实现和技术,而不是关于它背后的概念。 – zengr 2010-12-12 05:25:29