系统架构师-Keepalived学习笔记

看lvs和heartbeat
http://www.keepalived.org/

Keepalived简介

Keepalived是VRRP的完美实现。

VRRP协议简介

VRRP的目的就是为了解决静态路由单点故障的问题。
VRRP通过一种竞选(election)协议来动态的将路由任务交给LAN中虚拟路由器中的某台VRRP路由器。

  • VRRP路由器: VRRP路由器就是一台路由器,只不过上面运行了VRRPD这样的程序来实现VRRP协议。一台VRRP路由器可以位于多个虚拟路由器。
  • VRRP虚拟路由器: 所谓虚拟就是一个逻辑而不存在的路由器,虚拟路由器由多台物理的VRRP路由器通过某种方式组成,就好比这些物理的路由器都丢到了一个池(pool)里面,整个pool对外看起来像是一台路由器。虚拟路由器的标识称为VRID。
  • MASTER和BACKUP:在一个VRRP虚拟路由器中,只有一个MASTER负责路由工作,其他的都是BACKUP,MASTER并非一成不变,VRRP协议让每个VRRP路由器参与竞选,最终获胜的就是MASTER。MASTER要负责转发发送给网关的包和响应ARP请求。

VRRP工作机制

VRRP通过竞选协议来实现虚拟路由功能,所有的协议报文都是通过IP多播(multicast)包(多播地址224.0.0.18)形式发送的。
虚拟路由器由VRID(范围0~255)和一组ip地址组成,对外表现为一个周知的MAC地址:00-00-5E-00-01-{VRID}。所以在一个虚拟
路由中,不管谁是MASTER,对外都是相同的MAC和IP(VIP).Client并不因为MASTER都得改变而修改自己的的路由配置。对于client
来说,这种主从切换是透明的。

在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP广告包(VRRP Advertisement message),BACKUP不会抢占MASTER,
除非它的优先级(priority)更高。当MASTER不可用时(BACKUP收不到广告包),多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常
迅速的(<1s),以保证服务的连续性。

出于安全性考虑,VRRP使用了加密协议进行加密。

Keepalived安装

yum instatll keepalived -y'
nginx 或后端
haproxy 做负载均衡

keepalived 配置

!和 # 都是注释

"vim /etc/keppalived/keepalived.conf"

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id haproxy-ha
}

vrrp_instance HAPROXY_HA {
    state MASTER # BACKUP
    interface eth1
    virtual_router_id 51
    priority 150
    advert_int 4
    authentication {
        auth_type PASS
        auth_pass haproxy_ha
    }
    virtual_ipaddress {
        192.168.57.16
        192.168.57.17
    }
}

ip a list

监控抓包
tcpdump -n 'host 224.0.0.18'

Keepalived配置详解

keepalived分为三类:

  1. 全局配置(Global Configuration)
  2. VRRPD配置
  3. LVS配置

你可能感兴趣的:(系统架构师-Keepalived学习笔记)