楼主: TaytayZYC
34 0

[其他] Linux时间同步问题排查记录 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2018-9-13
最后登录
2018-9-13

楼主
TaytayZYC 发表于 2025-11-20 18:32:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

问题描述

观察到服务器时间提前了3分钟,在使用 date -s 命令修改时间后,经过一段时间,时间再次提前了3分钟。

问题排查

首先,检查是否存在与时间同步相关的 ntp 或 chrony 进程(包括容器内的进程):

ps aux | grep -E 'ntp|chrony|vdso|vmtoolsd|qemu-ga'

问题分析

在名为 admin312 的服务器上,存在两种时间同步机制:

  • VMware 宿主机级同步:vmtoolsd 正在运行,默认情况下每30秒将宿主机时间同步到虚拟机。
  • chronyd 服务:如果配置了 NTP 源,chronyd 服务会逐渐调整时间以保持同步。

解决方案

方案一:禁用所有时间同步

通过禁用所有时间同步功能,可以手动管理时间,适用于需要频繁更改时间的测试场景。

  1. 禁用 VMware Tools 时间同步:
    # 禁用 VMware Tools 时间同步
    vmware-toolbox-cmd timesync disable
    # 验证状态
    vmware-toolbox-cmd timesync status
    # 应显示 "已禁用"
  2. 停止并禁用 chronyd 服务:
    # 停止 chrony 服务
    systemctl stop chronyd
    # 禁用 chrony 开机自启
    systemctl disable chronyd
    # 检查 chrony 是否已停止
    ps aux | grep chronyd
  3. 手动设置时间:
    # 改系统时间
    date -s "2025-11-18 18:40:00"
    # 写回硬件时钟
    hwclock --systohc

方案二:仅使用 chrony

禁用 VMware Tools 时间同步,保留 chronyd 服务进行时间同步,需要配置一个可靠的 NTP 时间源。

  1. 配置 NTP 时间源:
    # 编辑配置文件
    vim /etc/chrony.conf
    # 重启服务
    systemctl restart chronyd
    # 查看同步状态
    timedatectl

方案三:仅使用 VMware Tools

关闭 chronyd 服务,仅依赖 VMware Tools 进行时间同步。需要注意的是,某些环境下可能不允许虚拟机直接访问宿主机的详细信息。

  1. 尝试获取宿主机信息:
    /usr/bin/vmtoolsd --cmd "info-get guestinfo.esxhost"
  2. 登录宿主机,继续执行排查命令:
    ps aux | grep -E 'ntp|chrony|vdso|vmtoolsd|qemu-ga'

进一步排查

在某些情况下,可能有其他脚本或进程定期运行 ntpdate -u 10.0.31.127 命令,导致时间被强制同步。为了捕获这些进程,可以使用以下方法:

  1. 打开两个终端窗口(或使用 screen)。
  2. 在终端 A 中,实时监控 ntpdate 进程:
    while true; do
    pid=$(pgrep -n ntpdate)
    if [[ -n $pid ]]; then
    echo "=== ntpdate PID $pid spotted ==="
    ps -fp "$pid"
    cat /proc/$pid/cmdline | tr '\0' ' '; echo
    ls -l /proc/$pid/exe
    lsof -p "$pid" | grep -E 'txt|cwd'
    break
    fi
    sleep 1
    done
  3. 在终端 B 中,手动更改时间以加速捕获过程:
    date -s "2025-11-18 18:10:00"

最终分析

通过捕获到的信息发现,Parastor 存储套件的主守护进程 /home/parastor/bin/oMgcd 定期调用 ntpdate -u 10.0.31.127 进行时间同步。由于这是商用分布式存储自带的健康检查和集群同步逻辑,直接终止或修改二进制文件可能会导致集群告警。

进一步检查 10.0.31.127 的时间同步情况:

尽管 NTP 未启用,但时间已经与其他外部源同步。这意味着可以使用方案一中的手动修改时间命令来调整时间。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Linux Lin toolbox vmware System

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-12 16:11