18 VM Guest 时钟设置 #
在 VM Guest 中保持准确的时间是虚拟化的一项较为困难的工作。保持准确的时间对于网络应用程序特别重要,也是进行 VM Guest 实时迁移的先决条件。
强烈建议在 VM 主机服务器上也保持准确的时间,例如,通过使用 NTP 来实现(有关详细信息,请参见第 30 章 “使用 NTP 同步时间”)。
18.1 KVM:使用 kvm_clock
#
KVM 提供通过 kvm_clock
驱动程序支持的半虚拟化时钟。强烈建议使用 kvm_clock
。
在运行 Linux 的 VM Guest 中使用以下命令来检查是否已装载 kvm_clock
驱动程序:
tux >
sudo
dmesg | grep kvm-clock [ 0.000000] kvm-clock: cpu 0, msr 0:7d3a81, boot clock [ 0.000000] kvm-clock: cpu 0, msr 0:1206a81, primary cpu clock [ 0.012000] kvm-clock: cpu 1, msr 0:1306a81, secondary cpu clock [ 0.160082] Switching to clocksource kvm-clock
要检查当前使用了哪个时钟源,请在 VM Guest 中运行以下命令。此命令应该会输出 kvm-clock
:
tux >
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
和 NTP
使用 kvm-clock
时,建议同时在 VM Guest 中使用 NTP,并在 VM 主机服务器上也使用 NTP。
18.1.1 其他计时方法 #
半虚拟化 kvm-clock
目前不适用于 Windows* 操作系统。对于 Windows*,请使用 Windows 时间服务工具
进行时间同步(有关详细信息,请参见 http://technet.microsoft.com/en-us/library/cc773263%28WS.10%29.aspx)。
18.2 Xen 虚拟机时钟设置 #
在 Xen 4 中,已去除用于在 Xen 主机与 Guest 之间进行时间同步的独立时钟设置 /proc/sys/xen/independent_wallclock
。引入了新配置选项 tsc_mode
。此选项指定利用时戳计数器将 Guest 时间与 Xen 服务器同步的方法。其默认值“0”适合绝大多数硬件和软件环境。
有关 tsc_mode
的更多细节,请参见 xen-tscmode
手册页 (man 7 xen-tscmode
)。