keepalived实现双机热备

什么是双机热备

(1) 通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。
(2) 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。

VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议

  • keepalived的工作原理是VRRP
  • VRRP是一种容错协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性
  • 在VRRP中有两组重要的概念:VRRP路由器虚拟路由器主控路由器备份路由器
    • VRRP路由器是指运行VRRP的路由器,是物理实体
    • 虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。访问主机将虚拟路由器当作默认网关。
    • VRRP中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。
      (当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务。)
  • 虚拟 IP 地址
    虚拟路由器的 IP 地址。一个虚拟路由器可以拥有一个或多个IP 地址。
  • IP 地址拥有者
    接口 IP 地址与虚拟 IP 地址相同的路由器被称为 IP 地址拥有者。
  • 虚拟 MAC 地址
    一个虚拟路由器拥有一个虚拟 MAC 地址。虚拟 MAC 地址的格式为 00-00-5E-00-01-{VRID}。通常情况下,虚拟路由器回应 ARP 请求使用的是虚拟 MAC 地址,只有虚拟路由器做特殊配置的时候,才回应接口的真实 MAC 地址。

工作原理

测试环境

两台物理服务器和一个虚拟服务器(vip):
master:redhat 2.6.18-53.el5 192.168.8.4
backup: redhat 2.6.18-53.el5 192.168.8.6
vip: 192.168.8.100

(1) 节点A 192.168.8.4 (主节点) (2) 节点B 192.168.8.6(备用节点) (3) 虚拟IP(对外提供服务的IP 192.168.8.100) (4) 在这种模式下,虚拟IP在某时刻只能属于某一个节点,另一个节点作为备用节点存在。当主节点不可用时,备用节点接管虚拟IP(即虚拟IP漂移至节点B),提供正常服务。

工作过程

  • keepalived安装在两台物理服务器上,并相互监控对方是否在正常运行。
  • 当节点A正常的时候:节点A上的keepalived会将下面的信息广播出去
    —> 192.168.8.100 这个IP对应的MAC地址为节点A网卡的MAC地址
  • 图中的其它电脑如客户端和NodeB会更新自己的ARP表,对应192.168.8.100的MAC地址=节点A网卡的MAC地址。
  • 当节点A发生故障的时候,节点B上的keepalived会检测到,并且将下面的信息广播出去:
    —> 192.168.8.100 这个IP对应的MAC地址为节点B网卡的MAC地址
  • 图中的其它电脑如客户端会更新自己的ARP表,对应192.168.8.100的MAC地址=节点B网卡的MAC地址。

实际操作

  • 在主备机器上安装keepalived
    —> 解压安装 keepalived-1.1.15.tar.gz
  • 配置keepalived
    • 配置中的state MASTER决定了节点为主节点
    • priority决定了优先级,比如在有多个备用节点的时候,主节点故障后优先级值大的接管。
    • 主节点的配置如下
    • 备用节点的配置如下
    • 启动keepalived:
      —> keepalived -D -f /usr/local/etc/keepalived/keepalived.conf
    • 查看log消息
      —> tail -f /var/log/messages
    • 通过ip a 命令可以看到192.168.8.100/24绑定到了eth0上
    • 在两台机器上安装tomcat,安装步骤省略
    • 通过下面的url验证能够正常访问
      • http://192.168.8.6:8080/test/test.html 返回
      • http://192.168.8.4:8080/test/test.html 返回
      • http://192.168.8.100:8080/test/test.html 返回
    • 将节点A的keepalived停止: kill all keepalived
      (1) 通过下面的url访问 http://192.168.8.100:8080/test/test.html 返回的内容应该为备用节点上的内容

      (2) 同时查看节点B的日志:发现节点B转为主节点并且会广播ARP消息

防止后台应用服务器挂掉

(1)注意实际运用过程中为了防止tomcat挂掉,我们可以编写脚本检测tomcat的状态,一旦tomcat宕机就将keepalive kill掉,切换另外一个
(2) 还可以为keepalive配置脚本检测后台的应用服务器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值