局域网中Linux主机之间同步时间的一种简便方法

几天在实验室用淘汰的pc搭了一个8个节点的小集群做hama的实验,从重新组装硬件到装系统、配置集群,忙了两天,满身都是灰。

安装集群时,经常需要同步各个节点之间的系统时间,例如hbase集群中,过大的时间差可能会导致诡异的问题

对于几个节点的小集群,可以用NTP(network time protocol)同步时间,而且手动就可以:

选择局域网中的一台机器作为ntp服务器,在这台机器上需要安装并启动ntpd

其他机器上要关闭ntpd,安装ntpdate

CentOS6.3上这两个软件都是自带的,只需根据需要打开或者关闭。

注意其他机器的ntpd必须关闭:

# service ntpd stop

修改ntp服务器上的/etc/ntp.conf,加上以下的配置:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

后面哪个数字在0-15之间都可以,这样就将这台机器的本地时间作为ntp服务提供给客户端

重启ntpd:

# service ntpd restart

等五六分钟,让ntpd完成自身的时间同步,这期间可以用:

# watch ntpq -p

查看状态,第6列达到17时就可以了。等待的时间是第5列poll的秒数乘以5。

然后其他的机器上执行:

# ntpdate xxxx 

xxxx是ntp服务器的ip地址或者主机名

也可以设置时间自动同步。

参考:http://www.linuxidc.com/Linux/2012-07/66272.htm

 

 

手动一台台地同步时间(执行ntpdate xxx)实在很麻烦。

于是尝试了一种一拍脑袋都能想到的方法,居然work了,这么做好不好我也不知道,还望大牛指点。方法如下:

在除了运行ntpd之外的机器上,执行:

# chkconfig --list | grep ntpd

看看ntpd有没有开机自启动(如果显示的全为off则表明不是开机自启动),如果是开机自启动的,需要执行:

# chkconfig ntpd off

关闭ntpd,如果ntpd开着,ntpdate没办法从其他服务器同步时间的。

然后在/etc/rc.local(debian/Ubuntu系统中可能是/etc/rc.d/rc.local)末尾加入一行:

ntpdate xxx.xxx.xxx.xxx

xxx表示运行ntpd的那台服务器的ip地址

然后重启就可以了。

http://www.linuxidc.com/Linux/2013-04/82647.htm

猜你喜欢

转载自wankunde.iteye.com/blog/1852011