一、ntp时间同步
大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序,若计算机时间不同步,这些应用或操作或将无法正常进行。网络时间同步协议(NTP)是时间同步的技术基础。
二、ntp时间服务器搭建
2.1、查看是否安装ntp服务
rpm -q ntp
2.2、安装ntp服务
方法一:用yum安装
yum -y install ntp
方法二:用rpm包安装
rpm -ivh ntp-4.2.6p5-28.el7.centos.x86_64.rpm
2.3相关命令
systemctl enable ntpd
systemctl start ntpd
systemctl stop ntpd
三、ntp时间同步配置
1、restrict来管理NTP权限控制 restrict IP mask [参数] *//不配置任何参数表示该ip*或者网段不受任何限制
ignore 拒绝所有类型的NTP连接
nomodify 客户端不能使用ntpc与ntpq程序来修改服务器的时间参数,但可以同步
noquery 不提供NTP服务
notrap 不提供trap远程日志服务
notrust 拒绝没有认证的客户端提供NTP
配置示例:
restrict 127.0.0.1 //允许NTP服务器访问
restrict -6 ::1 //配置ipv6
restrict 192.168.0.0 mask 255.255.0.0 nomodify //该网段可以进行校时
restrict 0.0.0.0 mask 0.0.0.0 notrust //拒绝没有认证的用户端
2、server进行设置上端同步NTP
prefer 优先级设定
iburst 当一个远程NTP服务器不可用时,向它发送一系列的并发包进行检测
burst 当一个远程NTP服务器可用时,向它发送一系列的并发包进行检测
配置示例:
server 10.48.73.4 prefer //指定要同步的网络服务器的ip地址(prefer表示优先用此服务器同步时间)
server 127.127.1.0 //从本地时间服务器同步,必须这样写
fudge 127.127.1.0 stratum 10 //fudge 127.127.1.0 stratum 10 如果是LINUX做为NTP服务器,stratum(层级)的值不能太大,如果要向上级NTP更新可以设成2
3、driftfile
我们每一个system clock的频率都有小小的误差,这个就是为什么机器运行一段时间后会不精确. NTP会自动来监测我们时钟的误差值并予以调整.但问题是这是一个冗长的过程,所以它会把记录下来的误差先写入driftfile.这样即使你重新开机以后之前的计算结果也就不会丢失了。
4、server和client端的配置
server的配置:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
client配置:
server 10.48.73.4 prefer
客户端ntp服务在启动前一般需要先试用ntpdate进行时间同步,再启动ntp服务。原因之一:当服务端与客户端之间的时间误差过大时,此时修改时间可能对系统或应用带来不可预知问题,NTP会停止时间同步。若检查NTP启动后时间未同步时,应考虑可能是时间误差过大所致,此时需要先手动进行时间同步。
四、ntp时间同步相关命令
**1、ntpdate:与指定的开启ntp服务的ip进行时间同步 //**让linux运行ntpdate更新时间时,linux不能开启NTP服务,否则会提示端口被占用
ntpdate ip
ntpdate -d ip
2、ntpstat:查看ntp服务是否和上层ntp连通
ntp服务器配置完毕后,需要等待5-10分钟才能与/etc/ntp.conf中配置的标准时间进行同步。在此期间执行ntpstat可能会出现polling server every 8 s提示,同步成功会出现如下提示
3、ntpq -p;查看ntp服务器与上层ntp的状态
remote:本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先
refid:参考上一层ntp主机地址
st:stratum阶层
when:多少秒前曾经同步过时间
poll:下次更新在多少秒后
reach:已经向上层ntp服务器要求更新的次数
delay:网络延迟
offset:时间补偿
jitter:系统时间与bios时间差
五、问题处理
错误1:ntpdate -u ip -> no server suitable for synchronization found
判断:在ntp客户端用ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
原因:NTP server还没有和其自身或者它的server同步上。在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。
处理:等待几分钟后,重试一般解决。
1、客户端的日期必须要设置正确,不能超出正常时间24小时,不然会因为安全原因被拒绝更新。其次客户端的时区必须要设置好,以确保不会更新成其它时区的时间。
2、fudge 127.127.1.0 stratum 10 如果是LINUX做为NTP服务器,stratum(层级)的值不能太大,如果要向上级NTP更新可以设成2
3、LINUX的NTP服务器必须记得将从上级NTP更新的时间从系统时间写到硬件里去 hwclock --systohc
NTP一般只会同步system clock. 但是如果我们也要同步RTC(hwclock)的话那么只需要把下面的选项打开就可以了
代码:
# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
4、Linux如果开启了NTP服务,则不能手动运行ntpdate更新时间(会报端口被占用),它只能根据/etc/ntp.conf 里server 字段后的服务器地址按一定时间间隔自动向上级NTP服务器更新时间。可以运行命令 ntpstat 查看每次更新间隔如:
[root@ESXI ~]# ntpstat
synchronised to NTP server (210.72.145.44) at stratum 2 #本NTP服务器层次为2,已向210.72.145.44 NTP同步过
time correct to within 93 ms #时间校正到相差93ms之内
polling server every 1024 s #每1024秒会向上级NTP轮询更新一次时间
5、ntpd和ntpdate的区别
ntpd在实际同步时间时是一点点的校准过来时间的,最终把时间慢慢的校正对。而ntpdate不会考虑其他程序是否会阵痛,直接调整时间。生产环境慎用ntpdate,会导致程序异常
版权归原作者 淼_@淼 所有, 如有侵权,请联系我们删除。