故障现象
某资源池在运行过程中一台虚拟机出现业务异常,通过查看日志和异常记录,判断为虚拟机发生时钟跳变问题,如下图所示。
故障分析
检查时钟跳变异常的原因可能有如下四个:
虚拟机和时钟源时间是否正常同步。
是否发生过时钟跳变,导致虚拟机同步发生时钟跳变。
虚拟机是否发生过重启,导致时钟和硬件同步。
虚拟机是否有其他的时钟源,导致时钟在两个时钟源中变化。
根据分析原因,进行问题排查:
1. 检查虚拟机是否和时钟源正常时钟同步。
登录到虚拟机内部,通过ntpq -np命令查看虚拟机和时钟源的同步状态正常,未有大的偏差,如下图所示。
2. 检查时钟源服务器,确认是否发生过时钟跳变等情况。
联系时钟源服务厂家,通过检查时钟源日志和其他业务系统时钟日志,未发现时钟中断和跳变情况,初步判断该跳变情况只发生在问题虚拟机上。
3. 检查虚拟机是否发生过重启,有无和硬件时钟发生同步。
通过执行uptime命令检查虚拟机内部状态,近期未发生重启现象,如下图所示。
4. 检查虚拟机是否有其他时钟源,导致虚拟机时钟跳变。
a. 通过执行ntpq -np命令查看目前虚拟机内部只有一个时钟源,因此需要查看是否有同步计算节点配置。
b. 登录虚拟机内部,执行ps -ef|grep qemu-guest-agent进程,查看存在qemu客户端,如下图所示。
c. 登录计算节点系统,通过执行systemctl status qga.service和rpm -qa | grep qemu命令,确认计算节点qemu对应服务是否正常在线,如下图所示。
d. 登录计算节点系统,通过virsh list命令读取虚拟机的ID,执行virsh dumpxml ID|grep "nova:name" 命令确认虚拟机,执行virsh dumpxml ID|grep -A5 -B5 guest_agent命令确认虚拟机配置,如下图所示。
e. 检查配置文件,确认当前虚拟机和计算节点是10分钟发生一次强制同步,如下图所示。其中“interal = 10 unit= minute ”代表10分钟。
5. 经过排查,确认虚拟机每10分钟周期强制和计算节点时间同步,由于计算节点时钟和时钟源有偏差,导致虚拟机发生时钟跳变影响业务。
故障处理
1. 虚拟机时钟同步服务器默认不打开,只有虚拟机重启时候会触发一次强制同步。
2. 如果需要打开虚拟机时钟同步,则需要在虚拟机上安装QGA插件,同时在虚拟机中把QGA插件的时钟同步开关打开。
3. 业务上线前必须明确时钟同步方案,通常虚拟机需要直接同步时钟源,不同步计算节点,避免时钟跳变。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !