Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.10. 使用 libvirt 管理虚拟机计时器

保证虚拟客户机的准确时间是虚拟化平台的关键挑战。不同的虚拟机监控程序试图以各种方式处理时间问题。libvirt 为时间管理提供管理程序独立的配置设置,使用域 XML 中的 <clock> 和 <timer> 元素。可以使用 virsh edit 命令编辑域 XML。详情请查看 第 14.6 节 “编辑客户机虚拟机的配置文件”
<clock> 元素用于确定客户端虚拟机时钟如何与主机物理机器时钟同步。clock 元素具有以下属性:
  • 偏移 决定了客户机虚拟机时钟在主机物理时钟中的偏移方式。offset 属性具有以下可能的值:

    表 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" />

例 8.2. 始终与主机物理机器时区同步

<clock offset="localtime" />

例 8.3. 同步到任意时区

<clock offset="timezone" timezone="Europe/Paris" />

例 8.4. 同步到 UTC + 任意偏移

<clock offset="variable" adjustment="123456" />

8.10.1. 时钟的计时器子元素

clock 元素可以有零个或多个计时器元素作为子项。timer 元素指定用于客户端虚拟机时钟同步的时间源。timer 元素具有以下属性:只有 name 是必需的,所有其他属性都是可选的。
name 属性指定要使用的时间源类型,可以是以下之一:

表 8.2. 名称属性值

描述
pitProgrammable Interval Timer - 带有定期中断的计时器。
rtc实时时钟 - 持续运行带有定期中断的计时器。
tsc时间戳计数器 - 计算重置后空数,没有中断。
kvmclockKVM 时钟 - KVM 客户机虚拟机的建议时钟源。KVM pvclock 或 kvm-clock 可让 guest 虚拟机读取主机物理机器的墙时钟时间。