LVS实现健康性检查功能

LVS高可用性

Director不可用,整个系统将不可用;SPoF Single Point of Failure

解决方案:高可用

keepalived heartbeat/corosync

某RS不可用时,Director依然会调度请求至此RS

解决方案: 由Director对各RS健康状态进行检查,失败时禁用,成功时启用

keepalived heartbeat/corosync ldirectord

检测方式:

(a) 网络层检测,icmp
(b) 传输层检测,端口探测
(c) 应用层检测,请求某关键资源

RS全不用时:backup server, sorry server

ldirectord

?ldirectord:监控和控制LVS守护进程,可管理LVS规则

?包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm

?下载:http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/

?文件:

/etc/ha.d/ldirectord.cf 主配置文件
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版
/usr/lib/systemd/system/ldirectord.service 服务
/usr/sbin/ldirectord 主程序,Perl实现
/var/log/ldirectord.log 日志
/var/run/ldirectord.ldirectord.pid pid文件

ldirectord实战演练:

1、在LVS服务器上下载ldirectord包,并安装此包

[[email protected]]#wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/ldirectord-3.9.6-0rc1.1.2.x86_64.rpm
[[email protected]]#yum install ldirectord-3.9.6-0rc1.1.2.x86_64.rpm -y

 2、查看安装后的包

[[email protected]]#rpm -ql ldirectord-3.9.6-0rc1.1.2
/etc/ha.d
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/logrotate.d/ldirectord
/usr/lib/ocf/resource.d/heartbeat/ldirectord
/usr/lib/systemd/system/ldirectord.service
/usr/sbin/ldirectord
/usr/share/doc/ldirectord-3.9.6
/usr/share/doc/ldirectord-3.9.6/COPYING
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf
/usr/share/man/man8/ldirectord.8.gz

 3、在LVS服务器上,将配置文件复制到/etc/ha.d目录下

[[email protected]]#cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/

 4、在LVS服务器上安装httpd服务,并启动

[[email protected]]#yum install httpd -y
[[email protected]]#echo Sorry Server > /var/www/html/index.html
[[email protected]]#systemctl start httpd

 5、在原有搭建好的LVS负载均衡调度基础上,修改此配置文件

virtual=10.0.0.100:80  添加VIP地址
        real=192.168.37.19:80 gate  添加RS1IP地址
        real=192.168.37.20:80 gate  添加RS2IP地址
        fallback=127.0.0.1:80 gate
        service=http
        scheduler=rr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
        request="index.html"
        #receive="Test Page"   注释掉
        #virtualhost=www.x.y.z 注释掉

6、删除原有绑定在lo网卡上的IP地址以及ipvsadm规则,并手动添加新的IP地址,绑定在回环网卡上。

[[email protected]~]#bash lvs_dr_vs.sh  stop
[[email protected]~]#ifconfig lo:1 10.0.0.100/24

 7、启动ldirectord,此时就会自动添加ipvsad规则。

[[email protected]]#systemctl start ldirectord
[[email protected]]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 rr
  -> 192.168.37.19:80             Route   1      0          0
  -> 192.168.37.20:80             Route   1      0          0

  8、此时停止RS1服务器的httpd服务

[[email protected]~]#systemctl stop httpd

  9、在LVS服务器上查看掉线之后被踢掉的ipvsadm调度规则

[[email protected]]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 rr
  -> 192.168.37.20:80             Route   1      0          35

 10、此时在客户端查看访问页面是RS2的页面

[[email protected] network-scripts]# while : ;do curl 10.0.0.100;sleep 0.5;done
192.168.37.20 RS2
192.168.37.20 RS2
192.168.37.20 RS2
192.168.37.20 RS2

 11、此时再恢复RS1服务器的httpd服务

[[email protected]~]#systemctl start httpd

 12、ldirectord软件会自动启动RS1的ipvsadm规则。

[[email protected]]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 rr
  -> 192.168.37.19:80             Route   1      0          71
  -> 192.168.37.20:80             Route   1      0          97 

   13、在客户端访问的httpd服务页面,此时就会恢复两个RS服务器的信息。

[[email protected] network-scripts]# while : ;do curl 10.0.0.100;sleep 0.5;done
192.168.37.19 RS1
192.168.37.20 RS2
192.168.37.19 RS1

   14、此时RS1和RS2的httpd服务都停掉

[[email protected]~]#systemctl stop httpd
[[email protected]~]#systemctl stop httpd

 15、此时的ipvsadm规则的回环网卡就会显示。

[[email protected]]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 rr
  -> 127.0.0.1:80                 Route   1      0          0

 16、此时客户端就会显示LVS调度器httpd服务里边的index.html信息。

[[email protected] network-scripts]# while : ;do curl 10.0.0.100;sleep 0.5;done
Sorry Server
Sorry Server
Sorry Server
Sorry Server

 17、修改LVS服务器的ldirectord配置文件,重启服务,就会将开启httpd服务的作为优先级高的在客户端进行访问。

[[email protected]]#vim /etc/ha.d/ldirectord.cf
quiescent=yes
[[email protected]]#systemctl restart ldirectord.service 

 

 18、此时查看ipvsadm规则优先级情况,此时RS2的服务是开启的,就会只访问RS2服务器。

 

  19、在客户端访问LVS调度器,此时调度访问的是RS2服务器。

