keepalived高可用系列~通用基础

简介:今天咱们来聊聊keepalived
一 keepalived 架构

1  标准架构:

keepalived+lvs/haproxy+后端 real server(mysql从库,nginx.mycat) 实现静态的高可用和负载均衡
     1 特点 :

1 keepalived在独立的服务器上,为后端多组集群提供高可用服务

2 配置文件 包含后端真实IP和端口检测
    2 检测后端服务脚本:
        1 手段 1 TCP 2 HTTP 3 MISC_CHECK(自定义脚本)
        2 目的 用以实现后端服务的动态踢出和加入
  2   标准架构2
     keepalived+service 实现服务的高可用
     特点

1 keepalived和service绑定在同一组机器上

2  配置文件不包含真实IP,服务为本地脚本检测     
   检测自身服务脚本
       1 手段

1 vrrp_script+ track_script 搭配
           2 notify模块 notify_master 状态改变为master以后执行的脚本
                              notify_backup 状态改变为backup以后执行的脚本。
                              notify_down 服务停止以后执行的脚本。
       2 目的 用以实现高可用服务和VIP的动态漂移
     不抢占模式
       1 state 都设置为BACKUP
       2 主增加 nopreempt 参数 备参数不变
       3 priority 参数主备不一致
       4 先启动主(因为设置了nopreempt,所以不会按照优先级来定夺)

二 keeplived的主从切换策略
    1 在Keepalived集群中,其实并没有严格意义上的主、备节点,虽然可以在Keepalived配置文件中设置“state”选项为“MASTER”状态,但是这并不意味着此节点一直就是Master角色。由两点确定
            1 节点的priority值,但并它并不控制所有节点的角色,
            2 是在vrrp_script模块中设置的“weight”值,这两个选项对应的都是一个整数值,其中weight值可以是个负整数
   2 在一个一主多备的Keepalived集群中,“priority”值最大的将成为集群中的Master节点,而其他都是Backup节点。在Master节点发生故障后,Backup节点之间将进行“*选举”,通过对节点优先级值“priority”和““weight”的计算,选出新的Master节点接管集群服务。
   3 在vrrp_script模块中,如果不设置“weight”选项值,那么集群优先级的选择将由Keepalived配置文件中的“priority”值决定,而在需要对集群中优先级进行灵活控制时,可以通过在vrrp_script模块中设置“weight”值来实现。

三  keeplived的部署条件

1 DR模式下必须为同一网段的机器

2 绑定双网卡,有独立的网卡进行检测,防止因为流量阻塞发生脑裂现象,俗称双网卡机制

3 不论何种架构,keepalived都是通过判断对方进程是否存在判断VIP是否需要漂移

四  LVS 相关命令

1 调整权重

ipvsadm -e -t 1VIP:3306  -r IP -w 0 降低

ipvsadm -e -t 1VIP:3306  -r IP -w 1 升高

上一篇:Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理


下一篇:keepalived高可用系列~ keepalived+proxysql