首页/云/云平台与虚拟化速查/virsh domtime 查看与同步 guest 时间
虚拟化操作94 条

virsh domtime 查看与同步 guest 时间

domtime 通过 guest agent 通道读取 guest 时间并与宿主比对;--sync 可把 guest 时间同步到宿主。时钟漂移排查时先看它,再看宿主的 NTP 状态。

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

domtime 是什么

virsh domtime 通过 guest agent 通道读取 guest 内的时间并与宿主比对,加 --sync 则把 guest 时间同步到宿主时间。它适合排查时钟漂移类问题:先看 domtime 的结果,再核对宿主的 NTP 状态与 guest 内的校时服务。

基本信息

查看virsh domtime vm1
同步virsh domtime --sync vm1
前提guest 内运行 qemu-guest-agent
通道走 agent,agent 未运行时会报错而非返回旧值
典型场景快照回滚、长时间挂起恢复后的时间漂移
配套检查宿主 NTP 状态与 guest 校时服务一起看

典型使用场景

  • 虚机快照回滚后时间倒退
  • 宿主长时间挂起或休眠恢复后时间异常
  • 数据库主从复制异常时排查两侧时间差
  • 监控上报时间戳错乱,定位是采集端还是系统时间问题
  • 虚拟化平台巡检时抽查 guest 与宿主的偏差

比对与同步

比对与同步
date -u                       # 先看宿主 UTC 时间
virsh domtime vm1             # 读取 guest 时间并与宿主比对
virsh domtime --sync vm1      # 把 guest 时间同步到宿主
virsh qemu-agent-command vm1 '{"execute":"guest-get-time"}' --pretty   # 直接问 agent
chronyc tracking              # guest 内看校时服务状态

现象与处理

现象常见原因处理
guest 时间倒退快照回滚到较早时点恢复后触发一次校时
时间缓慢漂移guest 未启用校时服务在 guest 内配置 NTP 或 chrony
时间突然跳跃宿主休眠或挂起恢复同步后核对依赖时间的业务
domtime 无输出guest agent 未运行安装并启动 qemu-guest-agent
强制同步可能让 guest 内时间跳变:对时间敏感的数据库与分布式系统要走可接受流程(在一致性窗口内处理),不要在业务高峰直接跳表。
时间同步是两层的事:宿主先与可靠时间源对齐,guest 再与宿主或外部源对齐。只修一头,问题还会以相同的现象回来。

易错点

  • guest 未装 agent:domtime 获取失败或没有输出
  • 把 --sync 当常规操作频繁执行,guest 内时间反复跳变影响应用
  • 只同步 guest 不管宿主时间源,宿主本身就漂了,同步等于把错误传下去
  • 快照回滚后未触发校时,证书校验与 token 验签报错才发现时间不对
  • guest 内已配置 NTP 仍频繁从宿主侧 --sync,两套校时互相干扰
  • 把时间异常一律归因于虚拟化平台,漏查 guest 内校时服务本身配置错误
  • 只看秒级偏差不看时区设置,UTC 与本地时间混用导致读数误判
  • 在业务高峰同步时间而未评估影响,日志与定时任务时间线出现跳变

数据来源与参考

  • virsh 手册:domtime
  • QEMU 文档:guest agent 时间同步
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