keepalived

  • keepalived,虚拟ip(vip)实践。
    • keepalived介绍
    • 版本
    • 流程图
    • 搭建
      • 基础设置
        • 主机名
        • selinux
        • 关闭防火墙(所有机器)
        • hosts映射
      • keepalived设置
        • vip
        • 准备rpm包
        • 配置
    • 报错处理
      • 'keepalived_script' for script execution does not exist
      • .sh exited due to signal 15
      • Unsafe permissions found
    • 配置详解
    • 可参考

keepalived,虚拟ip(vip)实践。

keepalived介绍

keepalived是一个是集群管理中保证集群高可用的一个服务软件,它具备心跳检测的功能。比如运用在redis、nginx、greenplum上,则是具备主备切换的控制功能。
keepalived的主备切换方案的设计思想如下:
当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby;
当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;
当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Master同步数据完成之后,恢复Slave身份。
然后依次循环。

版本

keepalived-1.3.9-1.el7.x86_64.rpm

流程图

搭建

基础设置

主机名

1.vi /etc/hostname (已设置可跳过) -----设置主机名

selinux

2.vi /etc/selinux/config (已设置可跳过) ------- SELINUX=disabled

关闭防火墙(所有机器)

设置开机启用防火墙:systemctl enable firewalld.service
设置开机禁用防火墙:systemctl disable firewalld.service
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
检查防火墙状态:systemctl status firewalld

hosts映射

vi /etc/hosts

keepalived设置

vip

192.168.60.221 keepalived主节点
192.168.60.222 keepalived备节点

192.168.60.100 虚拟ip(vip)

准备rpm包

两台机器目录/home/soft/keepalived/分别包含rpm包,位置自定义

rpm包文件位置:/home/soft/keepalived/keepalived-1.3.9-1.el7.x86_64.rpm

yum install keepalived-1.3.9-1.el7.x86_64.rpm
安装过程缺少依赖,补充依赖:http://rpmfind.net/linux/rpm2html/search.php?query=libverto-devel%28x86-64%29&submit=Search+…&system=&arch=
补充依赖包需要耐心,强烈建议使用在线yum安装,或者有离线的镜像yum

配置

yum install keepalived-1.3.9-1.el7.x86_64.rpm
安装完以后 默认在/etc/keepalived,不建议更换位置

备份一份原有的配置
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf-bnk

配置文件有很多 暂时用不到的 我就先删除掉了

vi /etc/keepalived/keepalived.conf


代码属于最初搭建使用的配置
图片是集成greenplum 高可用后的配置

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.60.221smtp_connect_timeout 30router_id LVS_DEVELscript_user rootenable_script_securityvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 78priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.60.100}
}

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.60.222smtp_connect_timeout 30router_id LVS_DEVELscript_user rootenable_script_securityvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 78priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.60.100}
}


参数简述:
state MASTER :当前节点为master(会存在抢vip)
nopreempt : 配合state BACKUP (解决抢占vip)

notify:keepaclived启动执行,我自己测试 出发了两次
notify_master:keepaclived启动,成为master后触发
notify_backup:keepaclived启动,成为backup触发

当第一个keepalived启动,会先执行一次notify_backup的脚本,然后 执行一次notify_master的脚本

启动:systemctl start keepalived
停止:systemctl stop keepalived
查看:ps -ef|grep [k]eepalived
ip a

日志监控:
tail -f /var/log/messages

ps -ef|grep [k]eepalived

ping 192.168.60.100

虚拟ip成功

报错处理

‘keepalived_script’ for script execution does not exist

WARNING - default user ‘keepalived_script’ for script execution does not exist - please create.

这个错误的原因在于配置文件的错误,在global_defs中加入如下两行即可。
script_user root
enable_script_security

.sh exited due to signal 15

Keepalived_vrrp[29368]: /etc/keepalived/nginx_check.sh exited due to signal 15
vrrp_script{}中interval的间隔时间要大于脚本中的sleep时间

Unsafe permissions found

Unsafe permissions found for script ‘/etc/keepalived/XXXXXXX’
查看脚本权限,改成755.

如果还是报错Unsafe permissions,将脚本所有者改为root

配置详解

可参考

1.配置keepalived ping不通 解决办法
2.nginx+keepalived集群高可用详细部署,keepalived安装启动报错问题(超详细)
3.Greenplum集群Master与Standby相互切换
4.Postgresl选择正确的关闭模式
5.实现主备路由自动切换 – keepalived
6.单台主机(CentOS7.3)安装Greenplum(5.20.1)
7.解决Keepalived脚本启动时warning、Unsafe

