在一些项目上,常常会遇到双机集群环境内的服务器时间不一致的问题,毕竟手动设置总会存在误差,而构建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后,点击”立即更新“。
三、客户端设置(linux)
1. 检查是否已经安装有ntp软件包。
[root@localhost ~]# 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)
[root@localhost ~]# date
Mon Mar 3 14:30:02 CST 2014
[root@localhost ~]# service ntpd start
Starting ntpd: [ OK ]
[root@localhost ~]# 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
[root@localhost ~]# kill -9 7825
[root@localhost ~]# lsof -i:123
[root@localhost ~]# ntpdate 192.168.85.251
3 Mar 14:33:48 ntpdate[7836]: adjust time server 192.168.85.251 offset 0.008505 sec
[root@localhost ~]# 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的运行状态
# lssrc -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分钟,再进行检查。
# lssrc -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 ' 时, 表明客户端与服务器端成功进行了同步。