ntp时间同步服务

本文详细介绍了如何在Linux集群中搭建NTP时间同步服务。首先在host1上安装并配置ntp服务,设置时间源和客户端访问权限,然后在host2和host3上同样安装ntp组件,并进行配置。完成配置后,host2和host3将自动与host1同步时间,确保整个集群的时间一致性。该方法适用于内网环境,避免了外网同步的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

host1上安装ntp组件

yum -y install ntp

host1上调整时间
这一步为确保host1上的时间与本地时间保持一致,如果可以联网的情况下执行命令

ntpdate 0.centos.pool.ntp.org   #该网址为centos网络上的时间同步服务器

一般情况下,我们的集群为内网环境,无法和外网进行联网同步之间,那么手动执行命令调整时间

date -s '2008-05-23 01:01:01' + '%F %T' #2008-05-23 01:01:01为将要设定的时间

host1上修改配置文件/etc/ntp.conf
vi /etc/ntp.conf
添加下面两行,表示将本地的硬件时间也作为同步的时间源之一,这样在不联网的时候可以把本机时间作为同步时间源, 在内网环境下,可以把配置文件中其他的server都删除掉。

server 127.127.1.0 # local clock 
fudge 127.127.1.0 stratum 10 这行是时间服务器的层次。设为0则为顶级

如果集群是在一个封闭的局域网内,可以屏蔽掉默认的server:

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

host1上配置客户端的授权

restrict 192.168.71.221 mask 255.255.255.250 nomodify notrap

也就是给指定的机器(客户端)设置访问NTP Server的权限,这是通过restrict配置项实现的,以下是它的格式说明。

其中parameter的参数主要有:
ignore        :    拒绝所有类型的ntp连接
nomodify    :    客户端不能使用ntpc与ntpq两支程式来修改服务器的时间参数
noquery        :    客户端不能使用ntpq、ntpc等指令来查询服务器时间,等于不提供ntp的网络校时
notrap        :    不提供trap这个远程时间登录的功能
notrust        :    拒绝没有认证的客户端
nopeer        :    不与其他同一层的ntp服务器进行时间同步

让我们通过一个例子来解释一下,在 /etc/ntp.conf中加入如下一行:

restrict 10.221.18.112 mask 255.255.255.240 nomodify notrap

这一行的含义是授权10.221.18.112网段上的所有机器可以从这台机器上查询和同步时间。这里的配置涉及到了一些网络知识。 对于第一个参数[address] 它可能是一个IP,也可能是一个网段,这取决于后面给出的子网掩码。如果这里的子网掩码是255.255.255.255,那么配置就变成了只授权给IP是10.221.18.112的那一台机器连接!但是这里子网掩码是255.255.255.240,则此时的10.221.18.112就是一个网络标识了!它代表的是这样一个网段:

网络标识(网段名)  主机起始          结束         广播地址
10.221.18.112    10.221.18.113   10.221.18.126  10.221.18.127

host1上启动ntp组件

service ntpd start  #启动ntpd时间服务器
chkconfig ntpd on   #开机自启动

需要同步时间的服务器ntp组件安装
这里指的就是host2,host3

host2,host3上安装ntp组件

在host2,host3上分别执行命令安装ntp,跟上面《host1上安装ntp组件》安装方式一致,其余安装方式也参考上面

yum -y install ntp

host2,host3上修改配置文件/etc/ntp.conf

vi /etc/ntp.conf删除其他的server 开头的配置项,这里一定要删除,只同步我们配置的那台服务器,添加上面设置的NTP服务器地址 
server host1

host2,host3上启动ntp组件并测试

service ntpd start  #启动ntpd时间服务器
chkconfig ntpd on   #开机自启动

查看与时间同步服务器的时间偏差

[root@host2 ~]# ntpdc -c loopinfo
offset:               0.001014 s      #时间偏差极小,即同步了
frequency:            29.720 ppm
poll adjust:          30
watchdog timer:       929 s

查看当前同步的时间服务器,查看没问题就安装成功了

[root@host2 ~]#  ntpq -p   
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*host1              202.112.29.82    3 u  764 1024  377    0.369    7.155   7.045

说明:
remote:远程NTP服务器的IP地址或域名,带 “*” 的表示本地NTP服务器与该服务器同步。
refid:远程NTP服务器的上层服务器的IP地址或域名。
st:即stratum阶层,值越小表示ntp serve的精准度越高;
t:本地NTP服务器与远程NTP服务器的通信方式,u: 单播; b: 广播; l: 本地。
when:几秒前曾做过时间同步更新的操作;
Poll表示,每隔多少毫秒与ntp server同步一次;
reach:已经向上层NTP服务器要求更新的次数;
delay:网络传输过程钟延迟的时间;
offset:时间补偿的结果;
jitter:Linux系统时间与BIOS硬件时间的差异时间

这里出现host1就表示host2与host1自动同步时间,host1前面的*表示正在使用的时间同步服务器,如果配置多个,还有出现+开头的,表示候选的时间同步服务器
至此ntp时间同步服务器全部搭建成功,host1作为被同步时间的时间同步服务器,host2,host3自动与host1进行时间同步。补充说明:以上配置为最基础的ntp配置,其他还有很多可以配置的选项。时间同步也可以手动采用ntpdate host1的方式进行,另外后续用cloudera manager安装cdh的时候,一定要采用本文方式安装,如果用crontab + ntpdate host1的方式,cloudera manager是无法判断是否安装了ntp的,会报”The host’s NTP service is not synchronized to any remote server.”这样的错误或警告。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值