设为首页 收藏本站
查看: 1113|回复: 0

[经验分享] LVS持久连接

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-23 09:13:12 | 显示全部楼层 |阅读模式
Lvs持久连接
简单说来就是会话保持的意思,我们知道会话保持的几种方法,简单介绍一下其中一个比较好理解的:
Session粘性(session保持):使用SH算法,SH算法在内核中会自动维护一个哈希表,此哈希表中用每一个请求的源IP地址经过哈希计算得出的值作为键,把请求所到达的RS的地址作为值。在后面的请求中,每一个请求会先经过此哈希表,如果请求在此哈希表中有键值,那么直接定向至特定RS,如没有,则会新生成一个键值,以便后续请求的定向。但是此种方法在时间上无限定,且仅仅是一种算法而已,所以不是非常理想的方法。
所以就出现了lvs持久连接的功能,lvs persistence
此种方法实现了无论使用哪一种调度方法,持久连接功能都能保证在指定时间范围之内,来自于同一个IP的请求将始终被定向至同一个RS,还可以把多种服务绑定后统一进行调度。
详细一点说:当用户请求到达director时。无论使用什么调度方法,都可以实现对同一个服务的请求在指定时间范围内始终定向为同一个RS。在director内有一个lvs持久连接模板,模板中记录了每一个请求的来源、调度至的RS、维护时长等等,所以,在新的请求进入时,首先在此模板中检查是否有记录(此表中的记录有时间限制),如果该记录未超时,则使用该记录所指向的RS,如果是超时记录或者是新请求,则会根据调度算法先调度至特定RS,再将调度的记录添加至此表中。这并不与SH算法冲突,lvs持久连接会在新请求达到时,检查后端RS的负载状况,这就是比较精细的调度和会话保持方法。
命令为:ipvsadm -A -t|-u|-f service-address -s SCHEDULER [-p [#]](默认p的时长为360秒)
Lvs持久连接还有一个作用,粗略的说,如果一个director后跟了两个集群,一个是web服务器集群,一个是邮件服务器集群。当请求到达director时,会有选择的调度给相应的集群。这里分三种情况:
PPC:每端口持久;持久连接生效范围仅为单个集群服务(在director的持久连接模板中每一条记录后加上指定集群的标记),如果有多个集群服务,每服务被单独持久调度;
举例1:V1为director,V2、V3为real server ,两台RS上全部提供httpd、mysql-server、telnet-server(此负载均衡在之前搭好的不同网段的DR类型上进行)
两台V2、V3上全部开启httpd、telnet-server、mysql-server
service httpd start
service mysqld start
cchkconfig telnet on
service xientd start
在V1上设定web服务持久连接的负载均衡
Ipvsadm –A –t 172.16.50.12:80 –s rr -p
Ipvsadm –a –t 172.16.50.12 :80–r192.168.0.21:80 –g
Ipvsadm –a –t 172.16.50.12 :80–r192.168.0.31:80 –g
在物理机上访问,持久无问题
在V1上设定telnet服务持久连接的负载均衡
Ipvsadm –A –t 172.16.50.12:23 –s rr -p
Ipvsadm –a –t 172.16.50.12 :23 –r192.168.0.21:23 –g
Ipvsadm –a –t 172.16.50.12 :23 –r192.168.0.31:23 –g
在V2、V3上分别创建用户密码
useradd centos
echo centos | passwd --stdin centos
使用telnet连接,持久无问题
PCC:每客户端持久;持久连接生效范围为所有服务;定义集群服务时,其TCP或UDP协议的目标端口要使用0;
举例2:基于1的例子做客户端持久
清除例1的规则
Ipvsadm –C
设定客户端持久的规则
Ipvsadm –A –t 172.16.50.12:0 –s rr
Ipvsadm –a –t 172.16.50.12:0 –r 192.18.0.21-g
Ipvsadm –a –t 172.16.50.12:0 –r 192.18.0.31–g
使用web服务测试及telnet测试均持久无问题
PFWM:每FWM持久:持久连接生效范围为定义为同一个FWM下的所有服务。
举例3:基于例1的DR类型负载均衡,尝试80和443、23端口的统一调度
http服务和https服务的配置不在赘述,V1为director,V2、V3均提供http、https、telnet服务
在V1上设定规则:
Iptables –A PREROUTING –t mangle –d172.16.50.12 –p tcp –dport 80 –j MARK –set-mark 10
Iptables –A PREROUTING –t mangle –d172.16.50.12 –p tcp –dport 443 –j MARK –set-mark 10
Iptables –A PREROUTING –t mangle –d172.16.50.12 –p tcp –dport 23 –j MARK –set-mark 10
Ipvsadm –A –f 10 –s rr
Ipvsadm –a –f 10 –r 192.168.0.21 –g
Ipvsadm –a –f 10 –r 192.168.0.31 –g
这样就可以喽,试试吧^_^



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-79675-1-1.html 上篇帖子: LVS中DR类型集群实现 下篇帖子: LVS DR 实现脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表