首页 > 其他分享 >opengauss高可用之keepalived配置

opengauss高可用之keepalived配置

时间:2023-04-20 20:32:26浏览次数:36  
标签:可用 ## keepalived etc master active opengauss

一、安装keepalived

yum install -y kernel-devel (安装kernerl-devel,目的是给keepalived提供和LVS搭配使用)
yum install -y openssl-devel ( HTTPS 服务的时候要用到此模块)
yum install gcc gcc-c++ make -y (提供编译工具)
tar -xf keepalived-2.0.12.tar.gz -C /usr/local/src/
cd /usr/local/src/keepalived-2.0.12/
./configure --prefix=/usr/local/keepalived
make && make install
 mkdir /etc/keepalived
cp  /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
systemctl restart keepalived

二、第一个节点配置

vi /etc/keepalived/keepalived.conf
--------------------------------------------
! Configuration File for keepalived
## 全局定义
global_defs {
  router_id Keepalived_openGauss01          #运行 keepalived 服务器的一个标识
  script_user root                        #执行脚本的用户
}
vrrp_script chk_opengauss_active {
  script "/etc/keepalived/chk_opengauss_active.sh" #脚本路径
  interval 2 #脚本检测频率
  fall 2 #如果连续两次检测失败,认为节点服务不可用
  rise 1 #如果连续一次检查成功则认为节点正常
}
## VRRP实例定义
## 通常如果master服务Down掉后backup会变成master,但是当master服务又好了的时候 master此时会抢占VIP,这样就会发生两次数据库切换。
## 建议使用nopreempt参数设置为非抢占模式,此时主库从故障中恢复后,不会从新的主库抢回VIP,但这需要将master和backup的state都设置成backup。
vrrp_instance VI_1 {
  state BACKUP                            #指定Keepalived的角色(BACKUP需大写)
  interface eth0                          #指定 HA 监测的网络接口
  virtual_router_id 59                    #虚拟路由的数字标识,同一个 vrrp_instance 下,MASTER 和 BACKUP 一致
  nopreempt                               #非抢占模式,主库从故障中恢复后,不会从新的主库抢回VIP
  priority 100                            #优先级,备节点需要适当降低优先级 
  advert_int 1                            #MASTER 和 BACKUP 负载均衡器同步检查的时间间隔(秒)
  authentication {                        #设置验证码和验证类型
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {                     #设置虚拟 IP 地址,可以设置多个,每个一行
      192.168.1.10
  }
  notify_master "/etc/keepalived/change_to_master.sh"
  track_script {
    chk_opengauss_active
  }
}

三、第二个节点配置

vi /etc/keepalived/keepalived.conf
--------------------------------------------
! Configuration File for keepalived
## 全局定义
global_defs {
  router_id Keepalived_openGauss02          #运行 keepalived 服务器的一个标识
  script_user root                        #执行脚本的用户
}
vrrp_script chk_opengauss_active {
  script "/etc/keepalived/chk_opengauss_active.sh" #脚本路径
  interval 2 #脚本检测频率
  fall 2 #如果连续两次检测失败,认为节点服务不可用
  rise 1 #如果连续一次检查成功则认为节点正常
}
## VRRP实例定义
## 通常如果master服务Down掉后backup会变成master,但是当master服务又好了的时候 master此时会抢占VIP,这样就会发生两次数据库切换。
## 建议使用nopreempt参数设置为非抢占模式,此时主库从故障中恢复后,不会从新的主库抢回VIP,但这需要将master和backup的state都设置成backup。
vrrp_instance VI_1 {
  state BACKUP                            #指定Keepalived的角色(BACKUP需大写)
  interface eth0                          #指定 HA 监测的网络接口
  virtual_router_id 59                    #虚拟路由的数字标识,同一个 vrrp_instance 下,MASTER 和 BACKUP 一致
  nopreempt                               #非抢占模式,主库从故障中恢复后,不会从新的主库抢回VIP
  priority 90                            #优先级,备节点需要适当降低优先级 
  advert_int 1                            #MASTER 和 BACKUP 负载均衡器同步检查的时间间隔(秒)
  authentication {                        #设置验证码和验证类型
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {                     #设置虚拟 IP 地址,可以设置多个,每个一行
      192.168.1.10
  }
  notify_master "/etc/keepalived/change_to_master.sh"
  track_script {
    chk_opengauss_active
  }
}

四、存活脚本

vi /etc/keepalived/chk_opengauss_active.sh
--------------------------------------------
#!/bin/bash
active_num=$(netstat -tlnp|grep 26000|grep gaussdb|wc -l)
if [ ${active_num} -eq 0 ]; then
  service keepalived stop
fi

五、切换脚本

vi /etc/keepalived/change_to_master.sh
--------------------------------------------
master_process=$(su - omm -c "gs_om -t status --detail"|grep Primary|wc -l)
if [ ${master_process} -eq 0 ]; then
  su - omm -c "gs_ctl failover -D /data/opengauss/dn"
  su - omm -c "gs_om -t refreshconf"
fi

标签:可用,##,keepalived,etc,master,active,opengauss
From: https://blog.51cto.com/u_13236892/6210559

相关文章

  • MySQL 中常见的几种高可用架构部署方案
    MySQL中的集群部署方案前言MySQLReplicationInnoDBClusterInnoDBClusterSetInnoDBReplicaSetMMMMHAGaleraClusterMySQLClusterMySQLFabric参考MySQL中的集群部署方案前言这里来聊聊,MySQL中常用的部署方案。MySQLReplicationMySQLReplication是......
  • redis03 持久化方案 主从复制原理和方案 哨兵高可用
    今日内容详细目录今日内容详细1持久化方案1.1RDB1.2AOF方案1.3混合持久化2主从复制原理和方案3哨兵高可用1持久化方案#什么是持久化redis的所有数据保存在内存中,把内存中的数据同步到硬盘上这个过程称之为持久化#持久化的实现方式 快照:某时某刻数据的一个完成备份......
  • redis高级-day4——redis持久化方案、主从复制原理和方案、哨兵高可用
    目录一、持久化方案1、什么是持久化2、持久化的实现方式3、RDB4、aof方案5、RDB和AOF的选择6、混合持久化二、主从复制原理和方案1、为什么要用主从复制2、主从复制介绍3、redis主从赋值流程,原理三、哨兵高可用1、什么是高可用2、哨兵高可用3、高可用搭建步骤一、持久化方案1、......
  • django中开启事务,GEO地理位置信息、持久化方案、主从复制原理和方案、哨兵高可用、集
    django中开启事务#django中如何开启事务全局开启:每个http请求都在一个事务中DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'lqz','HOST'......
  • Redis持久化、主从复制、哨兵高可用
    Redis持久化、主从复制、哨兵高可用Redis持久化1.什么是持久化?Redis的所有数据保存在内存中,对数据的更新将异步的保存到硬盘上2.持久化的实现方式?快照:某时某刻数据的一个完成备份mysql---->Doumpredis---->RDB写日志:任何操作记录日志,要恢复日志,只要吧日志重新走......
  • opengauss Need repair修复
     问题描述:opengauss集群在做切换的时候,或者增删节点的时候,很容易发生节点repair,找不到主库的情况,这种情况需要把主库使用primary角色启动,然后build重建从库,就可以恢复集群 1.集群状态[omm@db01~]$gs_om-tstatus--detail[CMServerState]node......
  • 21 20 | 高可用设计,让产品没有后顾之忧
    你好,我是乔新亮。这一讲,我想和你聊聊,关于高可用设计的那些事儿。一提起高可用设计,很多同学立刻就会想到“冗余设计”、“故障转移”等关键词。确实,在大部分与高可用相关的分享里,这两个词往往会被重点强调。所谓“冗余设计”,是指要通过集群来替代单点服务,做好冗余备份。单点架构......
  • 更新整理了一大波热门免费可用的API大全
    AI智能AI绘画:通过AI生成绝美图片,包括图生文、文生图、人像照片转动漫、图片高清化等。人脸检测:快速检测图片中的人脸并返回人脸位置,输出人脸关键点坐标,支持识别多张人脸。静态活体检测:静态活体检测主要用于针对用户上传图像,返回该图像中的人脸是否为真人;基于图片中人像的破......
  • lvs+keepalived 实现负载均衡与高可用
    参考拓扑结构 1、在两台DirectorServer上安装lvs与keepalivedyum-yinstallkeepalivedipvsadm2、修改两台DirectorServer中/etc/keepalived/keepalived.conf配置文件 global_defs{notification_email{root@localhost#默认......
  • 【服务器数据恢复】DELL EqualLogic PS系列存储磁盘坏道导致存储不可用的数据恢复案例
    服务器数据恢复环境:DELLEqualLogicPS系列某型号存储;16块SAS硬盘组成一组RAID5;划分了4个卷,采用VMFS文件系统,存放虚拟机文件。服务器故障:存储设备中磁盘出现故障导致存储不可用,且存储设备已经过保,用户方联系到我们数据恢复中心要求恢复该存储设备中的数据数据。服务器数据恢......