分类:
2008-05-11 22:13:16
上周五开会提到的有些AIX服务器(aixserver1、aixserver2等)时间不准的问题,我研究了一下,发现问题的原因可能与时区和夏时制设置有关。我的研究结果如下:
1、关于如何判断AIX是否使用了夏时制
可以用echo $TZ命令看时区来判断,时区以DT结尾的就使用了夏时制。如:
$ hostname; echo $TZ
aixserver2
CST6CDT
$
$ hostname; echo $TZ
aixserver1
CST6CDT
$
2、关于时间同步
使用timed是比较简单的方法,设置步骤如下:
以一台时间准确的机器为timed服务器 startsrc -s timed -a "-M -c"
以要调整时间的机器为timed客户端 startsrc -s timed,若几分钟内仍没有同步,可以refresh -s timed 。
几点说明:
timed只能同步同一VLAN内的机器,不能跨路由;
时间同步结束后,若两台机器的时区不同,则它们的本地时间必定不同,差距与时区差相同;
若要开机自动启动timed,可将timed的启动语句加到 /etc/rc.tcpip 中,但不建议这样做,建议只使用timed进行临时时间同步,同步完立即用stopsrc -s timed停止;
IBM将timed看作是一种旧的时间守护程序,IBM推荐用 xntpd 代替它。
3、关于如何检查两台AIX服务器时间是否一致
timedc命令可以做到,如:
aixserver3#/> timedc clockdiff aixserver1
time on aixserver1.iipc.hk.ibm.com is 37628680 ms. behind time on aixserver3
aixserver3#/>
几点说明:
timedc命令与timed没有必然的关系,不运行timed,timedc同样可以正常工作,且两台机器可以在不同的VLAN;
同timed类似,timedc同样存在时区差的问题,即:如果时区不一致,即使timedc命令的结果报无差异,两机的本地时间也肯定不一致。
4、关于更改时区
由以上可知,时区设置在时间同步的问题上比较重要。即使我们不需要精确的时间同步,也建议用chtz BEIST-8命令调整公司内所有AIX服务器的时区。
几点说明:
BEIST-8含义为:(BEIST-8) Peoples Rep. China (CUT +8) ;
更改时区后,机器必需重启动才能生效(用date命令更改本地时间不需重启动);
为保证以后新装的机器都使用BEIST-8,新机器的安装脚本(见TEAMROOM)我已做了相应修改。
5、关于xntpd
若我们需要精确的时间同步,可以参考:
6、关于AIX与WINDOWS服务器时间同步(若我们需要)
WINDOWS虽然自带NTP协议,但只支持udp,不支持tcp,所以AIX无法与其同步。若要AIX服务器与公司的WINDOWS服务器时间同步,可以参考:
最后,关于调整aixserver1、aixserver2等服务器时间,我的建议是:
1、用chtz BEIST-8调整时区;
2、若机器允许马上重启,则重启后用date命令粗略调整,或用timed精确调整;
3、若机器不允许马上重启,则暂时用date命令粗略调整,但下次机器重启后,勿忘还要用date命令或timed重新调整;
4、若使用timed,要注意同步结束后stopsrc -s timed ;
5、调整系统时间,可能会影响到DB2里的数据(也可能不影响,目前不确定),故调整时间前最好知会DBA;
6、以一台机器为基准,用timedc或snmp等方法定期监控所有AIX服务器的时间差;
7、对于是否使用xntpd,和是否需要与WINDOWS服务器同步,听大家的意见。