启用网络时间协议 (NTP)
重要
如果在数据库运行时更改主机 NTP 设置,可能会导致数据损坏和性能问题。在更改 NPT 设置之前,请先停止数据库。如果无法停止数据库,请停止每台主机上的 Vertica 进程,然后更改 NTP 设置,一次一台主机。
有关详细信息,请参阅在主机上停止 Vertica。
必须在群集中的所有主机上运行网络时间协议 (NTP) 守护程序,才能使其时钟保持同步状态。Spread 守护程序依赖于所有节点将其时钟进行同步,以用于定时用途。如果节点没有运行 NTP,则安装可能失败,并且显示 spread 配置错误或其他错误。
注意
不同的 Linux 发行版以不同的方法引用 NTP 守护程序。例如,SUSE 和 Debian/Ubuntu 称其为ntp
,而 CentOS 和 Red Hat 称其为 ntpd
。如果以下命令产生错误,请尝试使用其他 NTP 守护程序引用名称。
验证 NTP 是否正在运行
为验证主机是否已配置为在启动时运行 NTP 守护程序,请输入以下命令:
$ chkconfig --list ntpd
Debian 和 Ubuntu 不支持 chkconfig
,但它们提供了可选的软件包。可使用命令 sudo apt-get install sysv-rc-conf
安装此软件包。为验证是否已使用 sysv-rc-conf
实用工具将主机配置为在启动时运行 NTP 守护程序,请输入以下命令:
$ sysv-rc-conf --list ntpd
chkconfig
命令可能生成类似于 ntpd: unknown service
的错误。如果出现此错误,请验证 Linux 发行版将 NTP 守护程序称为 ntpd
,而不是 ntp
。否则,在配置之前,需要安装 NTP 守护程序软件包。有关如何查找和安装软件包的说明,请查阅 Linux 文档。
如果已安装 NTP 守护程序,则应显示与以下类似的输出:
ntp 0:off 1:off 2:on 3:on 4:off 5:on 6:off
该输出指示了运行守护程序的运行级别。验证系统的当前运行级别(通常为 3 或 5)已将 NTP 守护程序设为 on
。如果当前运行级别未知,可使用 runlevel
命令查明运行级别:
$ runlevel
N 3
为 Red Hat 6/CentOS 6 和 SLES 配置 NTP
如果系统基于 Red Hat 6/CentOS 6 或 SUSE Linux Enterprise Server,请使用 service
和 chkconfig
实用程序启动 NTP 并将其设为在系统启动时启动。
$ /sbin/service ntpd restart
$ /sbin/chkconfig ntpd on
-
Red Hat 6/CentOS 6 —NTP 使用位于 ntp.org 的默认时间服务器。可通过编辑
/etc/ntpd.conf
来更改默认的 NTP 服务器。 -
SLES —默认情况下未配置任何时间服务器。在安装完成并添加时间服务器后,必须编辑
/etc/ntpd.conf
。
为 ubuntu 和 debian 配置 NTP
默认情况下,一些 Ubuntu 和 Debian 系统上没有安装 NTP 守护程序。首先安装 NTP,然后启动 NTP 进程。如下所示,可通过编辑 /etc/ntpd.conf
来更改默认的 NTP 服务器:
$ sudo apt-get install ntp
$ sudo /etc/init.d/ntp reload
验证 NTP 是否正在正常运行
要验证网络时间协议守护程序 (NTPD) 是否正确运行,请在群集中的所有节点上发出以下命令。
对于 Red Hat 6/CentOS 6 和 SLES:
$ /usr/sbin/ntpq -c rv | grep stratum
对于 Ubuntu 和 Debian:
$ ntpq -c rv | grep stratum
层级别 16 指示 NTP 未正确同步。
如果检测到层级别 16,则等待 15 分钟,然后再次发出该命令。要使 NTP 服务器稳定下来,可能需要这么长时间。
如果 NTP 仍旧检测到层级别 16,则验证在群集与您尝试同步的远程计算机之间的所有防火墙上,NTP 端口(UDP 端口 123)是否均处于开放状态。
与 NTP 相关的 Red hat 文档
前述链接是截至 Vertica 文档上次发布时的最新链接,并且在不同版本之间可能有所变化。