分布式

Keepalived 初步认识

字号+ 作者:风潇潇 来源:原创 2016-01-03 11:16 我要评论( )

Keepalived 是VRRP 的完美实现 VRRP是为了解决静态路由的单点故障问题,VRRP通过一竞选协议来动态的将路由任务交给LAN中虚拟路由的某台VRRP路由器。 虚拟路由器VRID和一组IP地址组成。所以在一个虚拟路由器中,不管谁是MASTER,对外都是相同的MAC和IP(称之

Keepalived 是VRRP 的完美实现
VRRP是为了解决静态路由的单点故障问题,VRRP通过一竞选协议来动态的将路由任务交给LAN中虚拟路由的某台VRRP路由器。
虚拟路由器VRID和一组IP地址组成。所以在一个虚拟路由器中,不管谁是MASTER,对外都是相同的MAC和IP(称之为VIP)。客户端主机并不需要知道因为MASTER的改变而修改自己的路由配置,对他们来说,这种主从的切换是透明的。
在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP广告包,BACKUP不会抢占MASTER,除非它优先级更高。当MASTER不可用时,多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占非常迅速(< 1s)。
在VRRP协议中,有两组重要的概念:VRRP路由器和虚拟路由,主控路由器和备份路由器。VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP路由器协同工作,共同构成一台虚拟路由器。该虚拟路由器对外表现为一个具有唯一固定ip地址和MAC地址的逻辑路由器。处于同一个VRRP组中的路由器具有两种互斥角色:主控路由器和备份路由器,一个VRRP组中有且只有一台处于主控角色的路由器,可以有一个或多个处于备份角色的路由器。VRRP协议使用选择策略从路由器组中选出一台做为主控,负责ARP响应和转发IP数据包,组中其他路由器作为备份的角色处于待命状态。当由于某种原因主控路由器发生故障时,备份路由器能在几秒钟的时延后升级为主路由器。由于切换非常迅速而且不改变ip地址和mac地址,故对终端使用者系统是透明的。
      在VRRP中,RTA在线时RTB只是作为后备,不参与转发工作,闲置了路由器RTA和链路L1.通过合理的网络设计,可以达到备份和负载分担双重想过。让RTA和RTB同时属于互为备份的两个VRRP组:在组1中RTA为IP地址所有者;组2中RTB为IP地址所有者;将H1的默认网关设定为RTA;H2 H3的默认网关设定为RTB。这样既分担设备负载和网络流量,又提高了网络可靠性。
 
另外注意:KeepAlived只可以监测服务器的状态,并不能监测诸如Apache,Tomcat,redis的服务状态,虽然提供了3、4、5层的检测。
本次的HA搭建为下图:

Keepalived 安装
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
tar –zxvf  keepalived-1.2.19.tar.gz
cd keepalived-1.2.19
./configure –prefix =/home/keepalived/keepalivedbin
make && make install
keepalived 默认是会去找/etc/keepalived/keepalived.conf 这个配置文件的。
Keepalived的配置文件
 
192.168.40.131 电脑的配置
 
! Configuration File for keepalived
global_defs {
   notification_email {
     xh199110@163.com
   }
   notification_email_from xh199110@163.com
   smtp_server localhost #邮件服务器
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
 
vrrp_instance VI_1 {
    state BACKUP # MASTER or BACKUP
    interface eth0  # 在ifconfig上面看到的网卡名字
    virtual_router_id 51
      mcast_src_ip 192.168.40.131 # 本机地址
    priority 99  #优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.40.200 #vip
    }
}
 
 
192.168.40.130 电脑的配置
 
! Configuration File for keepalived
global_defs {
   notification_email {
     xh199110@163.com
   }
   notification_email_from xh199110@163.com
   smtp_server localhost #邮件服务器
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
 
vrrp_instance VI_1 {
    state MASTER # MASTER or BACKUP
    interface eth0  # 在ifconfig上面看到的网卡名字
    virtual_router_id 51
      mcast_src_ip 192.168.40.130 # 本机地址
    priority 100  #优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.40.200 #vip
    }
}
 
将keepalived.conf 复制到/etc/keepalived/keepalived.conf
然后两台机子 sbin/keepalived
查看日志在:tail –f /var/log/messages
也可以通过ip addr 查看网卡的虚拟ip
另外如果要做mysql或者redis等其他的缓存keepalived本身不能监控这样一些进程,需要自己写脚本来监控监测是否正常

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • redis主从复制+keepalived的高可用配置

    redis主从复制+keepalived的高可用配置

    2016-01-03 11:16

网友点评
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)