网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(Universal Time Coordinated)
二.时间服务器的重要性
在互联网上进行时间同步具有重要意义。随着互联网的发展和延伸到社会的各个方面,在其他的领域对时间同步也提出了多种要求,例如各种实时的网上交易、通信网络的时间配置、网络安全性设计、分布性的网络计算和处理、交通航班航路管理以及数据库文件管理和呼叫记录等多种涉及时间戳的应用,都需要精确、可靠和公认的时间。如果系统内某个服务器的时间有误差会造成交互失败有歧义,严重的将导致交易失败。由此可以看出NTP服务器的存在是不容置疑的。
三.内外网服务器时间同步方案
说明了时间同步的重要性后,需要根据实际情况来调整服务器的时间同步策略:
1. 如果每个服务器都可以有公网IP地址与外界通信,那简单的方式就是:每个服务器都可以配置与互联网上的时间服务器进行同步,达到每个内外网服务器系统时间的一致性。
2. 但是通常的情况是:在IDC托管的服务器只有前端WEB服务器对外通信,数据库,文件等服务器只是通过私网地址与前端WEB通信,形成整体的架构。
微博易的系统正是这种情况。
这个时候就需要整体系统内部有一台服务器来担当中介,具体是:将某台服务器配置成时间服务器(注:此服务器能直接同步互联网上的时间服务器),其他所有服务器都定时与这台服务器在内部进行时间同步,达到每个服务器的时间一致性。
四.方案图示
五.时间服务器配置
1. 安装NTP软件
因为系统所用系统是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. 客户端配置
添加到计划任务中,每三十分钟同步一次
crontab –e
30 * * * * /usr/sbin/ntpdate 192.168.100.5
开机启动时的时间同步设置
echo “/usr/sbin/ntpdate 192.168.100.5 ”>> /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