5 keepalived高可用ipvs(主备模式)

keepalived最初是为了ipvs设计的,实现HA功能。是工作在linux上,实现vrrp协议的软件。

vrrp:Virtual Router Redundancy Protocol,虚拟路由冗余协议,解决局域网中配置静态网关出现单点失效现象的路由协议

ipvs实际上是一系列规则,配置即可不需要转移。

轻量级,不需要共享存储时使用。

keepalived+nginx

keepalived+harproxy


ipvs HA

环境:director server :CentOS 6.7

1 yum安装keepalived

yum install -y keepalived ipvsadm

2 配置文件

说明:主从上只有两处不同

1)state MASTER --> stare BACKUP

2)priority 100 --> priority 90

# vim /etc/keepalived/keepalived.conf

  1. global_defs {
  2.    notification_email {
  3. [email protected]    # 设置报警邮件地址,可以设置多个,每行一个。
                        # 需开启本机的sendmail服务
  4.    }
  5.    notification_email_from [email protected]    # 邮件发出邮箱
  6.    smtp_server 127.0.0.1     # 设置smtp server地址
  7.    smtp_connect_timeout 30    # 设置连接smtp server的超时时间
  8.    router_id LVS_DEVEL     # 表示运行keepalived服务器的一个标识。
  9. }                          # 发邮件时显示在邮件主题的信息
  10. # 结合track_scrpit做测试使用

    vrrp_script chk_down {

            script "[ -e /etc/keepalived/down ] && exit 1 || exit 0"

            inerval 1

            weight -20

            fall 2

            rise 1

    }

  1. vrrp_instance VI_1 {
  2.     state MASTER         # HA主节点,备节点为BACKUP
  3.     interface eth0       # HA健康状况检查使用的网络端口
  4.     virtual_router_id 51    # 虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。
  5. # 即同一vrrp_instance下,MASTER和BACKUP必须是一致的
  6.     priority 100    # 主节点优先级,高于备节点即可
  7.     advert_int 1        # 设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
  8.     authentication {
  9.         auth_type PASS     # 设置验证类型,主要有PASS和AH两种
  10.         auth_pass 1111    # 设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
  11.     }
  12.     virtual_ipaddress {
  13. 192.168.8.110/24 dev eth0 lable eth0:0 # 设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
  14.     }
  15. # 结合vrrp_scrpit做测试使用
  16. track_script {
            chk_down
    }
  17. # HA状态邮件通知


  18.         

    notify_master "/etc/keepalived/notify.sh master 192.168.8.110 add"

    notify_backup "/etc/keepalived/notify.sh backup 192.168.8.110 remove"

    notify_fault "/etc/keepalived/notify.sh fault 192.168.8.110 remove"

    nopreempt # 当重新上线后,不抢夺master,默认是抢夺。注意这个配置只能设置

    # 在state为BACKUP的主机上,而起这个主机的priority必须必另一台高

    debug     # 日志级别

  19. }
  20. virtual_server 192.168.8.110 80 {    # 设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
  21.     delay_loop 6     # 设置运行情况检查时间,单位是秒
  22.     lb_algo rr    # 采取的调度方法
  23.     lb_kind DR    # LVS模型
  24.     nat_mask 255.255.255.0    # RIP的掩码
  25.     persistence_timeout 0    # 持久连接,测试时设置为0
  26.     protocol TCP    #协议
  27. sorry_server 127.0.0.1 80 # 当两个realserver都宕机时,转向维护页面
  28. real_server 192.168.8.101 80 { # 配置服务节点1,需要指定real server的真实IP地址和端口,IP与端口之间用空格隔开
  29.         weight 1     # 调度方法的权重
  30.         HTTP_GET {    # 采取HTTP_GET方式对Realserver进行健康状况检查
  31.             url {
  32.               path /
  33.          status_code 200  # 检测状态返回值为健康判断标准
  34.             }
  35.             connect_timeout 3   # 3s未响应,则连接超时时间
  36.             nb_get_retry 3     # 重试次数
  37.             delay_before_retry 3    # 重试间隔时间
  38.         }
  39.     }
  40.    
  41.    real_server 192.168.8.102 80 {
  42.         weight 1
  43.         HTTP_GET {
  44.             url {
  45.               path /
  46.          status_code 200
  47.             }
  48.             connect_timeout 3
  49.             nb_get_retry 3
  50.             delay_before_retry 3
  51.         }
  52.     }
  53. }

