Linux 时间同步 ntpd&chrony 内网
在任何服务器集群中,为了更好的协同工作,除了一些互信机制外,需要的就是时间同步功能,如果时间不同步,就好比让在中国的同事与美国的同事进行沟通,会造成
Linux 时间同步 ntpd&chrony 在任何服务器集群中,为了更好的协同工作,除了一些互信机制外,需要的就是时间同步功能,如果时间不同步,就好比让在中国的同事与美国的同事进行沟通,会造成各种奇奇怪怪的时间相关的问题。而且很多资源访问都是有时效性的,如果时间不同步可能永远无法访问,对此我们需要进行时间同步的功能。 Linux 时间系统 在 windows 系统中,我们设置时间的时候一般都是通过右下角进入时间的设置界面进行设置,在设置过程中都是页面化,而且在我们关机、重启后都没有问题。系统时间会自动保存在 BIOS 时钟中,这样电脑启动也会从 BIOS 中获取硬件的时间,以保证时间的不间断。 但在 linux 中,系统时间和硬件时间并不会自动同步,他们是互不干扰的。硬件使用 BIOS 电池维持;系统时间使用 CPU Tick 维持,启动时获取 BIOS 时间。 Linux 系统时间设置 在 Linux 中我们可以通过 date 命令进行设置:
Linux 硬件时间设置 硬件时间的设置可以使用 clock 或者 hwclock 命名,推荐使用第一个。
这时候我们可以查看这个文件 /etc/adjtime,如果我们更改了硬件时间,那么这个文件会记录两次时间的调整差异,后续如果再次使用 --set 或 --systohc 命令,会自动计算出差异平均值,进行硬件时钟的调整: Linux 系统和硬件时间同步 现在我们将两个时间都定位到了 1997 年,现在我们需要进行一些同步,将时间矫正回来。(请确保有外网) 安装 ntpdate 服务 ntpdate 会在本文后面进行对应讲解,现在我们单台进行 ntpdate 服务器安装。
同步 ntp 时间
查看系统时间
可以看到我们的系统时间已经同步完成,但是硬件时间还停留在 1997 年。那么我们可以将系统时间同步到硬件时间:
集群时间同步 刚刚我们了解了 Linux 的时间系统,也完成了单服务器的同步到国家时间的流程,那如果我们需要自己搭建集群,也需要保证集群的时间同步,但没有外网环境。那么我们需要自己搭建时间基准,并通过这个基准,进行整个集群的时间同步。 现在一般有两种同步方法: ntpdate 和 chrony。更推荐 chrony,下面会讲解两个的使用方法。 ntpd 服务 NTP 其实就是 Network Time Protocol 网络时间协议,可以使计算机时间同步化的一种协议集群linux,可以使计算机对服务器或者时钟源进行同步。 前面我们已经安装过 ntpdate 了,现在快速回忆单台同步外网 ntp 服务器:
集群时间主服务器 可以看到,如 ntp1.aliyun.com 其实就是一台外网可以访问的时间服务器,所以在我们需要搭建的集群中,也需要有这样一台时间服务器。这里我们选择 maggot111128.huangyichun.com 作为主服务器,其他在这台服务器上进行时间同步。 参考官网: 开启 ntpd 服务
在安装了 ntp 后,相关的配置在 /etc/ntp.conf 中。我们需要进行一些配置 vim /etc/ntp.conf: 提供服务器网段扩大
该节点更改为只与自己同步
重启 ntpd 服务
集群客户端服务器 集群中的其他服务器要与这台服务器进行时间同步,也需要 ntp 服务,在安装完后进行 /etc/ntp.conf 的配置:
然后启动 ntpd 服务:
使用 ntpstat 查看同步状态: 当前处于未同步状态,如果需要手动同步:
如果出现类似于 no server suitable for synchronization found,请查看主服务器的防火墙设置: 防火墙设置参考:
注意,仅仅这样并不会让硬件时间进行同步,需要更改 /etc/sysconfig/ntpd 文件:
下图为更改前: 更改后(记得重启 ntpd): chrony 服务 Chrony 是开源的时间同步服务,是 centos7 的默认时间同步工具。能够与时间服务器进行时间同步,并始终让时间保持同步,比 NTP 更快、配置更简单、依赖更简单。 注意进行 chrony 安装之前,我们需要停止 ntpd 相关服务。
chrony 时间源 跟 ntpd 服务器一样,我们需要搭建 chrony 的事件源服务器,首先安装 chrony 服务(如果是 centos 7 应该是默认安装)
使用 /etc/chrony.conf 进行 chrony 相关配置
然后重启 chrony 服务,并查看服务状态
chrony 客户端 安装 chrony
更改配置文件
重启 chronyd 服务
使用 chronyc sources 命令进行同步查看,如果出现 ^* 则为获取时间成功,正在同步中,错位时间看 Last: chronyc 命令 使我们操控 chrony 的命令方式,主要有: 参数参数说明 sources 查看所有服务器同步情况 accheck 检查NTP访问是否对特定主机可用 activity 该命令会显示有多少NTP源在线/离线 add server 手动添加一台新的NTP服务器。 clients 在客户端报告已访问到服务器 delete 手动移除NTP服务器或对等服务器 settime 手动设置守护进程时间 tracking 显示系统时间信息 集群搭建注意事项 一般我们进行搭建的时候可能都是只选择了一台节点作为时间服务器,但是其实在超大型集群搭建的时候,我们应该按照网段进行区别,采用多时间服务器的方式进行搭建。不要像一棵树,只有一个根。 (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |