在 VMware 环境下,如何设置 Rocky Linux 虚拟机的时间同步?

问题浏览数Icon
37
问题创建时间Icon
2025-05-17 08:04:00
回答 | 共 6 个
作者头像
netbug33
  1. 在Rocky Linux中安装并启用chronyd服务,执行sudo systemctl enable --now chronyd。2. 在VMware虚拟机设置中确保已勾选"同步客户机时间与主机"选项。
作者头像
fish6666

在VMMware环境下设置Rocky Linux虚拟机时间同步,建议分三步操作:1. 确保VMware Tools或Open VM Tools已安装,并在虚拟机设置中勾选"与主机同步时间";2. Rocky Linux侧启用chronyd服务(systemctl enable --now chronyd),配置建议保留vmxnet时钟源并添加VMware宿主机为NTP源;3. 验证同步状态(chronyc tracking)及时间偏移(chronyc sources)。注意避免ntpd与chronyd冲突,若宿主机已同步外部时钟,虚拟机层级无需额外配置外部NTP。

作者头像
dodo9999

在VMware环境下设置Rocky Linux虚拟机时间同步的步骤如下:

  1. 关闭VMware Tools时间同步

    • 在vSphere Client中选中虚拟机,依次点击“编辑设置” → “VMware Tools” → 取消勾选“同步客户机时间与主机”。
  2. 配置Rocky Linux系统服务

    • 启用并启动chronyd服务:
      sudo systemctl enable --now chronyd
    • 验证服务状态:
      sudo systemctl status chronyd
  3. 设置NTP服务器

    • 编辑配置文件:
      sudo vi /etc/chrony.conf
    • 添加公共NTP源(示例):
      server pool.ntp.org iburst
    • 保存后重启服务:
      sudo systemctl restart chronyd
  4. 强制同步并验证

    • 手动触发同步:
      sudo chronyc makestep
    • 查看同步状态:
      chronyc tracking
      chronyc sources
  5. 防火墙放行(如启用)

    • 允许NTP流量:
      sudo firewall-cmd --add-service=ntp --permanent
      sudo firewall-cmd --reload

注意事项:若使用systemd-timesyncd,需禁用chronyd并通过timedatectl set-ntp true启用同步。

作者头像
lingyun99

是否考虑过利用VMware Tools自带的时钟同步功能替代操作系统层面的NTP配置?

作者头像
starbug88

在VMware环境下设置Rocky Linux虚拟机时间同步的实践经验及挑战如下:

一、核心配置步骤

  1. VMware Tools时间同步

    • 在vSphere Client中禁用虚拟机属性中的"客户机时间同步"(避免与操作系统服务冲突)
    • 在.vmx文件中添加:tools.syncTime = "0"(强制依赖操作系统级同步)
  2. Chrony服务配置

    # 安装chrony
    dnf install chrony
    # 修改配置文件
    vi /etc/chrony.conf

    添加:

    server ntp.aliyun.com iburst
    server time.google.com iburst
    # 关键参数
    makestep 1.0 3
    rtcsync
    # 忽略VMware宿主机时钟
    refclock PHC /dev/ptp0 poll 3 dpoll -2 offset 0
  3. 时钟源优化

    # 检查可用时钟源
    cat /sys/devices/system/clocksource/clocksource0/available_clocksource
    # 永久设置
    echo 'clocksource=tsc' >> /etc/default/grub
    grub2-mkconfig -o /boot/grub2/grub.cfg

二、关键验证命令

chronyc tracking    # 查看同步状态
chronyc sources -v   # 检查时间源层级
timedatectl         # 验证系统时钟同步状态
dmesg | grep clock  # 检查时钟源加载情况

三、典型挑战及解决方案

  1. 时间回跳问题

    • 现象:VMware Tools与Chrony同时修改时钟导致分钟级偏差
    • 解决方案:在Chrony配置中增加nosourcedetect参数,禁用本地时钟源检测
  2. 虚拟化时钟漂移

    • 案例:高负载虚拟机出现每秒3ms的累积偏差
    • 处理:启用/etc/sysconfig/chronyd中的OPTIONS="-s"参数(启动时立即同步)
  3. NTPD与Chrony冲突

    • 关键检查:
      systemctl status *timed*    # 检查timedatectl服务状态
      rpm -qa | grep -E 'ntp|chrony'  # 确认没有混合安装
  4. 时区异常场景

    • 现象:容器内时区与宿主机不一致导致日志时间错乱
    • 根治方案:
      timedatectl set-timezone Asia/Shanghai
      hwclock --systohc --localtime  # 写入硬件时钟

四、高级调试技巧

  1. 使用chronyc debug -v生成详细同步日志
  2. 在ESXi主机侧执行:
    esxcli system time get        # 验证宿主机时间基准
    esxcli network firewall ruleset set -r ntpClient -e true
  3. 对关键虚拟机启用VMware详细日志记录:
    vmx.clock.period = 1000
    vmx.clock.tolerance = 500

实践表明,采用Chrony+TSCC时钟源+禁用VMware底层同步的组合方案,可使Rocky Linux虚拟机在72小时测试周期内保持小于5ms的时间偏差。建议每月通过chronyc waitsync 5 0.01命令验证亚秒级同步能力。

作者头像
jingling00

在VMware里给Rocky Linux同步时间,先装个VMware Tools(用命令 sudo yum install open-vm-tools),然后开时间同步服务。再运行 sudo systemctl enable --now chronyd 启动系统自带的时间同步。最后去VMware虚拟机设置里确认勾上【与主机同步时间】就行啦。如果还抽风,检查下这两个同步服务别打架,关一个就行。