标签:lvs 集群
LVS的持久连接:
持久连接即是不考虑LVS的转发方法,确保所有来自同一个用户的连接转发到同一个RealServer上
-p //表示此连接为持久连接
N //表示维持此持久连接的时间。默认6分钟。
持久连接的类型:
1.PCC(persistent client connector,持久用户连接)同一个用户所有的请求在超时范围之内都被定位到同一个RealServer上,这个时候在指定端口的时候使用的是0端口,就是所有的请求都转发出去。
2.PPC(persistent port connector)用户的所有请求在超时范围内按照端口定位到不同的RS上。
3.防火墙标记:把相关联的端口在防火墙上打上同样的标记,用户在访问两个相关联的服务的时候,就会定位到同一个RealServer上。
PCC实例
ipvsadm -A -t 192.168.1.110:0 -s rr -p 600
PPC就是根据服务的不同,定向到不同的RealServer上,在Directory上多写几个ipvsadm指向,注意端口要区分开来就行了
防火墙标记的持久连接
iptables -t mangle -A PREROUTING -d 192.168.1.110 -p tcp --dport 80 -j MARK --set-mark 10 把目的地为1982.168.1.110:80标记为10 ipvsadm -A -f 10 -s rr -p 60 //使用上面标记的10定义集群服务 ipvsadm -a -f 10 -r 192.168.1.116 -g //为集群定义RealServer ipvsadm -a -f 10 -r 192.168.1.117 -g
简单的后台RS健康监测脚本
#!/bin/bash # VIP=192.168.1.110 CPORT=80 FAIL_BACK=127.0.0.1 FBSTATUS=0 RS=("192.168.1.116" "192.168.1.117") RSTATUS=("1" "1") RW=("2" "1") RPORT=80 TYPE=g add() { ipvsadm -a -t $VIP:$CPORT -r $1:$RPORT -$TYPE -w $2 [ $? -eq 0 ] && return 0 || return 1 } del() { ipvsadm -d -t $VIP:$CPORT -r $1:$RPORT [ $? -eq 0 ] && return 0 || return 1 } while :; do let COUNT=0 for I in ${RS[*]}; do if curl --connect-timeout 1 http://$I &> /dev/null; then if [ ${RSTATUS[$COUNT]} -eq 0 ]; then add $I ${RW[$COUNT]} [ $? -eq 0 ] && RSTATUS[$COUNT]=1 fi else if [ ${RSTATUS[$COUNT]} -eq 1 ]; then del $I [ $? -eq 0 ] && RSTATUS[$COUNT]=0 fi fi let COUNT++ done sleep 5 done
本文出自 “Linux is belong to you” 博客,请务必保留此出处http://jwh5566.blog.51cto.com/7394620/1664077
标签:lvs 集群
原文地址:http://jwh5566.blog.51cto.com/7394620/1664077