keepalived,虚拟ip(vip)实践。相关推荐

  1. OpenStack下的虚拟机,keepalived虚拟ip,ping不通

    背景 领导让弄k8s多master的集群,然后在网上找资料,准备用keepalived来做高存活的方案,然后搭建keepalived,搭建完毕之后,就开始部署k8s了,但是当另一个主节点加入到当前ma ...

  2. keepalived外界无法通过虚拟ip访问

    keepalived虚拟ip无法访问 把Master路由和Backup路由的文件keepalived.conf中去掉配置vrrp_strict(严格遵守VRRP协议)然后关掉重启服务,我把这配置去掉就 ...

  3. 虚拟ip+keeplalived+nginx 负载实现

    什么是虚拟IP? 高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性.HA系统是目前企业防止 ...

  4. LVS专题-(3) 虚拟ip理解

    1.虚拟IP是什么? 要是单讲解虚拟 IP,理解起来很困难,所以干脆把 动态 IP .固定 IP .实体 IP 与虚拟 IP都讲解一下,加深理解和知识扩展 实体 IP:在网络的世界里,为了要辨识每一部 ...

  5. linux 虚拟ip 双机,keepalived配置虚拟ip(vip)实现双机热备以及自动切换主备

    背景:为什么做这个事情,写这个文章 我们项目的域名指向的是172.22.90.239,但实际上我们没这台机器,这是个虚拟ip,只有172.22.90.230,请求239为什么实际指向的是230机器? ...

  6. keepalived配置VIP(虚拟IP)

    首先为了测试机器,准备两台服务器: host1 172.28.23.73host2 172.28.23.96虚拟ip 172.28.23.100 第一步:在线安装keepalived中间件 sudo ...

  7. 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题

    如题所示,keepalived安装配置好之后能够正常启动,但是虚IP并没有生成.接着检查防火墙(iptables)发现也没有相关的限制.稍微郁闷了一下之后,查看了keepalived日志文件,这次成功 ...

  8. linux 虚拟ip 作用,linux-高可用之虚拟ip地址(VIP)

    高可用技术主要是指WEB网站.数据库.业务系统等持续不断的高 效.稳定的运行,为互联网用户提供高效的访问.高可用不是说网站. 数据库系统不宕机,而是指宕机.故障的时间是很短暂,能够快速恢 复.高可用技 ...

  9. keepalived主备切换后虚拟IP漂移慢的解决方法

    现象是主备切换之后在BACKUP的keepalived日志上可以看虚拟IP已经切换过来了,使用ip addr show也可以看到虚拟IP已经配上,但是使用ping,大概要3分钟后才能正常ping通,这 ...

  10. 虚拟ip设置 - Keepalived详解

    1. ubuntu安装keepalived(需要偏移的机器) root@ubuntu:~# apt install keepalived 2. 编写配置文件/etc/keepalived/keepal ...

最新文章

  1. 程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法
  2. 编程之美-最大公约数问题方法整理
  3. wxWidgets:wxBitmapComboBox类用法
  4. 百度地图infoWindow圆角处理
  5. 使用Node 操作MySQL数据库
  6. qt中event->globalPos()与pos()
  7. 西部数码linux云服务器,linux云服务器选择哪个版本
  8. eclipse中Java EE 与Java 区别
  9. 【转】404、500、502等HTTP状态码介绍
  10. linux远程ssh的端口映射,SSH端口映射
  11. Could not find artifact com.oracle:ojdbc7:pom:12.1.0.2 in central (https://r......的解决方案
  12. Unity资源替换工具,旧模型替换新模型,替换GUID,替换meta文件,文件丢失等问题
  13. Google sheet 设置下拉列表
  14. 10年老司机倾囊相授,贴片晶振的PCB layout需要注意哪些?
  15. 路由器的应用场所及作用
  16. 21 年年度最佳开源软件!
  17. 关于在数据库中如何存储时间这件事
  18. c语言中单链表的逆置
  19. SQL中类型转换函数
  20. java中实现同步的方法

热门文章

  1. 台式计算机最常用的IO总线,三总线结构的计算机总线系统由 (1) 组成。
  2. React.memo 是个啥么鬼?有什么用???
  3. x86 vt-d在linux中的应用
  4. nginx 图片服务器性能,Tengine Nginx性能测试
  5. php生成一个500错误_Hyperf 发布 v2.0.1 版本 | 企业级的 PHP 微服务云原生协程框架...
  6. MFC基于 单文档为状态栏添加进度条
  7. 一个DirectInput演示程序
  8. MySQL数据库学习资料(六)
  9. 兄弟连视频教程下载地址汇总-2014
  10. SQL Server 2005 在64位win7操作系统下的安装及问题总结