一、 前言 搭建和維護集群環境中時鐘同步是非常重要一環。如果集群的時間不統一,例如ceph集群就會報錯無法更新數據、CDH集群無法添加客戶端等等。目前主流在Linux系統搭建集群用到NTP和chrony軟體,本文簡單介紹兩者的集群搭建。 二、 NTP和chrony區別 根據chrony官網描述,主要 ...
一、 前言
搭建和維護集群環境中時鐘同步是非常重要一環。如果集群的時間不統一,例如ceph集群就會報錯無法更新數據、CDH集群無法添加客戶端等等。目前主流在Linux系統搭建集群用到NTP和chrony軟體,本文簡單介紹兩者的集群搭建。
二、 NTP和chrony區別
根據chrony官網描述,主要區別如下圖:(圖太大了,截取了一部分)
詳細見官網:chrony – NTP 實施的比較
三、 環境準備
註意:ntp和chrony無法同時再一臺機器運行;請單獨安裝運行
ntp下載地址(Centos7):
http://mirror.centos.org/centos/7/os/x86_64/Packages/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
chrony下載地址(Centos7):
http://mirror.centos.org/centos/7/os/x86_64/Packages/chrony-3.4-1.el7.x86_64.rpm
四、 NTP搭建集群同步時間
1、 更新阿裡源、安裝ntp|ntpdate
離線環境提前下載離線包
#更新阿裡源 cd /etc/yum.repos.d/ curl -L -O https://mirrors.aliyun.com/repo/Centos-7.repo && mv ./Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo curl -L -O http://mirrors.aliyun.com/repo/epel-7.repo && mv ./epel-7.repo /etc/yum.repos.d/epel.repo yum clean all && yum makecache yum install -y epel-* #安裝NTP rpm -qa | grep ntp yum -y remove ntpdate ntp yum -y install ntp ntpdate #設置時區上海 timedatectl set-timezone Asia/Shanghai date mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime timedatectl set-timezone Asia/Shanghai
2、 離線環境:3台機器時鐘同步其中一臺
將192.168.1.131作為主節點,其他節點都同步它,允許同步網段設置為192.168.1.0
● 主節點選擇192.168.1.131,修改主節點配置文件
#主節點:修改配置文件 mv /etc/ntp.conf /etc/ntp.conf.bakk cat >>/etc/ntp.conf<<EOF driftfile /var/lib/ntp/drift restrict default nomodify notrap nopeer noquery restrict 192.168.1.131 nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap server 127.127.1.0 fudge 127.127.1.0 stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor EOF cat /etc/ntp.conf #需要把對應restrict IP和restrict網段進行修改即可
● 其他節點作為客戶端192.168.1.132/133,修改其他節點配置文件
#其他節點:ntp客戶端配置 mv /etc/ntp.conf /etc/ntp.conf.bakk cat >>/etc/ntp.conf<<EOF driftfile /var/lib/ntp/drift restrict default nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap server 192.168.1.131 fudge 192.168.1.131 stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor EOF cat /etc/ntp.conf #需要把對應server Fudge IP和restrict網段進行修改即可
● 註意:先啟動主節點的NTP服務、再啟動其他節點
#主節點執行同步
systemctl restart ntpd
systemctl status ntpd
#systemctl enable ntpd
● 同步硬體時間,檢查集群同步狀態,關閉chyony
#其他節點執行同步 ntpdate -u 192.168.1.131 #同步硬體時間 sed -i 's#SYNC_HWCLOCK=no#SYNC_HWCLOCK=yes#g' /etc/sysconfig/ntpdate hwclock -w hwclock -r #檢查是否成功 ntpstat ntpq -p timedatectl #會衝突,需要停止chronyd.service systemctl stop chronyd.service systemctl disable chronyd.service
3、 線上環境:3台機器同步外網時鐘伺服器即可
線上環境同步時間
#手動同步 ntpdate -u ntp.ntsc.ac.cn #寫入配置文件自動同步 mv /etc/ntp.conf /etc/ntp.conf.bakk cat >>/etc/ntp.conf<<EOF driftfile /var/lib/ntp/drift restrict default nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap server ntp.ntsc.ac.cn fudge ntp.ntsc.ac.cn stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor EOF cat /etc/ntp.conf
4、 開放埠123
如果無法同步,請檢查防火牆是否開放埠123
netstat -lnptu | grep ntp #關閉防火牆和selinux systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config sestatus
五、 chrony搭建集群同步時間
1、 更新阿裡源、安裝chony
離線環境提前下載離線包
#更新阿裡源 cd /etc/yum.repos.d/ curl -L -O https://mirrors.aliyun.com/repo/Centos-7.repo && mv ./Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo curl -L -O http://mirrors.aliyun.com/repo/epel-7.repo && mv ./epel-7.repo /etc/yum.repos.d/epel.repo yum clean all && yum makecache yum install -y epel-* #安裝chrony rpm -qa | grep chrony yum -y remove chrony yum -y install chrony #設置時區上海 timedatectl set-timezone Asia/Shanghai date mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime timedatectl set-timezone Asia/Shanghai
2、 離線環境:3台機器時鐘同步其中一臺
將192.168.1.131作為主節點,其他節點都同步它,允許同步網段設置為192.168.1.0
● 主節點選擇192.168.1.131,修改主節點配置文件
#主節點:修改配置文件 mv /etc/chrony.conf /etc/chrony.conf.bakk cat >> /etc/chrony.conf<<EOF server 192.168.1.131 iburst server 127.0.0.1 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 192.168.1.0/24 local stratum 10 logdir /var/log/chrony EOF cat /etc/chrony.conf
● 主節點選擇192.168.1.131,修改主節點配置文件
#其他節點:修改配置文件 mv /etc/chrony.conf /etc/chrony.conf.bakk cat >> /etc/chrony.conf<<EOF server 192.168.1.131 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync local stratum 10 logdir /var/log/chrony EOF cat /etc/chrony.conf
● 註意:先啟動主節點的NTP服務、再啟動其他節點
#先停止ntp\ntpdate服務 systemctl stop ntpd.service systemctl stop ntpdate.service #再啟動chronyd systemctl restart chronyd.service systemctl status chronyd.service #等幾秒可以查看同步狀態 chronyc sources -v chronyc clients timedatectl
3、 線上環境:3台機器同步外網時鐘伺服器即可
#寫入配置文件自動同步 mv /etc/chrony.conf /etc/chrony.conf.bakk cat >> /etc/chrony.conf<<EOF server ntp.ntsc.ac.cn iburst server 127.0.0.1 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 192.168.1.0/24 local stratum 10 logdir /var/log/chrony EOF cat /etc/chrony.conf
4、 開放埠123和323
下麵是 Chrony 服務使用的預設埠:
● UDP 埠 123:Chrony 客戶端和伺服器都使用此埠進行 NTP 數據包通信。
● TCP 埠 323:如果需要,Chrony 可以使用此埠進行監視和配置。
作者: 博客園-李宗盛 出處: https://home.cnblogs.com/u/subsea/ 博客園主頁:https://www.cnblogs.com/subsea/ CSDN主頁:https://blog.csdn.net/SUBSEA123/