抄自:https://www.cnblogs.com/ibnode/p/3573302.html
Windows系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。
Linux下,默认情况下,系统时间(date)和硬件时间(hwclock)并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPU Tick来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。
可以用命令让系统时间与硬件时间按照其一同步
为避免主机长时间运行导致的时间不同步,使用NTP服务同步,可以用ntpdate命令,也可以使用ntpd服务
ntpdate 一般强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置,每天或者没一定时间段执行同步校正
使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间会造成时间的突变和跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且ntpd服务可以在修正时间的同时,修正CPU Tick。因此理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
ntpd 有一个自我保护的机制:如果本机与上源时间相差太大,ntpd 不会运行时间同步操作,所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务运行后,先是每64秒与上源NTP服务器同步一次,根据每次同步时测得的误差值经复杂计算逐步调整自己的时间,随着误差减小,逐步增加同步的间隔。每次跳动,都会重复这个调整的过程。
NTP时间同步方案设计
方案详细解释:
(1)管理节点1作为主NTP服务器,跟互联网NTP服务器进行时间同步;管理节点2作为备用NTP服务器,也跟互联网NTP服务器进行时间同步。两个管理节点做Heartbeat,设置一个漂移IP地址192.168.0.103,并对ntpd服务进行双机高可用;
(2)集群计算节点和IO节点,跟管理节点的虚拟IP地址192.168.0.103通过ntpd服务做时间同步;
(3)所有节点,在ntp时间同步的同时,设置硬件时间跟系统时间一致;
(4)所有计算节点和IO节点开机时,通过ntpdate跟192.168.0.103进行时间同步,然后再开启ntpd服务。
From: https://blog.csdn.net/jerry_1126/article/details/38015449
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正,且可用加密确认的方式来防止恶毒的协议攻击。
NTP提供准确时间,首先要有准确的时间来源,这一时间就是是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC源的远近将所有服务器归入不同的Stratum层。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。
计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。
https://www.cnblogs.com/aspnetdream/p/6105687.html