首页 > 代码库 > HA(High available)-Keepalived高可用性集群(双机热备)单点实验-菜鸟入门级

HA(High available)-Keepalived高可用性集群(双机热备)单点实验-菜鸟入门级

HA(High available)-Keepalived高可用性集群

 

Keepalived 是一个基于VRRP虚拟路由冗余协议来实现的WEB 服务高可用方案,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP),类似于工作在3,4,5层的交换机软件。利用其来避免单点故障。即:检测web服务状态。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服 务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

 


 

keepalived和heartbeat区别

 

Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);

Heartbeat是基于主机或网络服务的高可用方式;

keepalived的目的是模拟路由器的双机[前端]

heartbeat的目的是用户service的双机[服务]

lvs的高可用建议用keepavlived

业务的高可用用heartbeat


 

VRRP中有两组重要的概念VRRP路由器和虚拟路由器,主控路由器和备份路由器。

VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。 Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务。
测试环境如下
两台物理服务器和一个虚拟服务器(vip):
master:redhat 6.5 eth1  192.168.1.105
backup: redhat 6.5 eth1  192.168.1.106
vip: 192.168.1.100



测试环境的网络图如下:

+---------------------------VIP(192.168.1.100)----------------------+  

|                                                                                              |

|                                                                                              |

Server[master]<----------------keppalived------------------>server[BACKUP]

 eth0:192.168.1.105                                                      eth0:192.168.1.106

 

 



节点A 192.168.1.105(主节点), 节点B 192.168.1.106(备用节点),虚拟IP(对外提供服务的IP 192.168.1.100)
在这种模式下,虚拟IP在某时刻只能属于某一个节点,另一个节点作为备用节点存在。
当主节点不可用时,备用节点接管虚拟IP(即虚拟IP漂移至节点B),提供正常服务。
keepalived的原理可以这样简单理解:
keepalived安装在两台物理服务器上,并相互监控对方是否在正常运行。
当节点A正常的时候:节点A上的keepalived会将下面的信息广播出去:
192.168.1.100 这个IP对应的MAC地址为节点A网卡的MAC地址
图中的其它电脑如客户端和NodeB会更新自己的ARP表,对应192.168.8.100的MAC地址=节点A网卡的MAC地址。
当节点A发生故障的时候,节点B上的keepalived会检测到,并且将下面的信息广播出去:
192.168.1.100 这个IP对应的MAC地址为节点B网卡的MAC地址
图中的其它电脑如客户端会更新自己的ARP表,对应192.168.1.100的MAC地址=节点B网卡的MAC地址。

 


 

配置如下:

>/etc/keepalived/keepalived.conf 清除原配置文件内容。

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

   notification_email {

     1335234172@qq.com

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id wyl01

}

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 55

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        

        192.168.1.100/24 dev eth0 label eth0:1

    }

}

保存退出。

 


 

配置备节点,主备节点配置大致相同,只需更改:

router_id wyl01

state MASTER

priority 100

为:

router_id wyl02

state BACKUP

priority 99

保存即可。

 


 

说明:

! Configuration File for keepalived

global_defs {

   notification_email {

     1335234172@qq.com

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id wyl01   id为wyl01必须唯一,不同的keepalived.conf此处的ID必须唯一

}

vrrp_instance VI_1 {  实例名为VI_1,相同实例的备节点要和这个名字相同。

state MASTER  节点状态为MASTER 备节点状态应该为BACKUP

    interface eth0 通讯接口为eth0

    virtual_router_id 55  实例ID为55 keepalived.conf 里唯一。

    priority 100  优先级为100,备节点的优先级必须比这个低

    advert_int 1    通讯检查时间间隔为1s

    authentication {

        auth_type PASS  PASS为认证类型,此参数主备节点必须相同

        auth_pass 1111  密码1111 准备节点必须相同

    }

    virtual_ipaddress {

                192.168.1.100/24 dev eth0 label eth0:1

    }

}

虚拟ip即vip为192.168.1.100,子网掩码为24,绑定接口为eth0 别名为eth0:1 次参数准备节点相同

 


 

启用服务主备keepalived ,和nginx :

/etc/init.d/keepalived start

service nginx start

查看备节点ip :ip arrd |grep eth0:1

 技术分享

显示有记录,查看备节点显示无此记录

如果备节点中出现eth0:1说明keepalived 配置不正常。高可用裂脑了,可逐步排除。

浏览器访问192.168.1.100 显示正常。

 技术分享


 

测试主备切换

停到主节点,理论:切换到备服务

service keepalived stop

查看备节点ip ip addr |grep eth0:1

 技术分享

备节点显示正常,浏览器测试:ok

 技术分享


 

测试2

重新开启主节点 理论:备接节点vip失效,主节点重新接管。

service keepalived start

查看主节点ip 浏览器访问

技术分享

技术分享

显示正常。

查看备节点ip 

技术分享

ip显示正常。

Keepalived 主备单实例实验完结。

 

HA(High available)-Keepalived高可用性集群(双机热备)单点实验-菜鸟入门级