[[email protected] network-scripts]# while : ;do curl 10.0.0.100;sleep 0.5;done
192.168.37.20 RS2
192.168.37.20 RS2
192.168.37.20 RS2

 20、而如果此时RS1的httpd服务开启之后,此时LVS服务器的ipvsadm规则中RS服务器两者的优先级就会一样,两个权重一致,就会都去访问。

[[email protected]~]#systemctl start httpd

  21、在客户端访问LVS调度器的IP地址。

[[email protected] network-scripts]# while : ;do curl 10.0.0.100;sleep 0.5;done
192.168.37.20 RS2
192.168.37.19 RS1
192.168.37.20 RS2
192.168.37.19 RS1

  

 

  

 

 

  

  

  

  

  

  

 

  

  

原文地址:https://www.cnblogs.com/struggle-1216/p/12011870.html

时间: 2024-11-02 20:58:50

LVS实现健康性检查功能的相关文章

LVS集群的基本原理、LVS/NAT模式的配置、LVS/DR模式的配置、编写自动脚本检查LVS上realserver健康性

Linux 虚拟服务器(LVS)由章文嵩在国防科技大学就读博士期间创建利用LVS可以实现高可用的.可伸缩的Web.Mail.Cache和Media等网络服务,已经被集成到linux内核里了. 1.什么是集群? 使用一组服务器提供相同的服务2.使用集群的目的? 增强可靠性   降低成本   提高可扩展性   提高性能3.集群分类? HPC 高性能计算集群    (气象   航天   航空)    LB    负载均衡集群 (平均地分摊处理)    * LVS    hproxy HA    高可用

LVS节点健康检查及管理脚本

在LVS负载均衡主节点上,模拟keepalived健康检查功能管理LVS节点,当节点挂掉从服务器池中剔除,好了再加到服务器池中来. 工具:yum install -y ipvsadm web03:10.0.0.17 web04:10.0.0.18 VIP:10.0.0.13 #!/bin/bash web3() { curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" 10.0.0.17}web4() { curl -I -m 10 -o

Docker 健康检查功能

Docker1.12及以上版本,自带了健康检查功能.通常情况下只能使用docker ps 来查看容器是否是up的状态,但是服务是否正常我们不可知,而健康检查功能,可以允许我们在容器中执行一些健康检查的命令,然后将容器的状态在"STATUS"中标识: [[email protected]]# docker ps CONTAINER ID        IMAGE                        COMMAND             CREATED             

实现LVS的持久连接以及健康状态监控功能

一.实现LVS的持久连接. 功能:无论ipvs使用何种scheduler,其都能够实现在指定时间范围内始终将来自同一个ip地址的请求发往同一个RS:此功能是通过lvs持久连接模板实现,其与调度方法无关. ①在LVS上设置一个虚拟网卡别名. ②在VIP上用iptables 打上标记,把80和443端口标记为99.  ③设置LVS的虚拟IP(VIP)和真实IP(DIP). ④测试.  [持久连接默认十分钟] 二.实现LVS健康状态监控功能. 实现监控状态监控基于持久连接的基础上进行试验. ①安装包

完成rs健康状态检查。

VS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.高性能,低成本的服务器应用集群. LVS集群的组成利用LVS架设的服务器群系统由3个部分组成:最前端的是负栽均衡层(这里用 Lo ad Balancer表示),中间是服务器集群层(用Server Array表示).LVS体系结构如下图所示: 下面对LVS的各个组成部分进行详细介绍负 栽均衡层:位于整个集群系统的最前端,由一台或多台负栽调度器(Dircctm Server)

如何利用nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查

用nginx做前端反向代理,如果后端服务器宕掉的话,nginx是不会把这台realserver踢出upstream的,还会把请求转发到后端的这台realserver上面.所以当某台机器出现问题时,我们会看到nginx的日志会有一段转发失败然后转发正常的日志.这次借助与淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则会将其踢出upstream,所有的请求不转发到这台服务器.当期恢复正常时,将其加

Oracle 数据库健康状态检查

数据库健康状态检查 使用utl指令.statspack.awr来检查数据库的健康状态 前提: > show parameter time_ timed_statistics; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ timed_statistics boolean TRUE 1:utl ##在8i之前只有这个方式,当然在后续的版本中还是有这个功能

lvs的健康检测脚本

lvs的健康检测脚本 写得不怎么样,基本实现吧,因为基本不会用到,有时间再改进了,嘻嘻 1 #!/bin/bash 2 3 rs=('192.168.61.130' '192.168.61.132') 4 vip="192.168.61.100" 5 dip="192.168.61.131" 6 checkcount=1 7 checkloop=4 8 i=1 9 10 11 while [ $i -lt 2 ];do 12     #sorry server检测,

MindManager中的拼写检查功能如何用

MindManager2016思维导图中的拼写检查功能如同大部分标准拼写检查器,运行拼写检查(相关文章请参考详解MindManager 15中文版思维导图设置选项之拼写检查),检查导图上的所有主题文本和备注文本,还可以使用自动拼写功能,在输入文本和使用自动更正功能,用修正版本自动替换明显拼错的单词时检查拼写,本文主要为大家讲解如何在MindManager2016中拼写检查导图. 启动拼写检查 在审阅选项卡上,验证组里,点击拼写检查或者按F7. 拼写检查可以检查导图里的所有主题(常规主题.标注和浮