首页/云/云平台与虚拟化速查/KVM 客户机时钟源与校时
虚拟化操作94 条

KVM 客户机时钟源与校时

KVM guest 常用 kvm-clock 时钟源配合 chrony/NTP 校时;排查时间跳变时先看当前时钟源,再看校时服务与虚拟化特性配合情况。

云平台与虚拟化速查云更新于 2026-10-13

KVM 客户机时钟

KVM 客户机的时间由两部分决定:时钟源(clocksource,常见为 kvm-clock)与校时服务(chrony / NTP)。排查时间跳变时按顺序看:先确认当前时钟源,再看校时服务是否正常,最后核对虚拟化侧事件——快照回滚、宿主挂起恢复都会改变时间基准。

基本信息

时钟源读 /sys/devices/system/clocksource/clocksource0/current_clocksource
时间状态timedatectl status
校时服务chronyc tracking、chronyc sources -v
典型场景快照回滚、宿主休眠恢复后的时间漂移
排查顺序时钟源 → 校时服务 → 虚拟化事件
交叉验证宿主侧用 virsh domtime 读取 guest 时间比对

典型使用场景

  • 虚机恢复后发现时间不对
  • 分布式系统出现时间偏差告警
  • 数据库主从复制因两侧时间差异异常
  • 日志时间线错乱,需要确认是采集还是系统时间问题
  • 虚拟化平台巡检时统一确认时间一致性

检查顺序

检查顺序
cat /sys/devices/system/clocksource/clocksource0/current_clocksource   # 当前时钟源
timedatectl status                        # 是否启用了 NTP 同步
chronyc tracking | head -8                # 偏差与参考源状态
chronyc sources -v | head -8              # 各时间源的可用情况
virsh domtime vm1                         # 宿主侧交叉验证 guest 时间

检查项与判读

检查项命令正常表现
时钟源读 clocksource 文件显示 kvm-clock 或 tsc 等可用源
时间状态timedatectl statusNTP 已激活,同步状态正常
校时服务chronyc tracking偏差小且参考源可达
交叉验证virsh domtime与宿主时间差在可接受范围
快照回滚会把 guest 时间带回快照时刻:恢复后应主动触发一次校时,并确认依赖时间的业务(证书校验、token 验签、定时任务)没有异常。
宿主定期替 guest 对表不是通用做法:宿主侧反复同步可能干扰 guest 自身的校时服务。更常见的分工是宿主保证自己的时间准确,guest 负责自己的校时。

易错点

  • 排查时间跳变只查 NTP:时钟源与宿主同步路径也要一并核对
  • 快照回滚后忘记校时,token 验签与证书校验开始批量报错
  • 宿主与 guest 同时做时间同步,两边互相拉扯导致时间反复调整
  • 定时任务在时间跳变后重复执行或跳过,缺少幂等设计
  • guest 配了多个质量不一的时间源,chrony 频繁换源造成阶跃调整
  • 只修 guest 不修宿主时间源,漂移会在下一次同步时原样出现
  • 虚机长期高负载时时钟漂移被放大,未做校时监控就只能等业务报错
  • 宿主机时间同步配置被变更后未复核 guest,偏差在下一次窗口才暴露

数据来源与参考

  • Red Hat 文档:客户机时钟管理
  • chrony 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