配置时钟源
操作场景
安装云数据库GaussDB管理平台(TPOPS)需要保证各节点间的时钟源同步,现提供如下两种可供参考的时钟源配置指导。请用户依据实际情况进行配置,确保时间同步在30秒之内。
- 监控、告警等服务,依赖服务器时间,请正确配置时间同步并确保时间服务器正常。
- 时钟源的服务端指的是对外提供时间的主机,客户端指的是需要从服务端同步时间的主机。
- 需要保持云数据库GaussDB管理平台(TPOPS)设置的时钟源和数据面节点设置的时钟源一致,且各节点间的时钟源也需要保证一致。
- 如果云数据库GaussDB管理平台(TPOPS)设置的时钟源需要修改,可参考如何更新云数据库GaussDB管理平台(TPOPS)时钟源。
- 推荐使用Chrony(Chrony Time Daemon)来自动同步各主机上的系统时间,使云数据库GaussDB管理平台(TPOPS)各服务器之间的时间保持正确和一致。可参考使用Chrony配置时间同步进行配置。请注意,统信系统仅可使用Chrony配置时钟源。
- 如果需使用NTP(Network Time Protocol)来自动同步各主机上的系统时间,使云数据库GaussDB管理平台(TPOPS)各服务器之间的时间保持正确和一致。可参考使用NTP配置时间同步进行配置。
前提条件
- 配置时钟源前,确保您拥有所有机器的root用户权限。
- 配置时钟源的服务端主机与客户端主机的网络需要互通,并且Chrony或者NTP服务端口不被防火墙拦截。
- 若作为时钟源的服务端主机开启了防火墙,则需要参考检查防火墙章节保证Chrony或者NTP服务端口可以通信
- 若作为时钟源的服务端主机开启了iptables,则需要执行以下命令为时钟同步服务添加规则:
- iptables -I INPUT -p udp --dport 323 -j ACCEPT
- iptables -I INPUT -p udp --dport 123 -j ACCEPT
- 保存iptables规则:
iptables-save > /etc/sysconfig/iptables
使用Chrony配置时间同步
为了保证时间误差在要求范围以内,推荐使用Chrony(Chrony Time Daemon)来自动同步待配置时间同步的服务器节点的系统时间,可参考以下步骤进行配置。
- 登录到待配置时间同步的所有服务器节点。
- 键入“chrony”并连按两次“Tab”键观察,检查是否安装了chrony。
- 若显示chronyc和chronyd,则表示已经安装了chrony。继续执行后续步骤。
- 若未显示则表示当前未安装chrony,执行以下命令进行安装。
- 如果软件包管理器为yum源,则执行以下命令,进行安装。
yum install chrony -y
- 如果软件包管理器为zypper源,则执行以下命令,进行安装。
zypper install chrony
如果回显“Choose from above solutions by number or cancel [1/2/3/c] (c):”,键入包含“install xx (with vendor change)”显示的Solution数字即可。
如果回显“Continue? [y/n/...? shows all options] (y):”,键入“y”即可。
- 如果软件包管理器为yum源,则执行以下命令,进行安装。
- 执行以下命令,修改服务端配置。
该步骤修改的是服务端配置,请勿修改客户端。
- 使用vi命令编辑/etc/chrony.conf。
vi /etc/chrony.conf
- 参照如下图示,添加“allow all”信息。
![点击放大]()
- 参照如下图示,删除“#”,取消“local stratum 10”所在行的注释。
![点击放大]()
- 按“Esc”键后执行:wq!命令,保存并退出。
- 执行以下命令,重启服务端chrony服务并设置开启自启动。
systemctl enable chronyd
systemctl restart chronyd
- 使用vi命令编辑/etc/chrony.conf。
- 执行以下命令,修改客户端配置。
该步骤修改的是客户端配置,请勿修改服务端。
- 使用vi命令编辑客户端的/etc/chrony.conf文件。
vi /etc/chrony.conf
- 参照如下图示,添加“#”注释掉配置文件最前面原有的pool行,并新增“server 时间同步服务器域名/IP地址 iburst”。
![点击放大]()
- 按“Esc”键后执行:wq!命令,保存并退出。
- 执行以下命令,重启客户端chrony服务并设置开机自启动。
systemctl enable chronyd
systemctl restart chronyd
- 使用vi命令编辑客户端的/etc/chrony.conf文件。
- 执行以下命令,检查chrony同步状态。
chronyc sources
回显如下:210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 172.213.144.12 10 6 377 34 -464ns[-2528ns] +/- 73us
其中:
- M:表示时钟源的模式,常见的符号包括:
- ^:表示服务器。
- =:表示对等机。
- #:表示本地时钟。
- S:表示时钟源的状态,常见的符号包括:
- * :表示该服务器是当前选择用于同步的最佳服务器。
- +:表示该服务器是候选服务器,可以用于同步。
- - :表示该服务器是可选择的,但当前未被选中。
- ? :表示该服务器的状态不确定,可能已失去连接或数据包未通过测试。
- x :表示chronyd认为该服务器是虚假的,时间与大多数其他服务器不一致。
- ~:表示该服务器的时间变化较大,可能不可靠。
- Name/IP address:服务器的名称或IP地址。
- Stratum:服务器的层级,数字越低表示时钟源距离系统时钟越近。
- Poll:客户端与服务器之间进行时间同步的频率(单位:秒)。
- Reach:服务器的可达性,反映过去几次时间同步请求的成功情况。
- LastRx:最后一次时间同步成功的时间(单位:秒)。
- Last sample:最后一次时间同步的时间偏移,包括偏移量和误差范围(单位:纳秒、微秒、毫秒或者秒)。
- M:表示时钟源的模式,常见的符号包括:
- (可选)最终检查方法。
在客户端与服务端同时使用如下命令查询,如服务端与客户端时间保持一致说明时钟源配置成功。
date
回显如下:
Fri Dec 15 07:39:58 UTC 2023
- (可选)手动同步方法。
如果时间总是存在很大误差,可以使用以下命令手动更正时间。
chronyc -a makestep
回显如下说明执行成功:
200 OK
使用NTP配置时间同步
为了保证时间误差在要求范围以内,推荐使用NTP(Network Time Protocol)来自动同步待配置时间同步的服务器节点的系统时间,可参考以下步骤进行配置。
通常使用系统自带的NTP服务可以同步时间。如果当前机器环境有稳定可靠的NTP服务器,则选它作为所有服务器的NTP源。
如果没有,则选固定的一台服务器,把它作为NTP源。
- 登录到待配置时间同步的所有服务器节点。
- 执行命令ntpq -p,检查是否安装了ntp。
- 如果未回显“command not found”,则表示已经安装了ntp。继续执行后续步骤。
- 如果回显“command not found”,则表示当前未安装ntp,执行以下命令进行安装。
- 如果软件包管理器为yum源,则执行以下命令,进行安装。
yum install ntp ntpdate -y
- 如果软件包管理器为zypper源,则执行以下命令,进行安装。
zypper install ntp
如果回显“Choose from above solutions by number or cancel [1/2/3/c] (c):”,键入包含“install xx (with vendor change)”显示的Solution数字即可。
如果回显“Continue? [y/n/...? shows all options] (y):”,键入“y”即可。
- 如果软件包管理器为yum源,则执行以下命令,进行安装。
- 配置ntp.conf文件,配置前做好备份。
【NTP服务器的搭建】
在NTP服务端/etc/ntp.conf文件的最后,添加如下内容,其中:
restrict 192.168.0.0 mask 255.255.0.0中:192.168.0.0需要替换为所配置NTP服务端IP地址对应的网段,255.255.0.0为服务端IP对应的netmask。
[root@* /]# vi /etc/ntp.conf restrict default ignore restrict 127.0.0.1 restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid #logfile /var/log/ntp.log # local clock server 127.127.1.0 fudge 127.127.1.0 stratum 10
【NTP客户端的搭建】
在NTP客户端/etc/ntp.conf文件的最后,添加如下内容,其中:
- restrict 192.168.0.0 mask 255.255.0.0中:192.168.0.0需要替换为所配置NTP客户端IP地址对应的网段,255.255.0.0为客户端IP对应的netmask。
- server 192.168.*.* iburst minpoll 4 maxpoll 6中:192.168.*.*需要替换为上述所配置的NTP服务端的IP地址。
[root@* /]# vi /etc/ntp.conf restrict 127.0.0.1 restrict 192.168.0.0 mask 255.255.0.0 driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid #logfile /var/log/ntp.log # local clock server 192.168.*.* iburst
参数解释:
- restrict:用于指定IP地址的相关时间同步命令权限。
restrict [客户端IP] mask [netmask_IP] [parameter]
其中parameter包括ignore、nomodify、noquery、notrap和notrust等。
- ignore:默认指拒绝所有类型的NTP同步。
- nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
- notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网。
- noquery:不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询NTP服务器。
- notrap:不提供trap远端登录:拒绝为匹配的主机提供模式6控制消息陷阱服务。陷阱服务是ntpdq控制消息协议的子系统,用于远程事件日志记录程序。
- server:用于指定上层NTP源服务器。
server [IP or hostname] [prefer]
如果没有上层NTP源服务器,可以设置为127.127.1.0,即本机作为NTP源服务器。
- 修改NTP同步模式为慢调模式。
- 如果为SUSE操作系统,执行以下操作修改NTP同步模式为慢调模式。
- 执行以下命令,打开/etc/sysconfig/ntp配置文件。
vi /etc/sysconfig/ntp
- 修改参数NTPD_OPTIONS的值为“-g -x -u ntp:ntp”。
NTPD_OPTIONS="-g -x -u ntp:ntp"
- 按“Esc”键后执行:wq!命令,保存并退出。
- 执行以下命令,打开/etc/sysconfig/ntp配置文件。
- 如果为麒麟、统信、HCE或者BCLINUX操作系统,执行以下操作修改NTP同步模式为慢调模式。
- 执行以下命令,打开/etc/sysconfig/ntpd配置文件。
vi /etc/sysconfig/ntpd
- 修改参数OPTIONS的值为“-g -x”。
OPTIONS="-g -x"
- 按“Esc”键后执行:wq!命令,保存并退出。
- 执行以下命令,打开/etc/sysconfig/ntpd配置文件。
- 如果为SUSE操作系统,执行以下操作修改NTP同步模式为慢调模式。
- 重启NTP同步服务并设置开机自启动。
systemctl enable ntpd
systemctl restart ntpd
执行systemctl restart ntpd,如果出现“Failed to restart ntpd.service: Unit ntpd.service not found.”的回显,请参照如下步骤配置。- 执行systemctl list-unit-files --type=service命令,检查服务列表里是否有ntpdate.service服务。
- 如果有ntpdate.service服务,执行systemctl daemon-reload命令。如果没有ntpdate.service服务,请检查ntp是否安装成功。
- 重启NTP同步服务。
- 检查NTP同步状态。
ntpq -p
回显如下:remote refid st t when poll reach delay offset jitter ======================================================================== LOCAL(0) .LOCL. 10 l 589 64 0 0.000 0.000 0.000 *192.168.*.* 10.10.10.1 2 u 18 64 377 1.591 0.249 0.054
其中:
- remote:表示使用的NTP服务器。
- * :表示目前选择的NTP服务器。
- LOCAL:表示本机。
- x :表示已不再使用。
- - :表示已不再使用。
- +:表示良好的优先考虑的。
- # :表示良好的但未使用的。
- refid:远程NTP服务器使用的更高一级NTP服务器。INIT表示还在获取。
- st:远程NTP服务器的Stratum(级别)。
- when:最后一次同步到现在的时间(默认为秒,h表示小时,d表示天)。
- poll:同步的频率(单位:秒)。
- delay:从本机到远程NTP服务器的往返时间(单位:毫秒)。
- offset:本机与远程NTP服务器的时间偏移量(单位:毫秒)。
- jitter:本机与远程NTP服务器的时间偏移量平均偏差(单位:毫秒)。
- remote:表示使用的NTP服务器。
- (可选)最终检查方法。
在客户端与服务端同时使用如下命令查询,如服务端与客户端时间保持一致说明时钟源配置成功。
date
回显如下:
Thu Sep 14 02:03:11 UTC 2023
- (可选)手动同步方法。
如果时间总是有很大误差,可以使用以下命令手动订正时间。这个与自动同步服务是冲突的,需要先停掉NTP服务。
systemctl stop ntpd
ntpdate -u 192.168.*.*
回显如下:
18 Apr 14:54:20 ntpdate[108001]: adjust time server 192.168.*.* offset -0.000180 sec
如果这个方法有效,则配置到系统的crontab下。
crontab -e
回显如下:
* * * * * root /sbin/ntpdate -u 192.168.*.* 2>&1 1>>/tmp/ntpupdate.log



浙公网安备 33010602011771号