lvs+keepalived自定义健康检查脚本(MISC_CHECK用法)

一、 LVS简介

LVSLinux Virtual Server的简称,即Linux虚拟服务器。使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。

二、网络拓扑

wKioL1fEMF_D5sxRAABBD_X_edo215.png-wh_50

三,http健康检查脚本

[root@localhost home]# cat http_hc.sh
#!/bin/bash
if [ $# -ne 1 ];then
 echo "Warning: check_command error."
 exit 1
else
 CHECK_URL=$1
 CMD=`/usr/bin/curl -I "${CHECK_URL}" 2>/dev/null | grep "200 OK" | wc-l`
  if[ ${CMD} -eq 1 ];then
   exit 0
 else
   exit 1
  fi
fi

四,在keepalived配置文件中添加配置

virtual_server 192.168.230.100 80 {
   delay_loop 6
   lb_algo rr
   lb_kind DR
   #persistence_timeout 50
   protocol TCP
   real_server 192.168.230.12 80 {
       weight 255
       MISC_CHECK {
                        misc_path"/home/http_hc.sh http://192.168.230.12/index.html"
                        misc_timeout5
                }
    }
    real_server192.168.230.13 80 {
  
       weight 255
       MISC_CHECK {
                        misc_path"/home/http_hc.sh http://192.168.230.13/index.html"
                          misc_timeout5
                    }
    }
        }
}

五,验证

1,未配置健康检查时效果

192.168.230.12上的http服务关闭

wKioL1fE2k2QkxcsAAAosg5p5sg161.png-wh_50

wKiom1fE2mmBCTjCAAAy3FP1QBU941.png-wh_50

2,启用健康检查效果

wKioL1fE2oKzrN90AAAosXH9dn8168.png

wKiom1fE2oPgirJmAAAjltVx5oM656.png

3,抓包查看健康检查报文

wKiom1fE2pLAgxCtAABXVbsckGY057.png-wh_50

注意:测试需使用ipvsadm –C清空配置,重启keepalived服务。

六,配置解析

1,检查脚本,检查脚本是自定义的一个shell脚本,最终返回的是一个数字。0-255

2MISC_CHECK主要根据检查脚本返回值来判断。

1)  当脚本返回值为0,表示真实服务器正常。

2)  当脚本返回值为1,表示真实服务器故障。

3)  当脚本返回值为2-255,表示当故障时将真实服务器权重改为返回值减2

注意当脚本返回值为2-255时需添加misc_dynamic属性才生效。

wKiom1fE2yHT0kUzAAAemyJR9X0270.png

wKioL1fE2sPTdTHhAAAyLndunDA660.png-wh_50

wKiom1fE2sTALZzHAAArF7Z38ig472.png-wh_50