电子表,机械表,石英表
内部存在一个东西:振荡时钟
手机和电脑:也存在振荡时钟,如果震荡频率和标准时间振荡频率不一样,就会出现时间偏差
当手机或电脑没有网络的时候:时钟振荡频率随着时间便宜,就会发生变化
第二个:当关机一段时间之后,再开机的时候还是没有网络的情况,手机和电脑上的时间怎么来的
电脑中或者手机中一定有一块电池(类似于手表中的小电池),来为COMS来记录时间(硬件时间),开机之后回村COMS来读时间,同步给系统上的时间(系统时间)
总结:电脑来说,如果没有网络同步时间的情况,我们的电脑的时间肯定会发生偏差(快或者慢)所以提供一个网络时间同步的概念:从网络去同步时间
两种场景:
局域中有一个集群(多台机器),因为服务和业务要求,需要保证 集群内的所偶及其实践保持一致(只提到了一致性,没有准确性 )
解决方案:在这个集群中设置某一台机器为其他即的时钟源
要提供服务给公网的用户,所以集群中的机器既要保持时间的的一致性,还要保障服务器的准确性
解决方案
需要一份权威且正确的时钟服务器(可信的公司提供的时间服务器),来为集群中的服务器提供时间同步
时间同步的方式
1、从标准时间服务器:获取当前时间,直接去设置我们服务器的时间(跃进的同步)
2、从标准时间服务器去同步时间:要金国计算的,计算当前服务器和标准时间服务器之气那的时钟振荡频率擦会议,金国极端调整标准时间服务器一致,如果振荡频率抑制了时间偏差就会慢一些(步进的同步)
NTP
采用第二种方式
软件安装
[root@localhost ~]# timedatectl 查看时区
Local time: Sun 2023-08-06 10:52:34 CST
Universal time: Sun 2023-08-06 02:52:34 UTC
RTC time: Sun 2023-08-06 02:52:34
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
CST
UTC
使用网络事件同步的软件:chrony
chrony软件:client(客户端)和server(服务器)
查看是否已经安装软件:
rpm -qa | grep chory
配置
查看配置文件
默认配置
[root@localhost ~]# grep -Ev '^$|^#' /etc/chrony.conf 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 driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync logdir /var/log/chrony
pool:池子,NTP时钟源的池子,赤字中有多个可同步时间的服务器
server:指定NTP时钟源的指令
NTP时钟源地址
iburst:突发包的意思:短时间内发多个包
driftfile:存储我们的的同步信息:供我们计算应该调快还是调慢数据
makestep:允许时钟在前三次更新中步进,前提是偏移量大于一秒
rtcsync:启用内核同步实时时钟
allow:允许那些NTP客户端来同步时间,默认不允许任何客户端来进行同步,必须要是设置
启动服务
systemctl restart chronyd
使用chronyc 来查看chrony的状态
chronyc sources
chronyc sources
[root@localhost ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp.ams1.nl.leaseweb.net 2 7 273 40 +25ms[ +25ms] +/- 245ms
^- ntp.wdc2.us.leaseweb.net 2 8 356 756 -6878us[ -13ms] +/- 288ms
^* stratum2-1.ntp.mow01.ru.> 2 7 167 48 -2050us[ -362us] +/- 99ms
^+ ntp5.flashdance.cx 2 8 11 185 -5812us[-9745us] +/- 123ms
^*:表示chronyd当前同步到的源
^+:表示可接受的信号源
^-:表示被合并算法派出的可接受源
^?表示已失去连接性或其他数据包未通过所有测试的源。他也显示 在启动时,知道从中收集了至少3个样本为止
^~表示时间似乎具有太多可变性的来源
练习:
准备两台机器
第一台机器从阿里云服务器同步时间
第二台机器从第一台机器同步时间
操作:
1.第一台机器具不具备从第一台机器同步时间的权限
在第一台机器中国是否配置允许第二台机器同步
vim /etc/chrony.conf
allow 192.268.31.0/24
2.第二台机器需要使用server/pool来指定同步时间源:即第一台机器
server 192.168.31.122 iburst
第一台机器操作
vim /etc/chrony.conf
allow 192.268.31.0/24 #保存并退出
systemctl restart chronyd
第二台机器操作
vim /etc/chrony.conf
server 192.168.31.122 iburst
如果服务器网络不通,无法从公网NTP 夫区其同步时间,可以设置local stratum 10 来以系统时间为时钟源
第一台机器不能从ntp.aliyun.com 去同步时间,间接会影响到第二胎机器
当我们配置local stratum 10 设置 即使第一台机器不能从阿里云同步时间,那么第一台机器系统时间为时钟源,然后第二台机器去同步第一台机器的时候,同步他的系统时间
这种方式 即使不能保证时间的准确性,但是可以保持一个 集群中各机器之间时间的一致性