Greenplum Mater自动切换方案

使用Keepalived集群软件实现Master节点的自动切换

一、方案描述

Keepalived的作用是检测服务器的状态,当GPDB的master服务器出现重启或者无法访问的情况下,或者GPDB主进程已经不再运行的情况下,会自动触发GPDB master-standby的自动切换动作。同时自动将虚拟IP地址接管至standby mater通过这种方式可以保证GPDB mater服务的高可用。

Keepalived可以通过Yum来安装,可直接使用。

通过Keepalived配置虚拟IP,分别在两台Master上启动Keepalived服务,使其形成一个组。一旦主master发生故障,Keepalived服务会把虚拟IP切换到备Master上,同时调起上述激活Standby master的脚本。

二、安装部署说明

  1. 使用Yum安装软件包
    yum install
    keepalived
  2. 配置keepalived配置文件,其中配置虚拟IP和上述激活Standby master的脚本。
    示例中的环境信息为:
    GP Master IP:
    10.132.17.65
    GP standby Master IP:
    10.132.17.64
    对外服务的虚拟IP:
    10.132.17.63
  3. 在master上的配置:

[root@mdw ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
router_id gpm01
}

vrrp_script chk_gp {
script"/home/gpadmin/bin/check_gp.sh"
master
interval 5
}

vrrp_instance VI_1
{
state MASTER
interface eth3
virtual_router_id 51
priority 150
advert_int 1
authentication
{
auth_type PASS
auth_pass 1111
}

virtual_ipaddress
{
10.132.17.63
}

track_script
{
chk_gp
}
}

检测脚本

[root@mdw ~]# cat /home/gpadmin/bin/check_gp.sh
#!/bin/sh
CHECK_PROCESS=ps aux|grep postgres|grep silent|wc -l
if [ $CHECK_PROCESS -eq
0 ]; then
echo “GP is stopped”
sleep 2
CHECK_PROCESS=ps aux|grep postgres|grep silent|wc -l
if [ $CHECK_PROCESS -eq
0 ]; then
service keepalived
stop
fi
fi

  1. 在standby master上的配置:

[root@smdw ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
router_id gpm02
}

vrrp_instance VI_1
{
state MASTER
interface eth3
virtual_router_id 51
priority 50
advert_int 1
authentication
{
auth_type PASS
auth_pass 1111
}

virtual_ipaddress
{
10.132.17.63
}

notify /home/gpadmin/bin/keep.sh /状态切换时调用的脚本/
}

[root@smdw ~]# cat /home/gpadmin/bin/keep.sh
#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3

case $STATE in
“MASTER”) /bin/bash /home/gpadmin/bin/runner.sh >>/home/gpadmin/LOGS/keep.data;;
“BACKUP”) echo "Executing as BACKUP date" >> /home/gpadmin/LOGS/keep.data;;
“FAULT”) echo "Executing as FAULT date" >> /home/gpadmin/LOGS/keep.data exit 0;;
*) echo "Unknown state <<<<<<<<<<<<<<<<<<< date" >> /home/gpadmin/LOGS/keep.data exit 1;;
esac

[root@smdw ~]# cat /home/gpadmin/bin/runner.sh

/bin/su - gpadmin -c “bash /home/gpadmin/bin/activateGPstandby.sh”

[root@smdw ~]# cat /home/gpadmin/bin/activateGPstandby.sh

source /usr/local/greenplum-db/greenplum_path.sh
export export MASTER_DATA_DIRECTORY=/data1/master/gpseg-1
export PGPORT=5432
echo "Activating MASTER on smdw date" >> /home/gpadmin/status
gpactivatestandby -a -d /data1/master/gpseg-1

5.配置完成后
在主备节点上启动keepalived服务:service keepalived start;

6.访问GP集群使用10.132.17.63即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值