LVS负载均衡集群之HA高可用模式

Keepalived工具介绍

专为LVS和HA设计的一款健康检查工具

一个合格的集群应该具备的特性:

1.负载均衡 LVS Nginx HAProxy F5

2.健康检查(探针) for调度器/节点服务器 Keeplived Hearbeat

3.故障转移 通过VIP飘逸实现主备切换

健康检查(探针)的方式

1.发送心跳消息:ping/pong

2.TCP端口检查:向目标主机的ip:端口发起TCP连接请求,如果TCP连接成功(三次握手成功)则认为健康检查探测成功,反之认为健康检查失败

3.HTTP URL检查:向目标主机的http://ip:端口/URL路径 发送HTTP GET请求方法

如果响应返回2xx,3xx状态码则认为健康检查成功

如果响应返回4xx,5xx状态码,则认为健康检查失败

LVS+keepalived群集

Keepalived工作原理:

  • keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现单点故障问题。

  • Keepalived采用VRRP热备份协议,实现Linux服务器的多机热备

  • 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性

Keepalived体系主要模块及其作用:

keepalived体系架构中主要有三个模块,分别是core、check和vrrp。 ●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。 ●vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换) ●check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)

脑裂故障(现象、原因、解决、预防)

现象:主服务器和备服务器同时拥有VIP

原因:因为主服务器和备服务器之间的通信链路中断,导致备服务器无法收到主服务器发送的VRRP心跳通告消息

解决:关闭主服务器或者备份服务器其中一个的keepalived服务

预防:1.主服务器和备服务器之间添加双链路通信

2.在主服务器上添加脚本进行判断与备服务器通信链路是否终端,如果确实是链路中断则自行关闭 keepalived服务

3.利用第三方应用或监控系统检测是否发生脑裂故障,如果发生脑裂故障则通过第三方应用或监控系统来关闭主服务器或备服务器上的keepalived服务

部署LVS+Keepalived 高可用群集

主DR 服务器: 192.168.237.10
备DR 服务器: 192.168.237.40
Web 服务器1: 192.168.116.20
Web 服务器2: 192.168.116.30
vip:192.168.116.200

 配置负载调度器(主、备相同)

systemctl stop firewalld.service

setenforce 0

配置本地yum仓库

yum -y install keepalived

cd /etc/keepalived

vim keepalived.conf

  1 ! Configuration File for keepalived
  2 
  3 global_defs {
  4    notification_email {
  5      [email protected]
  6      [email protected]
  7      [email protected]
  8    }
  9    notification_email_from [email protected]
 10    smtp_server 127.0.0.1
 11    smtp_connect_timeout 30
 12    router_id LVS_01
 13 }  
 14   
 15 vrrp_instance VI_1 {
 16     state MASTER
 17     interface ens33
 18     virtual_router_id 51
 19     priority 100
 20     advert_int 1
 21     authentication {
 22         auth_type PASS
 23         auth_pass 1111
 24     }
 25     virtual_ipaddress {
 26         192.168.116.200
 27     }
 28 }
~            

 主:

LVS负载均衡集群之HA高可用模式_第1张图片

添加真实服务器的配置:

     30 virtual_server 192.168.116.200 80 {
     31     delay_loop 6
     32     lb_algo rr
     33     lb_kind DR
     34     persistence_timeout 0
     35     protocol TCP
     36 
     37     real_server 192.168.116.20 80 {
     38         weight 1
     39         TCP_CHECK {
     40             connect_port 80
     41             connect_timeout 3
     42             nb_get_retry 3
     43             delay_before_retry 3
     44         }
     45     }
     46     real_server 192.168.116.30 80 {
     47         weight 1
     48         TCP_CHECK {
     49             connect_port 80
     50             connect_timeout 3
     51             nb_get_retry 3
     52             delay_before_retry 3
     53         }
     54     }
     55 }
     56 

LVS负载均衡集群之HA高可用模式_第2张图片

将主的配置文件发送去备的当前位置,文件取名为pwd

scp keepalived.conf 192.168.116.40:'pwd'

 备:

LVS负载均衡集群之HA高可用模式_第3张图片

systemctl start keepalived     #开启

ip add            #查看虚拟网卡vip

主:

LVS负载均衡集群之HA高可用模式_第4张图片

备:

LVS负载均衡集群之HA高可用模式_第5张图片

安装ipvsadm工具(两台都要安装)

yum install -y ipvsadm

ipvsadm-save > /etc/sysconfig/ipvsadm systemctl start ipvsadm

ipvsadm -ln 检查是否有策略

配置节点服务器

准备页面   

cd /usr/share/nginx/html

web1:echo '

this is web01 test page

' > test.html

web2:echo '

this is web01 test page

' > test.html

配置内核

 vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

 

 添加路由

route add -host  192.168.116.200   dev  lo:0

LVS负载均衡集群之HA高可用模式_第6张图片

 开启nginx服务

 检测验证

LVS负载均衡集群之HA高可用模式_第7张图片

LVS负载均衡集群之HA高可用模式_第8张图片

 将主调度器关闭keepalived,VIP地址消失

 备调度器自动顶上:

LVS负载均衡集群之HA高可用模式_第9张图片

 再次浏览器验证:

LVS负载均衡集群之HA高可用模式_第10张图片

LVS负载均衡集群之HA高可用模式_第11张图片

 

你可能感兴趣的:(lvs,负载均衡,运维)