lvs+keepalived自定义健康检查脚本(MISC_CHECK用法)html
LVS是Linux Virtual Server的简称,即Linux虚拟服务器。使用LVS技术要达到的目标是:经过LVS提供的负载均衡技术和Linux操做系统实现一个高性能、高可用的服务器群集,它具备良好可靠性、可扩展性和可操做性。从而以低廉的成本实现最优的服务性能。shell
[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
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,未配置健康检查时效果bash
192.168.230.12上的http服务关闭服务器
2,启用健康检查效果网络
3,抓包查看健康检查报文负载均衡
注意:测试需使用ipvsadm –C清空配置,重启keepalived服务。curl
六,配置解析ide
1,检查脚本,检查脚本是自定义的一个shell脚本,最终返回的是一个数字。0-255。oop
2,MISC_CHECK主要根据检查脚本返回值来判断。性能
1) 当脚本返回值为0,表示真实服务器正常。
2) 当脚本返回值为1,表示真实服务器故障。
3) 当脚本返回值为2-255,表示当故障时将真实服务器权重改成返回值减2。
注意当脚本返回值为2-255时需添加misc_dynamic属性才生效。