在 ESX 主机上安装和配置 NTP
search cancel

在 ESX 主机上安装和配置 NTP

book

Article ID: 309264

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

免责声明:本文为 Installing and Configuring NTP on an ESX host (1339)的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


本文提供在 ESX 2.x 和 3.0.x 主机上安装和配置 NTP 的步骤。

注意:对于 ESX 3.5 及更高版本,可以从 vSphere Client 配置 NTP,不再需要手动配置。有关详细信息,请参见您的 ESX 版本所对应的 documentation

警告:示例服务器名称如有更改恕不另行通知。确保所有 NTP 服务器在实现时均可访问,并经常进行检查。使用解析名称,避免使用硬编码地址。在设计的最初,还要确保在 NTP 池上规划了足够的冗余。

Environment

VMware ESX Server 3.0.x
VMware ESX Server 3.5.x
VMware ESX Server 2.1.x
VMware ESX Server 2.5.x

Resolution

自 ESX Server 2.0.1 开始,在 ESX 安装期间会默认安装 NTP。

注意:对于 ESX Server 2.0.0,请参见后文的说明来安装和配置 NTP。

在 ESX 2.0.1 及更高版本上配置 NTP

要在服务控制台上配置 NTP,必须执行以下操作:

  1. 编辑以下配置文件:
  2. 运行以下命令(仅对 ESX Server 3.0):

    注意:该命令将打开合适的端口并使 NTP 守护进程能够与外部服务器通信。

    [root@esxhost]# esxcfg-firewall --enableService ntpClient

  3. 重新启动 ntpd


编辑 /etc/ntp.conf

指定 ESX 系统将同步到的 NTP 服务器池。有关使用 NTP 服务器池的详细信息,请参见 http://www.pool.ntp.org/use.html

  1. 以 root 用户的身份登录服务控制台。
  2. 运行以下命令备份 /etc/ntp.conf

    cp /etc/ntp.conf /etc/ntp.conf.bk

  3. 编辑默认 /etc/ntp.conf 文件(ESX 安装所创建),使该文件类似于:

    restrict 127.0.0.1
    restrict default kod nomodify notrap
    server 0.vmware.pool.ntp.org
    server 1.vmware.pool.ntp.org
    server 2.vmware.pool.ntp.org
    driftfile /var/lib/ntp/drift


    注意
    • ESX 3.0.2 及早期版本使用 /etc/ntp/drift 作为 driftfile 的位置。

    • restrict – 第一个 restrict 为必需项,因为 ntpd 需要通过环回网络解析主机名称地址。如果该条目不存在,系统日志 (/var/log/messages) 将显示以下内容:

      ntpd_initres: ntpd returns a permission denied error

      对于直接连接 Internet 的系统,第二个 restrict 行提供 NTP 的一般 UDP 欺诈基本级别保护。

    • kod – 访问违规时发送 KoD 包。

    • nomodify – 拒绝试图修改服务器的运行时配置的 ntpqntpdc 查询。允许返回信息的查询。

    • notrap – 拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

为了实现更好的保护,您可能想要添加 noquery(用于阻止远程查询)和 nopeer(用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟)。

有关这些访问控制命令的完整说明,请参见 http://www.eecis.udel.edu/~mills/ntp/html/accopt.html

0.vmware.pool.ntp.org1.vmware.pool.ntp.org2.vmware.pool.ntp.org 名称指向一组每小时都在变化的随机服务器。

driftfile 行指出用来存储系统时钟偏移(频率错误)的文件的名称。有关更完整的 driftfile 定义,请参见 http://www.eecis.udel.edu/~mills/ntp/html/notes.html

编辑 /etc/ntp/step-tickers

在服务控制台上以 root 用户身份执行以下步骤:

  1. 使用以下命令备份 /etc/ntp/step-tickers 文件:

    cp /etc/ntp/step-tickers /etc/ntp/step-tickers.bk

  2. 编辑 /etc/ntp/step-tickers 以使文件类似于该示例:

    0.vmware.pool.ntp.org
    1.vmware.pool.ntp.org
    2.vmware.pool.ntp.org


