在主从服务器配置时,往往需要先保证链多个节点之间的时间是同步的,如果时间不一致,在集群或分布式的情况下往往会出现很多意想不到的错误,因此,我们可以使用NTP的方式实现主从服务器节点之间的时间同步。具体的操作步骤如下。
环境说明
这里潘老师以一主两从为例,服务器配置如下:
主机名 | 系统 | IP | 主备 |
---|---|---|---|
master | centos7 | 192.168.217.100 | 主 |
slave1 | centos7 | 192.168.217.101 | 从1 |
slave2 | centos7 | 192.168.217.102 | 从2 |
主机ip配置
hosts配置如下:
192.168.217.100 master 192.168.217.101 slave1 192.168.217.102 slave2
具体可以参考:主从服务器实现主机名和ip绑定,配置hosts方便访问
如果给主ip绑定名称,将后续的涉及代主机名称的地方换为对应的ip即可
安装ntp服务
我们需要在每个节点安装ntp
服务
sudo yum install ntp -y
配置时间原点
配置master的/etc/ntp.conf
,这边采用本地机器作为时间的原点
1)只允许192.168.217.0网段(这里的网段以你自己的服务器ip网段为准)的客户机进行时间同步
原:
现:
放开restrict
行的注释,修改允许同步网段为自己服务器所在网段,比如我这里是192.168.217
网段
2)注释掉默认的server0~3,新增中国最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
server 210.72.145.44 perfer # 中国国家受时中心 server 202.112.10.36 # 1.cn.pool.ntp.org server 59.124.196.83 # 0.asia.pool.ntp.org
原:
现:
3) 允许上层时间服务器主动修改本机时间
新增如下:
restrict 210.72.145.44 nomodify notrap noquery restrict 202.112.10.36 nomodify notrap noquery restrict 59.124.196.83 nomodify notrap noquery
4)外部时间服务器不可用时,以本地时间作为时间服务
新增如下:
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
service ntpd start
临时同步时间
在其他节点slave1和slave2中同步主节点时间
sudo ntpdate master
定时同步时间
由于ntpdate只在开机运行,我们需要设置为1小时同步一次。在slave1和slave2中使用crontab来自动更新时间:
crontab -e
添加如下行:
* */1 * * * /usr/sbin/ntpdate master
验证是否一致
使用date
命令发现所有节点时间已经一致。
通过以上的配置就可以轻松实现主从服务器之间的时间同步问题,并且在不联网的情况下也可以保证所以的服务器时间以主节点master为准。