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 status | NTP 已激活,同步状态正常 |
| 校时服务 | chronyc tracking | 偏差小且参考源可达 |
| 交叉验证 | virsh domtime | 与宿主时间差在可接受范围 |
快照回滚会把 guest 时间带回快照时刻:恢复后应主动触发一次校时,并确认依赖时间的业务(证书校验、token 验签、定时任务)没有异常。
宿主定期替 guest 对表不是通用做法:宿主侧反复同步可能干扰 guest 自身的校时服务。更常见的分工是宿主保证自己的时间准确,guest 负责自己的校时。