更详细的配置文件说明参考:# man keepalived.conf

3 测试

1、所有realserver都宕机

两个realserver的httpd服务后停止,请求被转发到HA上,返回维护页面

2、写监控脚本,完成切换?

测试脚本见配置文件

主要检测/etc/keepalived/down是否存在,若存在,则转为BACKUP

可手动创建down文件,测试MASTER --> BACKUP是否正常

3、HA状态邮件通知

在配置文件中配置



notify_master、



notify_backup、



notify_fault选项

当MASTER <--> BACKUP会有邮件通知

通知脚本,接受3个参数

  1. #!/bin/bash
  2. contact=‘[email protected]‘
  3. function usage(){
  4.         echo -e "\nusage `basename $0` [master|backup|fault] vip\n"
  5. }
  6. function notify(){
  7.         subject="$HOSTNAME‘s status change to $1"
  8.         mailbody="`date +"%F %T"`:HA $HOSTNAME‘s status change $1,VIP $vip $state."
  9.         echo "$mailbody" | mail -s "$subject" $contact
  10. }
  11. [ $# -gt 3 ] && usage && exit 1
  12. vip=$2
  13. state=$3
  14. case $1 in
  15.         master)
  16.                 notify master;;
  17.         backup)
  18.                 notify backup;;
  19.         fault)
  20.                 notify fault;;
  21.         *)
  22.         usage;;
  23. esac

来自为知笔记(Wiz)

时间: 2024-11-08 19:11:48

5 keepalived高可用ipvs(主备模式)的相关文章

Nginx+keepalived(高可用双主模式)

Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.168.237.128             VIP1:192.168.237.10 server2:192.168.237.129             VIP2:192.168.237.20 vim /etc/keepalived/keepalived.conf //编辑配置文件,增加一段新的v

LVS + Keepalived 高可用群集 【DR模式】

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

Keepalived 高可用ipvs和nginx服务

Keepalived 高可用ipvs和nginx服务 ============================================================================ 概述: ============================================================================ 回顾: Virtual Server(虚拟服务器):  1.配置参数: ★虚拟服务器的配置格式: virtual_server I

02-keepalived实现对nginx服务的高可用(主备)

实验环境:controller3,controller4为后端web服务器,controller1,controller2为nginx负载均衡服务器,用keepalived实现主备模式的高可用 controller1  IP:9.110.187.120 10.1.1.120 controller2  IP:9.110.187.121 10.1.1.121 controller3  IP:10.1.1.122 controller4  IP:10.1.1.123 1.controller3,con

mysql高可用(主备)

服务器基本环境: 两台centos6.4.iptables  diabled .selinux  disabled 两台的hosts解析 mysql安装(两台相同操作): mysql用户和组 #groupadd mysql #useradd -r -g mysql  mysql mysql的各种使用目录 数据目录挂载点:/data 数据库base目录:/usr/local/mysql 数据库配置文件位置:/etc/my.cnf 数据库数据目录:/data/mysql innodb数据和innod

【转载】MySQL和Keepalived高可用双主复制

服务器主机IP和虚拟浮动IP配置 RealServer A 192.168.75.133 RealServer B 192.168.75.134 VIP A 192.168.75.110 VIP B 192.168.75.111 安装KeepAlived软件包 [[email protected] ~]# yum install keepalived =========================================================================

keepalived高可用双主配置文件

###########################lb01 cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived_lb01 global_defs { #  notification_email { #  [email protected] #  } router_id LB01 } vrrp_script check_lb { script "/server/scripts/check_lb.sh&q

ansible实现nginx双主模式反代,keepalived高可用,memcached缓存

ansible自动化运维工具配置ngnix前端反代到后端真实机,并设置keepalived高可用,在后端一台真实主机上配置httpd,mysql,php-fpm:设置memcached缓存服务器在这台真实主机上:(因为本人电脑配置问题,无法开启那么多虚拟机,所以就简单构建了一下) IP配置: Directory1(MASTER): eno16777736:172.16.72.5 eno16777736:0:172.16.72.1(虚拟VIP) eno33554976:192.168.72.1 e

Nginx+Keepalived高可用集群

1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件. keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual  Router  Redundancy Protocol(虚拟路由冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由的单点