SuSE11环境下ntp+Keepalived实现NTP服务集群高可用

Published on with 0 views and 0 comments

Keepalived 的作用是检测后端服务器的状态,如果有一台服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除。当服务器工作正常后 Keepalived 自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

实验环境
# 内核版本
# cat /proc/version
Linux version 3.0.76-0.11-default (geeko@buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990)
# uname -a
Linux ntp1 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux

# 发行版本
# lsb_release -a
LSB Version:    core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch
Distributor ID: SUSE LINUX
Description:    SUSE Linux Enterprise Server 11 (x86_64)
Release:        11
Codename:       n/a

# 补丁版本
# cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 3
#
实验过程
【keepalived安装说明】
两个节点的优先级priority依次为 100、90;
router_id 一次为 LVS_1 LVS_2 ;
virtual_router_id 100;
state 中,10.211.57.119 为 MASTER ,10.211.57.120 节点为 BACKUP;
网卡均为 eth0;
虚拟IP为 10.211.57.79/24;
若 MASTER 节点 ntp 服务down,脚本检查到,会用优先级100减去30,最后得到的优先级为70,这样VIP就会漂移到 BACKUP 上面去;
当 MASTER 节点 ntp 服务恢复后,VIP就会重新漂移到 MASTER 上面去。

【上传keepalived源码包及依赖包】
# cd /usr/local/src/
# tar xf ntp-keepalived.tar.gz
# cd ntp-keepalived/
# ls -1
keepalived-2.0.19
keepalived-2.0.19.tar.gz
keyutils-devel-1.2-107.3.x86_64.rpm
krb5-devel-1.6.3-133.2.x86_64.rpm
libcom_err-devel-1.41.9-2.2.x86_64.rpm
libffi6-3.2.1-5.1.x86_64.rpm
libopenssl-devel-1.0.2n-2.58.1.x86_64.rpm
libopenssl1_0_0-1.0.2n-2.58.1.x86_64.rpm
libp11-kit0-0.23.2-32.6.x86_64.rpm
libtasn1-4.9-56.6.x86_64.rpm
openssl-1.0.2n-2.58.1.x86_64.rpm
p11-kit-tools-0.23.2-32.6.x86_64.rpm
zlib-1.2.3-143.1.x86_64.rpm
zlib-devel-1.2.3-143.1.x86_64.rpm
#

【安装依赖包】
# rpm -vih --replacefiles --force --nodeps ./*.rpm

【编译keepalived】
# cd keepalived-2.0.19/
# ls -1 /usr/src/
linux
linux-3.0.76-0.11
linux-3.0.76-0.11-obj
linux-obj
packages
# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/linux-3.0.76-0.11
# make
# make install

【准备健康检查脚本】
【各个ntp服务端节点均配置】
# cd /usr/local/keepalived/
# vim /usr/local/keepalived/check_ntp.sh
#!/bin/bash
count=`netstat -apn | grep 0.0.0.0:123 | wc -l`
if [ $count -gt 0 ]; then
    exit 0
else
    exit 1
fi
# chmod +x /usr/local/keepalived/check_ntp.sh

【准备配置文件】

【MASTER 节点】
# cat > /usr/local/keepalived/etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalived
global_defs {
  router_id LVS_1
}

vrrp_script checkhaproxy
{
    script "/usr/local/keepalived/check_ntp.sh"
    interval 1
    weight -30
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
      auth_type PASS
      auth_pass abc666666
    }
    virtual_ipaddress {
      10.211.57.79/24
    }
    track_script
    {
      checkhaproxy
    }
}
EOF
#

【BACKUP 节点】
# cat > /usr/local/keepalived/etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalived
global_defs {
  router_id LVS_2
}

vrrp_script checkhaproxy
{
    script "/usr/local/keepalived/check_ntp.sh"
    interval 1
    weight -30
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100
    priority 90
    advert_int 1
    authentication {
      auth_type PASS
      auth_pass abc666666
    }
    virtual_ipaddress {
      10.211.57.79/24
    }
    track_script
    {
      checkhaproxy
    }
}
EOF
#

【启动keepalived】
# /usr/local/keepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf

【查看ntp和keepalived服务状态】
# netstat -apn | grep 0.0.0.0:123
udp        0      0 0.0.0.0:123             0.0.0.0:*                           10739/ntpd
# netstat -apn | grep  0.0.0.0:112
raw        0      0 0.0.0.0:112             0.0.0.0:*               7           10756/keepalived
raw        0      0 0.0.0.0:112             0.0.0.0:*               7           10756/keepalived
#

【备注:keepalived配置文件有变动(包含检测脚本),需先"kill -9 PID"关闭keepalived服务,再启动服务。】

标题:SuSE11环境下ntp+Keepalived实现NTP服务集群高可用
作者:guihaiyidao
地址:http://www.1573609.com/articles/2023/03/13/1678698585915.html