一.时间服务器(NTP)相关解释
网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(Universal Time Coordinated)
二.时间服务器的重要性
在互联网上进行时间同步具备重要意义。随着互联网的发展和延伸到社会的各个方面,在其余的领域对时间同步也提出了多种要求,例如各类实时的网上交易、通讯网络的时间配置、网络安全性设计、分布性的网络计算和处理、交通航班航路管理以及数据库文件管理和呼叫记录等多种涉及时间戳的应用,都须要精确、可靠和公认的时间。若是系统内某个服务器的时间有偏差会形成交互失败有歧义,严重的将致使交易失败。由此能够看出NTP服务器的存在是无可置疑的。
三.内外网服务器时间同步方案
说明了时间同步的重要性后,须要根据实际状况来调整服务器的时间同步策略:
1. 若是每一个服务器均可以有公网IP地址与外界通讯,那简单的方式就是:每一个服务器均可以配置与互联网上的时间服务器进行同步,达到每一个内外网服务器系统时间的一致性。前端
2. 可是一般的状况是:在IDC托管的服务器只有前端WEB服务器对外通讯,数据库,文件等服务器只是经过私网地址与前端WEB通讯,造成总体的架构。数据库
这个时候就须要总体系统内部有一台服务器来担当中介,具体是:将某台服务器配置成时间服务器(注:此服务器能直接同步互联网上的时间服务器),其余全部服务器都定时与这台服务器在内部进行时间同步,达到每一个服务器的时间一致性。
四.方案图示
五.时间服务器配置
1. 安装NTP软件centos
由于系统所用系统是CentOS就可使用YUM方便的安装系统软件。
#yum install ntp
2. 编辑配置文件安全
备份一下原始配置文件:mv /etc/ntp.conf /etc/ntp.conf-bk服务器
vi /etc/ntp.conf
添加以下内容
容许192.168.100.0 网段服务器进行同步,拒绝其余服务器的同步网络
restrict 192.168.100.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
restrict 127.0.0.1
restrict -6 ::1
外网时间服务器定义
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
server pool.ntp.org
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
3. 启动NTP服务架构
service ntpd s tart
4. 客户端配置ide
添加到计划任务中,每三十分钟同步一次
crontab –e
30 * * * * /usr/sbin/ntpdate 192.168.100.5spa
开机启动时的时间同步设置
echo “/usr/sbin/ntpdate 192.168.100.5;/sbin/hwclock -w ”>> /etc/rc.d/rc.local
5. 手动在其余服务器上同步时钟设计
root@xen100 vm_backup_script]# /usr/sbin/ntpdate 192.168.100.5
28 Jul 17:30:59 ntpdate[19081]: adjust time server 192.168.100.5 offset -0.019476 sec
[root@xen100 vm_backup_script]# date
Sat Jul 28 17:31:02 CST 2012
#######################################################
今天同事给了一个关于ntpd和ntpdate 的区别说明链接,内容以下:
ntpd不只仅是时间同步服务器,他还能够作客户端与标准时间服务器进行同步时间,并且是平滑同步,并不是ntpdate当即同步,在生产环境中应慎用ntpdate。
因为ntpdate是当即同步,在得到一个时间以后,ntpdate使用settimeofday(2)设置系统时间,就会产生时钟的跃变。
用ntpdate调整时间的方式,会有几个很是明显的问题:
第一,这样作不安全。ntpdate的设置依赖于ntp服务器的安全性,***者能够利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。因为ntpdate采用的方式是跳变,跟随它的服务器没法知道是否发生了异常(时间不同的时候,惟一的办法是以服务器为准)。
第二,这样作不精确。一旦ntp服务器宕机,跟随它的服务器也就会没法同步时间。与此不一样,ntpd不只可以校准计算机的时间,并且可以校准计算机的时钟。
第三,这样作不够优雅。因为ntpdate是跳变,而不是使时间变快或变慢,依赖时序的程序会出错。例如,若是ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的。
许多应用程序依赖连续的时钟,取得的时间是线性的。例如数据库事务,一般会地依赖这样的事实:时间不会往回跳跃。
咱们能够想象如下,假如Oracle服务器的时间是01:00 AM,标准时间是00:30 AM,很明显Oracle服务器通过他本身的时间00:40 AM。倘若此时直接使用ntpdate将服务器与标准时间同步,那么意味着Oracle服务器将在同一天通过两个00:40 AM,这对于某些计划任务来讲多是致命的。
于是,惟一一个能够令时间发生跳变的点,是计算机刚刚启动,但尚未启动不少服务的那个时候。其他的时候,理想的作法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间
#######################################################
按照上面的说法,那咱们就能够改变客户端的配置取消ntpdate 的计划任务同步时间
将全部客户端配置成时间服务器,只是配置文件中的 :
外网时间服务器定义指向与外网同步的时间服务器便可
server 192.168.100.5