keepalived笔记

一、双机热备

双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状(即Standby状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。    

二、热备方案

Linux+HA,keepalived,zookeeper,DNS等,本文着重介绍keepalived。

三、keepalived

1. 特点

vrrp心跳:周期发送,维持主备关系

选举:根据设备优先级来选举出主设备

notify机制:状态转换时,用户可以指定要执行的文件

虚拟IP:主备共用一个IP地址

健康检查:子进程,可以检查业务的网络,传输,应用层,并可以自动根据结果来调整优先级

IP漂移: 当发生主备切换时,通过发送免费ARP来实现IP的漂移

抢占模式:nopeerm

keepalived简单,基本与业务层没关系,可以实现高可用,主备容灾,宕机时间也比较短。

2. 原理及工作过程

状态转换图:

初始化,若为IP拥有者(VIP和本地IP相同)则转为master状态,向外发送免费ARP来宣告自己的MAC、IP地址,否则转为backup状态。

在热备环境下,master承担一切VIP机器上的业务,backup机器任务就是监视master的状态。

在工作过程中,主机周期向备份组(具有相同“虚拟路由ID”)发送VRRP通告来宣告自己的状态,若收到比自己优先级大的VRRP通告,则转为backup,停止发送VRRP通告

在工作中,备机通过接收主机的VRRP通告来监控主机状态,并与本机优先级比较,若小于本机优先级,则自己转为master,对外发布VRRP通告;或者3个周期内没有收到主机VRRP通告,自己转为主机,周期发送VRRP通告。

3. 配置

配置分三个部分:全局配置,同步组配置,虚拟服务器配置。写配置文件时,要注意每个开头和‘{’间要隔一个空格,否则配置不起作用。切记!!!


#全局配置

! Configuration File for keepalived 

global_defs { 
#  notification_email {  #邮件通知
#    acassen@firewall.loc  #被通知用户的Email地址
#    failover@firewall.loc 
#    sysadmin@firewall.loc 
#  } 
#  notification_email_from Alexandre.Cassen@firewall.loc  #发送Email的地址
#  smtp_server 192.168.200.1 #发送服务器地址
#  smtp_connect_timeout 30 #
router_id LVS_DEVEL    //设备标识,不同设备间最好不要相同 

vrrp_script checkhaproxy{ #健康检查脚本,可以不写

 script"/home/check.sh" #脚本目录

 interval3 #脚本执行周期

 weight -20} #脚本执行失败时,优先级减少20个点


#同步组配置,同步组内的实例具有相同的动作,可实现同时切换

vrrp_sync_group VGM {  //定义一个vrrp组 
group { 
VI_1 


vrrp_instance VI_1 {    //定义vrrp实例 
state MASTER        //主LVS是MASTER,从的BACKUP;这个可以随便配置,选举时最终是看优先级大小 
interface eth0      //LVS监控的网络接口; 
virtual_router_id 51  //同一实例下virtual_router_id必须相同 
priority 100            //定义优先级,数字越大,优先级越高 
advert_int 5          //VRRP 通告发送周期,单位是秒 
authentication {      //验证类型和密码 
auth_type PASS 
auth_pass 1111

virtual_ipaddress {    //虚拟IP 
192.168.1.8
#        192.168.1.9/24 //如果有多个,往下加就行了,最好带上子网掩码前缀长度
#        192.168.1.7

track_script { 

checkhaproxy #调用健康检查脚本

}

#负载均衡时需要配置,不使用负载均衡时可以不配置

virtual_server 192.168.1.8 80 {    //定义虚拟服务器 
delay_loop 6                  //健康检查时间,单位是秒 
lb_algo rr              //负载调度算法,这里设置为rr,即轮询算法 
lb_kind DR              //LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选 
persistence_timeout 50        //会话保持时间,单位是秒(可以适当延长时间以保持session) 
protocol TCP                  //转发协议类型,有tcp和udp两种 
sorry_server 127.0.0.1 80      //web服务器全部失败,vip指向本机80端口 
real_server 192.168.1.16 80 {  //定义WEB服务器 
weight 1                  //权重 
TCP_CHECK {                //通过tcpcheck判断RealServer的健康状态 
connect_timeout 5      //连接超时时间 
nb_get_retry 3        //重连次数 
delay_before_retry 3  //重连间隔时间 
connect_port 80        //检测端口 


real_server 192.168.1.17 80 { 
weight 1
TCP_CHECK { 
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
connect_port 80


}

4. 启动服务

service keepalived start/restart/reload/stop 启动,重启,重新加载,停止服务

5. 指定日志文件

默认日志文件是/var/log/syslog

编辑/etc/syslog.conf. 修改keepalived服务器的日志目录

6. 安装

apt-get install keepalived

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值