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 #每60s执行一次
}

vrrp_instance区域

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

vrrp_instance VI_158 {
  state BACKUP #指定哪个为MASTER,哪个为BACKUP,必须大写,如果设置了nopreempt这个值不起作用,主备靠priority决定
  interface eth0 #设置实例绑定的网卡
  virtual_router_id #集群中主备相同
  priority #优先级,高优先级竞选为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  {
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 {
weight 3 #默认为1,0为失效
   MISC_CHECK {
  misc_path "/etc/keepalived/checkSlave.py -h 192.168.83.158 -P 3306"
  misc_timeout
  misc_dynamic
  }
}
real_server 192.168.83.159 {
weight
  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..tar.gz
# cd keepalived-1.3.
# ./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 0.0 0.0 ? Ss : : keepalived -D
root 0.0 0.1 ? S : : keepalived -D
root 0.0 0.0 ? S : : keepalived -D

3. 使用

待续……

keepalived 原理、安装与使用的更多相关文章

  1. Keepalived原理与实战精讲--VRRP协议

    . 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...

  2. Keepalived原理与实战精讲

    什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用 ...

  3. keepalived原理(主从配置+haproxy)及配置文件详解

    下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...

  4. 高可用技术之keepalived原理简单了解

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

  5. Keepalived原理及VRRP协议与应用配置(详细)

    转载自:https://blog.csdn.net/u010391029/article/details/48311699 1. 前言 VRRP(Virtual Router Redundancy P ...

  6. LVS+Nginx(LVS + Keepalived + Nginx安装及配置)

    (也可以每个nginx都挂在上所有的应用服务器)  nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广 ...

  7. Keepalived 原理与实战

    Keepalived 原理与实战 随着系统架构的逐渐演化,服务器的数量和结构会越来越复杂,例如 Web 服务器集群的搭建,提高了系统的性能,同时也提高了系统维护的复杂度,我们需要对集群中各台服务器进行 ...

  8. 01 . Keepalived原理使用和配置

    Keepalived简介 是什么? keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测we ...

  9. Keepalived的安装

    Keepalived的安装 官网下载:点击直达 yum install -y libnl yum install -y libnl-devel 下载 cd /usr/local/src/ wget h ...

  10. saltstack之keepalived的安装配置

    使用saltstack编译安装keepalived: 创建相应的目录,并在目录下创建相应的sls配置文件 [root@node1 ~]# mkdir /srv/salt/prod/keepalived ...

随机推荐

  1. 自己动手写CPU之第九阶段(4)——载入存储指令实现思路

    将陆续上传新书<自己动手写CPU>,今天是第40篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  2. 增强版的RecycleViewAdapter,能够直接使用

    在Android的项目中.须要大量的列表组件来显示数据.在之前的项目中一直使用的是ListView 组件,可是在最新的V7包中出现了能后替代ListView的组件RecycleView. 所以在新的项 ...

  3. 【第四篇章-android平台MediaCodec】解决Observer died. Quickly, do something, ... anything...

    当出现!!!Observer died. Quickly, do something, ... anything...说明你的程序已经出现严重异常了,那会是什么情况呢?这个问题困扰了我许久,后来原来是 ...

  4. Material Design (四),AppBarLayout的使用

    前言  AppBarLayout,顾名知意.就是用来给AppBar布局的容器,是LinearLayout的子类.而AppBar就包括我们通常所知道的ActionBar,Toolbar. AppBarL ...

  5. uboot 对 FAT 分区的解析

    uboot 对 FAT 分区的解析 改写 UBOOT 从 U 盘读入固件,然后刷机.发现有的 U 盘无法正确读到分区,跟踪了一下发现自己写的代码有漏洞,只尝试解析分区表里的第一个分区.跟踪的过程中重温 ...

  6. vue 安装与起步

    vue安装: 1.官网下载vue,在script标签里引用(去下载) 2.使用CDN(建议下载到本地,不推荐这种方法): BootCDN:https://cdn.bootcss.com/vue/2.2 ...

  7. 文件宝局域网传输/播放功能Windows10系统经验贴(感谢文件宝用户@卡卡罗特 和@24K 純情)

    本文由文件宝用户@卡卡罗特 和@24K 純情 两位用户提供,感谢二位. 先分享一个软件开发者的博客,http://www.cnblogs.com/flychen/也许里面的说明就能解决你的问题. 以下 ...

  8. Jetty的JNDI数据源

    一. 此处绑定的数据源是以 DBCP 为实现.首先必须将数据库驱动(这里用了MYSQL数据库)和DBCP所需要的 Jar 包复制到 Jetty 根目录的 lib 目录下.DBCP主要需要以下3个文件: ...

  9. 安卓开发中使用ZXing生成解析二维码

    编码示例 package com.wolf_pan.qrcodesample; import android.graphics.Bitmap; import android.graphics.Colo ...

  10. spring cloud 启动报错-must be declared as an @AliasFor [serviceId], not [name].

    项目加入FeignClient后再启动就报错,具体报错信息如下: org.springframework.core.annotation.AnnotationConfigurationExceptio ...