时间同步:多主机协作工作时,各个主机时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。
目前NTP协议属于运维基础架构中必备的基本服务之一。
时间同步实现:ntp,chrony
ntp:将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以达到1-50ms,项目官网:http://www.ntp.org
chrony:实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度。
chrony 的优势:
chrony官网:https://chrony.tuxfamily.org
chrony官方文档:https://chrony.tuxfamily.org/documentation.html
两个主要程序:chronyd和chronyc
chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作
服务unit 文件: /usr/lib/systemd/system/chronyd.service
监听端口: 323/udp,123/udp
配置文件: /etc/chrony.conf
help命令可以查看更多chronyc的交互命令 accheck 检查是否对特定主机可访问当前服务器 activity 显示有多少NTP源在线/离线 sources [-v] 显示当前时间源的同步信息 sourcestats [-v]显示当前时间源的同步统计信息 add server 手动添加一台新的NTP服务器 clients 报告已访问本服务器的客户端列表 delete 手动移除NTP服务器或对等服务器 settime 手动设置守护进程时间 sracking 显示系统时间信息
pool.ntp.org:项目是一个提供可靠易用的NTP服务的虚拟集群cn.pool.ntp.org,0-3.cn.pool.ntp.org
阿里云公共NTP服务器
Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com
windows类: time.pool.aliyun.com
大学ntp服务
s1a.time.edu.cn 北京邮电大学 s1b.time.edu.cn 清华大学 s1c.time.edu.cn 北京大学
国家授时中心服务器
210.72.145.44
原理:在客户端选出一个主机与服务器端的时间进行同步,其他客户端与此客户端进行同步时间,此客户端需要一直在线,实时与服务器做同步,ntp同步时间较长。
将挑选的客户端代表,与服务器端进行时间同步,在ntp配置文件中修改配置文件,添加服务器端的IP地址,进行时间同步(注意:此客户端的IP地址是192.168.37.7),此时ntp使用的是123端口号。
vim /etc/ntp.conf
#restrict default nomodify notrap nopeer noquery 注释掉此行,运行其他客户端主机进行同步此 time server主机 server 172.0.0.10 iburst 此IP地址是服务器IP地址,iburst代表的是快速同步时间 server 172.0.0.11 iburst 可以多写几个IP地址,防止第一个服务器宕机,备用其他IP地址继续进行同步时间。 server 172.0.0.20 iburst server 172.0.0.30 iburst
在代表客户端同步服务器时间的主机上将ntpd服务启动,并设置为开机启动
[root@centos7~]#systemctl start ntpd [root@centos7~]#systemctl enable ntpd Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
在其他客户端进行设置同步时间,设置与代表客户端同步到服务器时间的IP地址(即将上面设置的客户端IP地址写入:192.168.37.7)
vim /etc/ntp.conf
设置完之后启动ntpd服务,并设置为开机启动
[root@centos7~]#systemctl start ntpd [root@centos7~]#systemctl enable ntpd Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
1、修改chronyd服务器的配置文件,与服务器端时间同步的客户端主机:vim /etc/chrony.conf
[root@centos27~]#vim /etc/chrony.conf server 172.0.0.10 iburst 设置服务器的IP地址,与服务器的IP地址进行时间同步 server 172.0.0.20 iburst 设置其他几个服务器的IP地址,防止其他服务器宕机,无法实现时间同步 server 172.0.0.30 iburst server 172.0.0.40 iburst #allow 192.168.37.0/24 允许此IP地址段访问 allow 0.0.0.0/0 允许所有主机访问 local stratum 10 本地局域网同步时间服务器(第十层的局域网主机),建议打开。
2、启动chronyd服务,并设置为开机启动。
[root@centos7~]#systemctl start chronyd [root@centos7~]#systemctl enable chronyd
1、其他客户端只需要与代表的客户端(即与服务器端时间同步的客户端主机)进行同步即可。
vim /etcchrony.conf
2、启动chronyd服务,并设置为开机启动。
[root@centos7~]#systemctl start chronyd [root@centos7~]#systemctl enable chronyd
原文:https://www.cnblogs.com/struggle-1216/p/12056199.html