zoukankan      html  css  js  c++  java
  • 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. 安装

    (1) yum源安装: 执行 yum install keepalived 即可;

    (2) 二进制安装:keepalived 官网下载地址:http://www.keepalived.org/download.html,也可去网盘上下载:http://pan.baidu.com/s/1boOEiAF

    安装环境:

    • CentOS 6.4 x64
    • keepalived-1.3.4
    # yum install kernel-devel openssl-devel libnl-devel libnfnetlink-devel  #安装依赖
    #
    tar zxvf keepalived-1.3.4.tar.gz # cd keepalived-1.3.4 # ./configure --prefix=/usr/local/keepalived
    #若有报错,安装相应的devel包即可 # make && make install

    # 拷贝相应的文件
    # cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    # cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
    #注意修改该配置文件,否则会启动失败:keepalived 已死,但是 subsys 被锁
    # cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    # keepalived-1.3.14 的启动文件在安装的原文件下,以前的版本在编译的路径下 /usr/local/keepalived/…
    # cp ../keepalived-1.3.4/keepalived/etc/init.d/keepalived /etc/init.d/

    启动keepalived:

    # /etc/init.d/keepalived start
    正在启动 keepalived:                                      [确定]
    # ps aux |grep keepalived
    root     21390  0.0  0.0  42296  1016 ?        Ss   17:08   0:00 keepalived -D
    root     21391  0.0  0.1  42416  2168 ?        S    17:08   0:00 keepalived -D
    root     21392  0.0  0.0  42296  1428 ?        S    17:08   0:00 keepalived -D

    3. 使用 

    待续……

  • 相关阅读:
    技术管理之路三、团队建设:怎么带队伍?
    技术管理之路五、管理沟通:管理的必修课!
    职场工作方法论:计划安排,时间管理的“四象限法则”
    职场工作方法论:目标管理SMART原则
    激励方法论1、马斯洛需求模型
    mybatis PageHelper 分页组件优化
    async 和 await
    spring cloud 负载均衡 平滑上下线
    vue 重新渲染组件
    spring cloud 超时整理
  • 原文地址:https://www.cnblogs.com/waynechou/p/keepalived.html
Copyright © 2011-2022 走看看