仅 ESX 3.0:启用 NTP Client 用于防火墙

如前文所述,记得运行该命令以打开合适的端口并使 NTP 守护进程能够与外部服务器通信:
[root@esxhost]# esxcfg-firewall --enableService ntpClient


重新启动并监控 NTP 服务

在服务控制台上以 root 身份执行以下步骤:

  1. 编辑 /etc/ntp.conf/etc/ntp/step-tickers 文件之后,重新启动 NTP 服务。

    • 要立即重新启动服务,请运行以下命令:

      service ntpd restart

    • 要使 NTP 守护进程在服务器重新引导时自动启动,可运行以下命令:

      chkconfig --level 345 ntpd on

  2. 将本地硬件时钟设置为 NTP 同步的本地系统时间。运行以下命令:

    hwclock --systohc

    由于 ntpd 成功轮询 NTP 服务器,内核会定期将硬件时钟自动设置为系统时钟的时间。

  3. 根据需要监控 NTP 服务:

    • 要查看本地时钟与源时钟之间的偏移(秒),请运行以下命令:

      ntpdate -q time_server_name_or_ip_address

      如果为了将本地时钟与时间服务器同步而更正的值足够大,则当虚拟机将其时钟与运行虚拟机的 ESX Server 系统同步时,会影响在这些虚拟机中运行的操作系统或应用程序。

    • 要查看 ntpd 进程的状态,请运行以下命令:

      watch "ntpq -p"

      Ctrl+C 停止查看进程。

      注意以下列中的信息:

      • 第一列中的字符指示源的质量。
      • 星号 ( * ) 表示该源是当前引用。
      • remote 列出源的 IP 地址或主机名。
      • when 指出从轮询源开始已过去的时间(秒)。
      • poll 指出轮询间隔时间。该值会根据本地时钟的精度相应增加。
      • reach 是一个八进制数字,指出源的可存取性。值 377 表示源已应答了前八个连续轮询。
      • offset 是源时钟与本地时钟的时间差(毫秒)。

      注意:如果 ntpq -p 返回 ntpq: read: Connection refused,请查看 /var/log/messages 以了解更详细的错误消息。
有关 NTP 的更多文档,请参见 NTP documentation

ESX Server 2.0.0

要在控制台操作系统(服务控制台)上安装和配置 NTP,请执行以下操作:

  1. 以 root 用户身份登录到控制台。
  2. 在控制台上挂载 ESX Server CD:

    mount /mnt/cdrom

  3. 将目录切换到 /mnt/cdrom/RedHat/RPMS 目录。
  4. 运行以下命令安装 NTP 软件包:

    rpm -Uhv ntp-*.i386.rpm

  5. 将目录切换到 /etc 目录。
  6. /etc 目录(您已在第 5 步切换到该目录)中查找 ntp.conf 文件(安装 rpm 之后)。运行以下命令编辑该文件:

    vi ntp.conf

  7. 找到以下行:

    server 127.127.1.0 # local clock

    将其改为:

    server 192.6.38.127 # This is an example only

  8. 保存此文件。
  9. /etc/ntp 目录中创建名为 step-tickers 的文件。在该文件中,列出引用时间服务器的主机名称。
  10. 要使 ntp 守护进程在服务器重新引导时自动启动,请运行以下命令:

    chkconfig ntpd on

  11. 要立即启动 ntp 守护进程而不重新引导,请运行以下命令:

    /etc/rc.d/init.d/ntpd start

    时间漂移在片刻之后会更正。

  12. 等待几秒钟(最多一分钟),然后运行以下命令:

    ntpq -p

    这将列出当前状态。

  13. 运行以下命令卸载 ESX Server CD:

    umount /mnt/cdrom
这些示例使用从一列开放存取 NTP 服务器获得的源服务器 IP 地址。可以从 http://support.ntp.org/bin/view/Servers/WebHome 选择适合您的一个地址。

其他信息

有关本文的翻译版本,请参见:


Additional Information

Installing and Configuring NTP on an ESX host