Linux使用chrony让局域网内的服务器时间同步
在生产环境经常会因为时间的问题出现过问题,例如应用节点和数据存节点时间不一致,造成检索不到数据的问题等。在现在不管是公有云、私有云还是混合云等在建设过程中,都首先需要群集中的每台服务器时间调节一致,这就需要使用一台服务器作为时间服务器来维护时间。chrony就是现在群集的选择方案之一
Chrony简介
chrony是一款开源的软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
Chrony 的优势
- 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
- 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
- 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
- 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
- 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟
Chrony程序
chrony两个主要程序chronyd和chronyc。
- chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿
- chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作
实际生产环境中,服务器之间的时间是需要同步,但并不是所有机器可以直接连外网,这时可以用Chrony工具解决。 解决方法是将其中一台设为时间服务器,然后其它服务器和这台时间服务器同步即可。具体步骤如下:
节点 | 节点IP地址 | 类型 |
---|---|---|
master01 | 172.16.24.65 | 服务端 |
worker01 | 172.16.24.188 | 客户端 |
一、部署Chrony
在所有节点上执行chrony服务安装命令,将主节点设置时间服务器,其他的节点都从主节点同步时间。
# 安装服务 yum -y install chrony # 查看状态 systemctl status chronyd # 重启chronyd systemctl restart chronyd
二、检查设置时区
在所有节点上设置统一的时间区域,本文中将其设置为亚洲时区,用户可自行定义。
# 查看时区 [root@x ~]# timedatectl Local time: Sun 2022-04-17 11:15:48 CST Universal time: Sun 2022-04-17 03:15:48 UTC RTC time: Sun 2022-04-17 11:15:48 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: yes DST active: n/a # 筛选式查看在亚洲S开的上海可用时区: [root@x ~]# timedatectl list-timezones | grep -E "Asia/S.\*" Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk # 设置当前系统为Asia/Shanghai上海时区: [root@x ~]# timedatectl set-timezone Asia/Shanghai # 修改日期时间(可选,主节时钟源无法同步,可以先关闭NTP同步) timedatectl set-ntp false timedatectl set-time "2022-04-17 15:50:20" # 开启 NTP timedatectl set-ntp true #设置完时区后,强制同步下系统时钟: [root@x ~]# chronyc -a makestep 200 OK
三、防火墙设置
因NTP使用123/UDP端口协议,所以允许NTP服务即可。但是我一般都会把防火墙和selinux禁止。
# 查看防火墙状态 [root@x ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) # 启动防火墙 [root@x ~]# systemctl start firewalld.service # 防火墙内放行NTP服务 [root@x ~]# firewall-cmd --add-service=ntp --permanent success # reload才能生效 [root@x ~]# firewall-cmd --reload success
内部访问一般直接关闭防火墙
[root@x ~]# systemctl stop firewalld [root@x ~]# systemctl disalbe firewalld
四、配置Chrony
1.服务器端配置
将主节点设置为内部NTP Server,编辑“/etc/chrony.conf”文件,如有公网的情况,可以配置阿里云的ntp服务地址作为源 。
ntp1.aliyun.com
授时中心参考
- 210.72.145.44 国家授时中心
- ntp.aliyun.com 阿里云
- s1a.time.edu.cn 北京邮电大学
- s1b.time.edu.cn 清华大学
- s1c.time.edu.cn 北京大学
- s1d.time.edu.cn 东南大学
- s1e.time.edu.cn 清华大学
- s2a.time.edu.cn 清华大学
- s2b.time.edu.cn 清华大学
- s2c.time.edu.cn 北京邮电大学
- s2d.time.edu.cn 西南地区网络中心
- s2e.time.edu.cn 西北地区网络中心
- s2f.time.edu.cn 东北地区网络中心
- s2g.time.edu.cn 华东南地区网络中心
- s2h.time.edu.cn 四川大学网络管理中心
- s2j.time.edu.cn 大连理工大学网络中心
- s2k.time.edu.cn CERNET桂林主节点
- s2m.time.edu.cn 北京大学
- ntp.sjtu.edu.cn 202.120.2.101 上海交通大学
master01作为服务端,当前节点IP地址为172.16.24.65,网段是172.16.24.0/24,配置详情如下
server ntp1.aliyun.com iburst
allow 172.16.24.0/24
local stratum 10
[root@master01 ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # 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 # 公网时间服务器 server ntp1.aliyun.com iburst # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp \* # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. # 指定一台主机、子网,或者网络以允许或拒绝访问本服务器 allow 172.16.24.0/24 # Serve time even if not synchronized to a time source. # 即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端chronyc命令 local stratum 10 # Specify file containing keys for NTP authentication. #keyfile /etc/chrony.keys # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking
2.客户端节点配置
其他work节点使用主节点(master01)作为时钟源,增加内网时钟源
server master01 iburst
[root@worker01 ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # 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 # 内网时钟服务端 server master01 iburst # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp \* # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. #allow 192.168.0.0/16 # Serve time even if not synchronized to a time source. #local stratum 10 # Specify file containing keys for NTP authentication. #keyfile /etc/chrony.keys # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
)]
[外链图片转存中…(img-UKbV7go6-1714509966233)]
[外链图片转存中…(img-xGbY366i-1714509966233)]
[外链图片转存中…(img-NFJ8sYmy-1714509966233)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新