在一些项目上,常常会遇到双机集群环境内的服务器时间不一致的问题,毕竟手动设置总会存在误差,而构建NTP时时钟服务器可以解决这个问题。大概过程为,将自己的笔记本设置为NTP服务器,服务器为客户端,从而使集群内的服务器时间一致。下面是配置的详细步骤。


一、服务器端设置(win7)


1. 通过开始菜单,输入regedit命令后打开注册表,为了安全起见,备份一**册表文件。


2. 修改以下选项的键值

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders

将NtpServer内的【Enabled】设定为1,默认为0,打开NTP服务器功能。


3. 修改以下选项的键值

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

将“AnnounceFlags”修改为“5”    即采用本机为时间服务器
“AnnounceFlags”=“a”    采用外面的时间服务器


4. 重启w32time服务

net stop w32time && net start w32time

“&&”符号表示同时执行两条命令


注意:如果该服务器和internet连接,那么为了避免服务器和internet上的ntp同步,最好追加以下配置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\
将NtpClient的【enable】改为0,默认打开,以防止作为客户端自动同步外界的时间服务。


至此,NTP时间同步服务器已构建成功。


二、客服端设置(windows)


设置NTP服务端IP后,点击”立即更新“。

在笔记本上构建NTP,同步集群服务器时间


三、客户端设置(linux)


1. 检查是否已经安装有ntp软件包。

[[email protected] ~]# rpm -qa|grep ntp
chkfontpath-1.10.1-1.1
ntp-4.2.2p1-9.el5_3.2


2.  #ntpdate  192.168.XX.XX(服务端IP)


[[email protected] ~]# date
Mon Mar  3 14:30:02 CST 2014
[[email protected] ~]# service ntpd start
Starting ntpd: [  OK  ]
[[email protected] ~]# lsof -i:123
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
ntpd    7825  ntp   16u  IPv4 105078       UDP *:ntp
ntpd    7825  ntp   17u  IPv6 105082       UDP *:ntp
ntpd    7825  ntp   18u  IPv6 105084       UDP localhost6.localdomain6:ntp
ntpd    7825  ntp   19u  IPv4 105085       UDP localhost.localdomain:ntp
ntpd    7825  ntp   20u  IPv4 105086       UDP :ntp
[[email protected] ~]# kill -9 7825
[[email protected] ~]# lsof -i:123
[[email protected] ~]# ntpdate 192.168.85.251
3 Mar 14:33:48 ntpdate[7836]: adjust time server 192.168.85.251 offset 0.008505 sec
[[email protected] ~]# date
Mon Mar  3 14:33:54 CST 2014


四、客户端设置(AIX)


1、编辑 NTP 客户端上的 /etc/ntp.conf文件, 内容如下(假设XX.XX.XX.XX是所要使用的 NTP服务器IP地址):
----------------------------
#broadcastclient
server XX.XX.XX.XX
driftfile /etc/ntp.drift
racefile /etc/ntp.trace
----------------------------
其中配置语句server XX.XX.XX.XX表明, 所客户端将于与IP地址为 XX.XX.XX.XX 的NTP服务器进行时间同步.


2、执行#ntpdate -d XX.XX.XX.XX检查客户端与服务器的时间偏移量是否大于1000s
...
18 Mar 10:52:54 ntpdate[23578]: step time server 10.254.96.101 offset 86323.06827
        如上命令执行结果所示,客户端与服务器端的时间偏移量过大,因此即使启动客户端xntpd守护进程也会导致客户端无法与服务器端进行时间同步。因此必须首先执行第3步调整客户端时间。


3、使用ntpdate调整客户端时间
#ntpdate XX.XX.XX.XX
        完成上述操作后 ntp 客户端与 ntp 服务器系统时钟完成同步,ntp 客户端得到了新的系统时间。继续执行以下步骤。


4、启动客户端xntpd守护进程
# startsrc -s xntpd
也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动。
# smitty xntpd


5、查询xntpd的运行状态
# l***c -ls xntpd
Program name:   /usr/sbin/xntpd
Version:       3
Leap indicator: 00 (No leap second today.)
Sys peer:        no peer, system is insane
...
如上所示,当 system peer 为 'insane' 时, 表明客户端还未与服务器端成功同步。一般情况下等待5分钟,再进行检查。
# l***c -ls xntpd
Program name:   /usr/sbin/xntpd
Version:       3
Leap indicator: 00 (No leap second today.)
Sys peer:      XX.XX.XX.XX
...
如上所示,当 system peer 为 ' XX.XX.XX.XX ' 时, 表明客户端与服务器端成功进行了同步。