当前位置: 首页 > news >正文

【Ambari3.0.0 部署】Step4—时间同步(Chrony)-适用于el8

如果有其他系统部署需求可以参考原文

戳我->所有组件编译教程
戳我->获取部署源代码

在这里插入图片描述
在这里插入图片描述

一、集群间的时间同步(Chrony 配置指南)

分布式系统多节点集群 运行环境中,时间同步 是一个至关重要的任务。时间不同步会导致:

  • 日志时间错乱 📜:不同节点的日志记录时间不一致,影响排查问题。
  • 分布式任务调度异常 ⏳:如 Hadoop、Spark、Flink 等大数据组件依赖时间戳同步执行任务。
  • 数据库事务不一致 🛠️:数据同步和一致性要求精确的时间同步,否则可能导致数据丢失或事务失败。
  • 身份认证失败 🔐:某些安全协议(如 Kerberos)依赖精确的时间,否则身份验证可能无法通过。

很多 老旧的系统 仍然使用 ntpd(Network Time Protocol Daemon) 进行时间同步,但现代系统推荐使用 Chrony,它相比
ntpd 同步更快、容错性更强、占用资源更少

1. 为什么选择 Chrony? ⚖️

Chrony 是 NTP 协议的一个更现代的实现,相比于 ntpd 具有以下优势:

特性ntpd(传统方案)Chrony(推荐方案)
同步速度需要几分钟几秒内同步
适用场景 🔄适用于长期运行的服务器适用于各种服务器、云环境和容器
资源占用 💾较高,适用于持久运行更低,适用于轻量级服务器
离线恢复 🔄断网后恢复较慢即使断网也能稳定调整时间
动态 IP 支持 🌐适用于固定 IP 服务器适用于动态 IP 服务器

💡 结论:Chrony 更适合现代服务器和集群环境,并且对 时间漂移的自适应能力更强,特别适用于 云计算、虚拟机 和 *
不稳定网络环境*。

2. Chrony 在集群中的部署架构 🏗️

在分布式环境中,通常采用 层级时间同步

  • 1 台服务器 作为 NTP 服务器,对外同步 公网时间源(如阿里云、国家授时中心)。
  • 集群内所有其他服务器 作为 NTP 客户端,同步主服务器时间。

示例架构

角色服务器 IP说明
Chrony 服务器(NTP 主节点)192.168.3.1负责同步公网时间,并提供时间服务
Chrony 客户端(NTP 从节点)192.168.3.2从主节点同步时间
Chrony 客户端(NTP 从节点)192.168.3.3从主节点同步时间

在这个环境中:

  • 192.168.3.1公网 NTP 服务器 获取时间。
  • 192.168.3.2 和 192.168.3.3 直接从 192.168.3.1 获取时间。

3. Chrony 服务器端(NTP 服务器)配置

3.1 安装 Chrony

192.168.3.1 服务器上执行:

yum install -y chrony

3.2 修改 Chrony 配置

编辑 Chrony 服务器端配置文件

vim /etc/chrony.conf

修改或添加以下内容:

# 使用公网时间服务器
server ntp.ntsc.ac.cn iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst# 允许集群内的机器同步时间
allow 192.168.3.0/24# 本地时钟(仅当公网 NTP 不可用时使用)
local stratum 10# Drift 文件存储路径
driftfile /var/lib/chrony/drift# 日志文件存放路径
logdir /var/log/chrony

3.3 启动 Chrony 服务

systemctl restart chronyd
systemctl enable chronyd

3.4 验证 NTP 服务器是否同步

chronyc tracking

如果输出包含 Leap status : Normal,表示时间同步正常。

4. Chrony 客户端(NTP 从节点)配置

4.1 安装 Chrony

192.168.3.2 和 192.168.3.3 服务器上执行:

yum install -y chrony

4.2 配置 Chrony

编辑客户端配置:

vim /etc/chrony.conf

修改为:

# 设定时间同步的服务器(NTP 服务器)
server 192.168.3.1 iburst# Drift 文件存储路径
driftfile /var/lib/chrony/drift# 日志文件存放路径
logdir /var/log/chrony

4.3 启动 Chrony

systemctl restart chronyd
systemctl enable chronyd

4.4 验证客户端是否同步

chronyc sources -v

如果输出包含 192.168.3.1MS Name/IP address 前面有 *,表示客户端同步成功:

MS Name/IP address    Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.3.1             10    6   377    28    -12us[  -33us] +/-  22ms

相关文章:

  • Xilinx XC7A12T‑1CPG238I Artix‑7 FPGA
  • Java 编程之代理模式
  • Matter协议开发者指南:使用Matter SDK构建智能家居应用
  • 数学公式排版简史
  • JavaWeb-day1
  • Spring Cloud 服务调用详解:Ribbon 负载均衡与 Feign 声明式接口调用
  • 第一章:认识AI
  • vtk和opencv和opengl直接的区别是什么?
  • JSON 数据格式详解
  • 【Java项目设计】基于Springboot+Vue的OA办公自动化系统
  • idea有了!多尺度时间序列新SOTA!
  • 前端基础知识CSS系列 - 16(css视差滚动效果)
  • OSPF 路由协议基础实验
  • 每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系
  • 如何理解Java反射机制
  • 【第二章:机器学习与神经网络概述】02.降维算法理论与实践-(2)线性判别分析(Linear Discriminant Analysis, LDA)
  • AbMole明星分子 |Acetylcysteine:从细胞保护到动物研究的全应用
  • flask静态资源与模板页面、模板用户登录案例
  • leetcode hot100 两数之和
  • GitHub Actions + SSH 自动部署教程
  • 网站建设鼠标点击变色怎么弄/文职培训机构前十名
  • 专门做杂志的网站/有了域名怎么建网站
  • 一 网站建设总体目标/青岛网站建设策划
  • 做网站上海的备案地址/百度移动应用
  • 云龙徐州网站开发/网站如何seo推广
  • 网站如何进行优化设计/百度小说排行榜2020