8.10. 使用 libvirt 管理虚拟机计时器
保证虚拟客户机的准确时间是虚拟化平台的关键挑战。不同的虚拟机监控程序试图以各种方式处理时间问题。libvirt 为时间管理提供管理程序独立的配置设置,使用域 XML 中的 <clock> 和 <timer> 元素。可以使用 virsh edit 命令编辑域 XML。详情请查看 第 14.6 节 “编辑客户机虚拟机的配置文件”。
<clock> 元素用于确定客户端虚拟机时钟如何与主机物理机器时钟同步。clock 元素具有以下属性:
偏移决定了客户机虚拟机时钟在主机物理时钟中的偏移方式。offset 属性具有以下可能的值:Expand 表 8.1. 偏移属性值 值 描述 utc 启动时,客户机虚拟机时钟将同步到 UTC。 localtime 客户端虚拟机时钟将在引导时同步到主机物理机器配置的时区(若有)。 timezone 客户机虚拟机时钟将同步到指定时区,由 timezone属性指定。变量 客户机虚拟机时钟将与 UTC 中的任意偏移同步。增量相对于 UTC 的使用 adjustment属性以秒为单位指定。客户机虚拟机可以自由地调整 Real Time Clock(RTC),期望它在下次重启时将生效。这与utc模式不同,每次重启时会丢失任何 RTC 调整。注意默认情况下,utc 值被设置为虚拟机中的时钟偏移。但是,如果客户端虚拟机时钟使用 localtime 值运行,则需要将时钟偏移改为不同的值,以便使客户端虚拟机时钟与主机物理机器时钟同步。timezone属性决定 guest 虚拟机时钟使用哪个时区。adjustment属性提供客户机虚拟机时钟同步的 delta。以秒为单位,相对于 UTC。
例 8.1. 始终与 UTC 同步
<clock offset="utc" />
<clock offset="utc" />
例 8.2. 始终与主机物理机器时区同步
<clock offset="localtime" />
<clock offset="localtime" />
例 8.3. 同步到任意时区
<clock offset="timezone" timezone="Europe/Paris" />
<clock offset="timezone" timezone="Europe/Paris" />
例 8.4. 同步到 UTC + 任意偏移
<clock offset="variable" adjustment="123456" />
<clock offset="variable" adjustment="123456" />
8.10.1. 时钟的计时器子元素 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
clock 元素可以有零个或多个计时器元素作为子项。timer 元素指定用于客户端虚拟机时钟同步的时间源。timer 元素具有以下属性:只有
name 是必需的,所有其他属性都是可选的。
name 属性指定要使用的时间源类型,可以是以下之一:
| 值 | 描述 |
|---|---|
| pit | Programmable Interval Timer - 带有定期中断的计时器。 |
| rtc | 实时时钟 - 持续运行带有定期中断的计时器。 |
| tsc | 时间戳计数器 - 计算重置后空数,没有中断。 |
| kvmclock | KVM 时钟 - KVM 客户机虚拟机的建议时钟源。KVM pvclock 或 kvm-clock 可让 guest 虚拟机读取主机物理机器的墙时钟时间。 |