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屬性才生效。