keepalived 原理与使用

Posted LEROI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalived 原理与使用相关的知识,希望对你有一定的参考价值。

 

 

1. keepalived工作原理

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级选举一个backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块(3个不同的守护进程),分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

配置文件:keepalived只有一个配置文件keepalived.conf,这里介绍该配置文件中几个主要的区域。

vrrp_script区域

用来做健康检查的,可调用外部脚本。

vrrp_script vs_mysql_158 {
  script "/etc/keepalived/checkMySQL.py -h 192.168.83.158 -P 3306"
  interval 60  #每60s执行一次
}

vrrp_instance区域

用来定义对外提供服务的VIP区域及其相关属性。

vrrp_instance VI_158 {
  state BACKUP     #指定哪个为master,哪个为backup,如果设置了nopreempt这个值不起作用,主备靠priority决定
  interface eth0   #设置实例绑定的网卡
  virtual_router_id 158   #主备相同
  priority 100    #优先级,高优先级竞选为master
  advert_int 5    #检查间隔,秒
  nopreempt       #不主动抢占资源,只在master这台优先级高的设置,backup不设置
  authentication {
    auth_type PASS  #认证方式
    auth_pass 1111  #认证密码
  }
  track_script {
    vs_mysql_158   #执行vs_mysql_158
  }
  virtual_ipaddress {
    192.168.83.157  #设置vip
  }
}

virtual_server区域

virtual_server 192.168.83.157 3306 {
    delay_loop 2  #健康检查时间间隔
    lb_algo wrr   #lvs调度算法rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR    #负载均衡转发规则NAT|DR|RUN
    persistence_timeout 60  #会话保持时间
    protocol TCP            #使用的协议

    real_server 192.168.83.158 3306 {
        weight 3  #默认为1,0为失效
    MISC_CHECK {
        misc_path "/etc/keepalived/checkSlave.py -h 192.168.83.158 -P 3306"
        misc_timeout 15
        misc_dynamic
    }
    }
    real_server 192.168.83.159 3306 {
        weight 3
    MISC_CHECK {
        misc_path "/etc/keepalived/checkSlave.py -h 192.168.83.159 -P 3306"  #外部脚本路径
        misc_timeout 15  #脚本执行超时时间
        misc_dynamic  #如设置该项,则退出状态码会用来动态调整服务器的权重。返回0 正常,不修改;返回1,检查失败,权重改为0;返回2-255,正常,权重设置为:返回状态码-2
    }
    }
}

 

2. 安装与使用 

待续……

以上是关于keepalived 原理与使用的主要内容,如果未能解决你的问题,请参考以下文章

keepalived 工作原理与配置文件讲解

Keepalived双机热备原理与基础配置

Keepalived安装与原理

keepalived介绍与使用

keepalived介绍与使用

keepalived介绍与使用