时间同步和 chrony
时间同步: 多主机协作工作时, 各个主机的时间同步很重要, 时间不一致会造成很多重要应用的故障, 如: 加密协议, 日志, 集群等, 利用 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 的优势:
更快的同步只需要数分钟而非数小时时间, 从而最大程度减少了时间和频率误差, 对于并非全天 24 小时运行的虚拟计算机而言非常有用
能够更好地响应时钟频率的快速变化, 对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
在初始同步后, 它不会停止时钟, 以防对需要系统时间保持单调的应用程序造成影响
在应对临时非对称延迟时 (例如, 在大规模下载造成链接饱和时) 提供了更好的稳定性
无需对服务器进行定期轮询, 因此具备间歇性网络连接的系统仍然可以快速同步时钟
chrony 官网: https://chrony.tuxfamily.org
chrony 官方文档: https://chrony.tuxfamily.org/documentation.html
包: chrony
两个主要程序: chronyd 和 chronyc
chronyd: 后台运行的守护进程, 用于调整内核中运行的系统时钟和时钟服务器同步. 它确定计算机增减时间的比率, 并对此进行补偿
chronyc: 命令行用户工具, 用于监控性能并进行多样化的配置. 它可以在 chronyd 实例控制的计算机上工作, 也可在一台不同的远程计算机上工作
服务 unit 文件: /usr/lib/systemd/system/chronyd.service
监听端口: 323/udp,123/udp
配置文件: /etc/chrony.conf
配置文件 chrony.conf
server - 可用于时钟服务器, iburst 选项当服务器可达时, 发送一个八个数据包而不是通常的一个数据包. 包间隔通常为 2 秒, 可加快初始同步速度
driftfile - 根据实际时间计算出计算机增减时间的比率, 将它记录到一个文件中, 会在重启后为系统时钟作出补偿
rtcsync - 启用内核模式, 系统时间每 11 分钟会拷贝到实时时钟(RTC)
allow / deny - 指定一台主机, 子网, 或者网络以允许或拒绝访问本服务器
cmdallow / cmddeny - 可以指定哪台主机可以通过 chronyd 使用控制命令
bindcmdaddress - 允许 chronyd 监听哪个接口来接收由 chronyc 执行的命令
makestep - 通常 chronyd 将根据需求通过减慢或加速时钟, 使得系统逐步纠正所有时间偏差. 在某些特定情况下, 系统时钟可能会漂移过快, 导致该调整过程消耗很长的时间来纠正系统时钟. 该指令强制 chronyd 在调整期大于某个阀值时调整系统时钟
local stratum 10 - 即使 server 指令中时间服务器不可用, 也允许将本地时间作为标准时间授时给其它客户端
chronyc 命令
chronyc 命令
help 命令可以查看更多 chronyc 的交互命令
accheck 检查是否对特定主机可访问当前服务器
activity 显示有多少 NTP 源在线 / 离线
sources [-v] 显示当前时间源的同步信息
sourcestats [-v]显示当前时间源的同步统计信息
add server 手动添加一台新的 NTP 服务器
clients 报告已访问本服务器的客户端列表
delete 手动移除 NTP 服务器或对等服务器
settime 手动设置守护进程时间
sracking 显示系统时间信息
chronyc 示例
- [[email protected] ~]#chronyc
- chrony version 3.2
- Copyright (C) 1997-2003, 2007, 2009-2017 Richard P. Curnow and others
- chrony comes with ABSOLUTELY NO WARRANTY. This is free software, and
- you are welcome to redistribute it under certain conditions. See the
- GNU General Public License version 2 for details.
- chronyc> clients
- Hostname NTP Drop Int IntL Last Cmd Drop Int Last
- ===============================================================================
- 192.168.8.7 18 0 6 - 17 0 0 - -
- 192.168.8.6 14 0 6 - 56 0 0 - -
- chronyc> activity
- 200 OK
- 1 sources online
- 0 sources offline
- 0 sources doing burst (return to online)
- 0 sources doing burst (return to offline)
- 0 sources with unknown address
- chronyc> sources -v
- 210 Number of sources = 1
- .-- Source mode '^' = server, '=' = peer, '#' = local clock.
- / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
- | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
- || .- xxxx [ yyyy ] +/- zzzz
- || Reachability register (octal) -. | xxxx = adjusted offset,
- || Log2(Polling interval) --. | | yyyy = measured offset,
- || \ | | zzzz = estimated error.
- || | | \
- MS Name/IP address Stratum Poll Reach LastRx Last sample
- ===============================================================================
- ^? 192.168.8.100 3 8 1 338 -40ms[ -40ms] +/- 237ms
公共 NTP 服务
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
时间工具 timedatectl
查看日期时间, 时区及 NTP 状态: timedatectl
查看时区列表: timedatectl list-timezones
修改时区: timedatectl set-timezone Asia/Shanghai
修改日期时间: timedatectl set-time "2017-01-23 10:30:00"
开启 NTP: timedatectl set-ntp true/flase
system-config-date: 图形化配置 chrony 服务的工具
来源: http://www.bubuko.com/infodetail-3105009.html